Training utilities and examples that are independent of trainer #2252
Labels
cat:feature
Implementation that introduces new interfaces.
pr-ongoing
Pull-request is being worked on to address the labeled ticket.
roadmap
Included in future roadmap.
The trainer feature offers useful abstractions that can often simplify the process of implementing a model in Chainer. However, in some cases users might find it more convenient to write their own training loop manually instead of using trainer.
For some models such as certain types of RNNs, it might sometimes be more convenient to write a custom training loop. Trainer comes with a learning curve and so new users could start being productive with Chainer quicker if they can implement models without trainer, at least in the beginning. Related to this, new users might also be able to more quickly understand the Chainer included examples if we could also provide an implementation of many of the examples without using trainer (of course we would also want to still include the trainer versions).
That is, trainer should be considered as an option that can often be useful, but that is not required to implement a training/testing loop in Chainer. Unfortunately, there is currently one drawback to not using trainer: without it, the user cannot access the many trainer extensions such as ProgressBar, LogReport, etc.. To resolve this inconvenience, I propose to write some training utilities that provide similar functionality to the trainer extensions but that can also be easily used in a custom training loop. I also propose to write additional examples (based on some of the current examples) that use a custom training loop with these utilities. I am currently experimenting with such utilities and would like to submit a corresponding WIP PR soon, especially if others think such utilities could be useful.
I expect that this feature should not break backward compatibility, but I might like to use some of the other v2 features in the utilities and examples and so am thinking to label this as a v2 feature.
The text was updated successfully, but these errors were encountered: