avalanche.training.plugins.IL2MPlugin

class avalanche.training.plugins.IL2MPlugin(mem_size: int = 2000, batch_size: int | None = None, batch_size_mem: int | None = None, storage_policy: ExemplarsBuffer | None = None)[source]

Class Incremental Learning With Dual Memory (IL2M) plugin.

Technique introduced in: Belouadah, E. and Popescu, A. “IL2M: Class Incremental Learning With Dual Memory.” Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2019.

Implementation based on FACIL, as in: https://github.com/mmasana/FACIL/blob/master/src/approach/il2m.py

__init__(mem_size: int = 2000, batch_size: int | None = None, batch_size_mem: int | None = None, storage_policy: ExemplarsBuffer | None = None)[source]
Parameters:
  • mem_size – replay buffer size.

  • batch_size – the size of the data batch. If set to None, it will be set equal to the strategy’s batch size.

  • batch_size_mem – the size of the memory batch. If its value is set to None (the default value), it will be automatically set equal to the data batch size.

  • storage_policy – The policy that controls how to add new exemplars in memory.

Methods

__init__([mem_size, batch_size, ...])

param mem_size:

replay buffer size.

after_backward(strategy, *args, **kwargs)

Called after criterion.backward() by the BaseTemplate.

after_eval(strategy, *args, **kwargs)

Called after eval by the BaseTemplate.

after_eval_dataset_adaptation(strategy, ...)

Called after eval_dataset_adaptation by the BaseTemplate.

after_eval_exp(strategy, *args, **kwargs)

Called after eval_exp by the BaseTemplate.

after_eval_forward(strategy, **kwargs)

Called after model.forward() by the BaseTemplate.

after_eval_iteration(strategy, *args, **kwargs)

Called after the end of an iteration by the BaseTemplate.

after_forward(strategy, *args, **kwargs)

Called after model.forward() by the BaseTemplate.

after_train_dataset_adaptation(strategy, ...)

Called after train_dataset_adapatation by the BaseTemplate.

after_training(strategy, *args, **kwargs)

Called after train by the BaseTemplate.

after_training_epoch(strategy, *args, **kwargs)

Called after train_epoch by the BaseTemplate.

after_training_exp(strategy, **kwargs)

Called after train_exp by the BaseTemplate.

after_training_iteration(strategy, *args, ...)

Called after the end of a training iteration by the BaseTemplate.

after_update(strategy, *args, **kwargs)

Called after optimizer.update() by the BaseTemplate.

before_backward(strategy, *args, **kwargs)

Called before criterion.backward() by the BaseTemplate.

before_eval(strategy, *args, **kwargs)

Called before eval by the BaseTemplate.

before_eval_dataset_adaptation(strategy, ...)

Called before eval_dataset_adaptation by the BaseTemplate.

before_eval_exp(strategy, *args, **kwargs)

Called before eval_exp by the BaseTemplate.

before_eval_forward(strategy, *args, **kwargs)

Called before model.forward() by the BaseTemplate.

before_eval_iteration(strategy, *args, **kwargs)

Called before the start of a training iteration by the BaseTemplate.

before_forward(strategy, *args, **kwargs)

Called before model.forward() by the BaseTemplate.

before_train_dataset_adaptation(strategy, ...)

Called before train_dataset_adapatation by the BaseTemplate.

before_training(strategy, *args, **kwargs)

Called before train by the BaseTemplate.

before_training_epoch(strategy, *args, **kwargs)

Called before train_epoch by the BaseTemplate.

before_training_exp(strategy[, num_workers, ...])

Called before train_exp by the BaseTemplate.

before_training_iteration(strategy, *args, ...)

Called before the start of a training iteration by the BaseTemplate.

before_update(strategy, *args, **kwargs)

Called before optimizer.update() by the BaseTemplate.

Attributes

supports_distributed

A flag describing whether this plugin supports distributed training.