Skip to main content

A clean and simple library for Continual Learning in PyTorch.

Project description

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

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: prlz77, yantonov, psychicmario, fcld94, Ashok Arjun, Md Rifat Arefin, DanieleMugnai, Xiaohan Zou.

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

continuum-1.1.8.tar.gz (98.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

continuum-1.1.8-py3-none-any.whl (149.2 kB view details)

Uploaded Python 3

File details

Details for the file continuum-1.1.8.tar.gz.

File metadata

  • Download URL: continuum-1.1.8.tar.gz
  • Upload date:
  • Size: 98.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.24.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.7.9

File hashes

Hashes for continuum-1.1.8.tar.gz
Algorithm Hash digest
SHA256 6f72010b9d536dfba60661f0339d9afb8699c770bc1580a6dcc5d38daba43c04
MD5 cc8e0952b8ccbccf379dd2b2b0b6f9f0
BLAKE2b-256 bb65398888fdcdf12ca6f87954f468f4df321c9af5cead1f604b1ba1e1444ea8

See more details on using hashes here.

File details

Details for the file continuum-1.1.8-py3-none-any.whl.

File metadata

  • Download URL: continuum-1.1.8-py3-none-any.whl
  • Upload date:
  • Size: 149.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.24.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.7.9

File hashes

Hashes for continuum-1.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 ad878cde13ba0e31844a16d312e442e0a066cc25a7364adba91366dfe0caf57d
MD5 d74ea5d4d53f31990e5a1cc6291e2f17
BLAKE2b-256 d2c771347fbcc97bbbb91e7f4cc3c08dc1959279a09e1416b6c0afdd2c81c290

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page