Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-10592

[ML] DatasetTrainer#update should be thought over.

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: 3.0
    • Component/s: ml
    • Labels:
      None
    • Ignite Flags:
      Docs Required

      Description

      DatasetTrainer#update was designed to contain skeleton for updating models, whereas concrete behaviour of update is implemented in subclasses by overriding this skeletons protected components, namely DatasetTrainer#checkState and DatasetTrainer#updateModel.

      We have a problem here: if we retain skeleton method, then it should be final. But making it final will cut the possibility to write wrappers around some given DatasetTrainer, because in that case we will not be able to implement Wrapper#checkState and Wrapper#updateModel by delegation to wrapped object (this methods have protected access). We need wrappers for stacking and for bagging for example.

      Now in wrappers we have ability to

       1. Override skeleton method, but (maybe) it seems not very clean solution, since it is no more skeleton method and we loose guarantees that checkState and updateModel will be used at all;

       2. place wrapper in the same package as DatasetTrainer, but this forces not-so-good classes structure.

        Attachments

          Activity

            People

            • Assignee:
              zaleslaw Alexey Zinoviev
              Reporter:
              zaleslaw Alexey Zinoviev
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated: