Skip to main content

A DataLoader library for Continual Learning in PyTorch.

Project description

Continual Loader (CLLoader)

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

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

Example:

from torch.utils.data import DataLoader

from clloader import CLLoader
from clloader.datasets import MNIST

clloader = CLLoader(
    MNIST("my/data/path", download=True),
    increment=1,
    initial_increment=5
)

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

for task_id, (train_dataset, test_dataset) in enumerate(clloader):
    train_loader = DataLoader(train_dataset)
    test_loader = DataLoader(test_dataset)

    # Do your cool stuff here

Supported Scenarios

Name Acronym  Supported
New Instances  NI :x:
New Classes  NC :white_check_mark:
New Instances & Classes  NIC :x:

Supported Datasets:

Note that the task sizes are fully customizable.

Name Nb classes  Image Size Automatic Download
MNIST 10  28x28x1 :white_check_mark:
Fashion MNIST 10  28x28x1 :white_check_mark:
KMNIST 10  28x28x1 :white_check_mark:
EMNIST 10  28x28x1 :white_check_mark:
QMNIST 10  28x28x1 :white_check_mark:
MNIST Fellowship 30  28x28x1 :white_check_mark:
CIFAR10 10 32x32x3 :white_check_mark:
CIFAR100 100 32x32x3 :white_check_mark:
CIFAR Fellowship 110 32x32x3 :white_check_mark:
ImageNet100 100 224x224x3 :x:
ImageNet1000 1000 224x224x3 :x:
Permuted MNIST 10 + X * 10 224x224x3 :white_check_mark:

Furthermore some "Meta"-datasets are available:

  • InMemoryDataset: for in-memory numpy array
  • PyTorchDataset: for any dataset defined in torchvision
  • ImageFolderDataset: for datasets having a tree-like structure, with one folder per class
  • Fellowship: to combine several datasets

Sample Images

MNIST:

Task 0 Task 1 Task 2 Task 3 Task 4

FashionMNIST:

Task 0 Task 1 Task 2 Task 3 Task 4

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

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

clloader-arthurdouillard-0.0.1.tar.gz (409.8 kB view details)

Uploaded Source

Built Distribution

clloader_arthurdouillard-0.0.1-py3-none-any.whl (11.8 kB view details)

Uploaded Python 3

File details

Details for the file clloader-arthurdouillard-0.0.1.tar.gz.

File metadata

  • Download URL: clloader-arthurdouillard-0.0.1.tar.gz
  • Upload date:
  • Size: 409.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.30.0 CPython/3.7.6

File hashes

Hashes for clloader-arthurdouillard-0.0.1.tar.gz
Algorithm Hash digest
SHA256 89551bb617ee77d92ef3c7e9184315419a6f8f09bd6602017708b5575424edb6
MD5 5e0ac75abb2df7a35ace0b874531dbe7
BLAKE2b-256 9931bd2599e2ddbceea37cea43f011c407d4cb3a5cd620c3da626c5efd9f345e

See more details on using hashes here.

File details

Details for the file clloader_arthurdouillard-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: clloader_arthurdouillard-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 11.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.30.0 CPython/3.7.6

File hashes

Hashes for clloader_arthurdouillard-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6fd2d2bf93814a8f4ce0c8b6f9b10dfcca2a8ee8b25939b9891c58ee86236046
MD5 56a3b39caa030398c62824942d452872
BLAKE2b-256 70575b7182ad26a819afde674c79b230c339dea387250c3dec6d4a1a88e9f34a

See more details on using hashes here.

Supported by

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