Skip to main content

Continuum: Simple Management of Complex Continual Learning Scenarios

PyPI version Build Status Codacy Badge DOI Documentation Status coverage

Doc Paper Youtube

A library for PyTorch's loading of datasets in the field of Continual Learning

Aka Continual Learning, Lifelong-Learning, Incremental Learning, etc.

Read the documentation.
Test Continuum on Colab !

Example:

Install from and PyPi:

pip3 install continuum

And run!

from torch.utils.data import DataLoader

from continuum import ClassIncremental
from continuum.datasets import MNIST
from continuum.tasks import split_train_val

dataset = MNIST("my/data/path", download=True, train=True)
scenario = ClassIncremental(
    dataset,
    increment=1,
    initial_increment=5
)

print(f"Number of classes: {scenario.nb_classes}.")
print(f"Number of tasks: {scenario.nb_tasks}.")

for task_id, train_taskset in enumerate(scenario):
    train_taskset, val_taskset = split_train_val(train_taskset, val_split=0.1)
    train_loader = DataLoader(train_taskset, batch_size=32, shuffle=True)
    val_loader = DataLoader(val_taskset, batch_size=32, shuffle=True)

    for x, y, t in train_loader:
        # Do your cool stuff here

Supported Types of Scenarios

Name Acronym  Supported Scenario
New Instances  NI :white_check_mark: Instances Incremental
New Classes  NC :white_check_mark: Classes Incremental
New Instances & Classes  NIC :white_check_mark: Data Incremental

Supported Datasets:

Most dataset from torchvision.dasasets are supported, for the complete list, look at the documentation page on datasets here.

Furthermore some "Meta"-datasets are can be create or used from numpy array or any torchvision.datasets or from a folder for datasets having a tree-like structure or by combining several dataset and creating dataset fellowships!

Indexing

All our continual loader are iterable (i.e. you can for loop on them), and are also indexable.

Meaning that clloader[2] returns the third task (index starts at 0). Likewise, if you want to evaluate after each task, on all seen tasks do clloader_test[:n].

Example of Sample Images from a Continuum scenario

CIFAR10:

Task 0 Task 1 Task 2 Task 3 Task 4

MNIST Fellowship (MNIST + FashionMNIST + KMNIST):

Task 0 Task 1 Task 2

PermutedMNIST:

Task 0 Task 1 Task 2 Task 3 Task 4

RotatedMNIST:

Task 0 Task 1 Task 2 Task 3 Task 4

TransformIncremental + BackgroundSwap:

Task 0 Task 1 Task 2

Citation

If you find this library useful in your work, please consider citing it:

@misc{douillardlesort2021continuum,
  author={Douillard, Arthur and Lesort, Timothée},
  title={Continuum: Simple Management of Complex Continual Learning Scenarios},
  publisher={arXiv: 2102.06253},
  year={2021}
}

Maintainers

This project was started by a joint effort from Arthur Douillard & Timothée Lesort, and we are currently the two maintainers.

Feel free to contribute! If you want to propose new features, please create an issue.

Contributors: Lucas Caccia Lucas Cecchi Pau Rodriguez, Yury Antonov, psychicmario, fcld94, Ashok Arjun, Md Rifat Arefin, DanieleMugnai, Xiaohan Zou, Umberto Cappellazzo.

On PyPi

Our project is available on PyPi!

pip3 install continuum

Note that previously another project, a CI tool, was using that name. It is now there continuum_ci.

Metadata

Release files for continuum 1.2.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for continuum 1.2.7
File Size Uploaded Provenance Actions
continuum-1.2.7.tar.gz 118.2 kB Without provenance Details for continuum-1.2.7.tar.gz

Release files / continuum-1.2.7.tar.gz

Download URL continuum-1.2.7.tar.gz
Size 118.2 kB
Tags Source
SHA-256 checksum
How to use checksums
baadcdbe2f5b3c05254307c73434a012f2a3d663e1be9469a03d4b82559e98e1
BLAKE2b-256 checksum
How to use checksums
3986f3ab27dd5d2169e58a92fbf08717fbd584217342a4d5248cfe03fa3297fc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.8.5

Security for continuum 1.2.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.2.7 This release

1 release file No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page