[ 
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)

Reply via email to