avalanche.benchmarks.utils.data_loader.ReplayDataLoader

class avalanche.benchmarks.utils.data_loader.ReplayDataLoader(data: AvalancheDataset, memory: Optional[AvalancheDataset] = None, oversample_small_tasks: bool = False, batch_size: int = 32, batch_size_mem: int = 32, task_balanced_dataloader: bool = False, distributed_sampling: bool = True, **kwargs)[source]

Custom data loader for rehearsal/replay strategies.

__init__(data: AvalancheDataset, memory: Optional[AvalancheDataset] = None, oversample_small_tasks: bool = False, batch_size: int = 32, batch_size_mem: int = 32, task_balanced_dataloader: bool = False, distributed_sampling: bool = True, **kwargs)[source]

Custom data loader for rehearsal strategies.

This dataloader iterates in parallel two datasets, the current data and the rehearsal memory, which are used to create mini-batches by concatenating their data together. Mini-batches from both of them are balanced using the task label (i.e. each mini-batch contains a balanced number of examples from all the tasks in the data and memory).

If oversample_small_tasks == True smaller tasks are oversampled to match the largest task.

Parameters
  • data – AvalancheDataset.

  • memory – AvalancheDataset.

  • oversample_small_tasks – whether smaller tasks should be oversampled to match the largest one.

  • batch_size – the size of the data batch. It must be greater than or equal to the number of tasks.

  • batch_size_mem – the size of the memory batch. If task_balanced_dataloader is set to True, it must be greater than or equal to the number of tasks.

  • task_balanced_dataloader – if true, buffer data loaders will be task-balanced, otherwise it creates a single data loader for the buffer samples.

  • kwargs – data loader arguments used to instantiate the loader for each task separately. See pytorch DataLoader.

Methods

__init__(data[, memory, ...])

Custom data loader for rehearsal strategies.