TrainTaskAware#

class capymoa.ocl.base.TrainTaskAware[source]#

Bases: object

Interface for learners that are aware of the transition between tasks.

Knowing the transition between tasks is required by some algorithms, but is a relaxation of the online continual learning setting. A researcher should be mindful and communicate when a learner is task-aware.

>>> from capymoa.classifier import NoChange
>>> from capymoa.ocl.datasets import TinySplitMNIST
>>> from capymoa.ocl.base import TrainTaskAware
>>> from capymoa.ocl.evaluation import ocl_train_eval_loop
>>> class MyTaskBoundaryAware(TrainTaskAware, NoChange):
...     def on_train_task(self, train_task_id: int):
...         print(f"Training task {train_task_id}")
>>> scenario = TinySplitMNIST()
>>> learner = MyTaskBoundaryAware(scenario.schema)
>>> _ = ocl_train_eval_loop(learner, scenario.train_loaders(32), scenario.test_loaders(32))
Training task 0
Training task 1
Training task 2
Training task 3
Training task 4
on_train_task(task_id: int)[source]#

Called when a new training task starts.