[ https://issues.apache.org/jira/browse/IGNITE-10592?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Alexey Zinoviev reassigned IGNITE-10592: ---------------------------------------- Assignee: Alexey Zinoviev > [ML] DatasetTrainer#update should be thought over. > -------------------------------------------------- > > Key: IGNITE-10592 > URL: https://issues.apache.org/jira/browse/IGNITE-10592 > Project: Ignite > Issue Type: Improvement > Components: ml > Reporter: Artem Malykh > Assignee: Alexey Zinoviev > Priority: Major > > 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. -- This message was sent by Atlassian Jira (v8.3.4#803005)