TestTaskAware#
- class capymoa.ocl.base.TestTaskAware[source]#
Bases:
object
Interface for learners that are aware of the task during evaluation.
Knowing the task during inference greatly simplifies the learning problem. When using this interface your problem becomes a task-incremental online continual learning problem.
>>> from capymoa.classifier import NoChange >>> from capymoa.ocl.datasets import TinySplitMNIST >>> from capymoa.ocl.base import TrainTaskAware, TestTaskAware >>> from capymoa.ocl.evaluation import ocl_train_eval_loop
>>> class MyTaskAware(TestTaskAware, TrainTaskAware, NoChange): ... def on_train_task(self, train_task_id: int): ... print(f"Training task {train_task_id}") ... ... def on_test_task(self, test_task_id: int): ... print(f"Testing task {test_task_id}")
>>> scenario = TinySplitMNIST() >>> learner = MyTaskAware(scenario.schema) >>> ocl_train_eval_loop(learner, scenario.train_loaders(32), scenario.test_loaders(32)) Training task 0 Testing task 0 Testing task 1 Testing task 2 Testing task 3 Testing task 4 Training task 1 Testing task 0 Testing task 1 ...