Auch bekannt als kontinuierliches Lernen, lebenslanges Lernen, inkrementelles Lernen usw.
Lesen Sie die Dokumentation.
Testen Sie Continuum auf Colab!
Von und PyPi installieren:
pip3 install continuum
Und lauf!
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
Name | Akronym | Unterstützt | Szenario |
---|---|---|---|
Neue Instanzen | NI | ✅ | Instanzen Inkrementell |
Neue Klassen | NC | ✅ | Klassen inkrementell |
Neue Instanzen und Klassen | NIC | ✅ | Dateninkrementell |
Die meisten Datensätze von Torchvision.dasasets werden unterstützt. Die vollständige Liste finden Sie auf der Dokumentationsseite zu Datensätzen hier.
Darüber hinaus können einige „Meta“-Datensätze aus einem Numpy-Array oder einem beliebigen Torchvision.dataset oder aus einem Ordner für Datensätze mit einer baumartigen Struktur oder durch Kombinieren mehrerer Datensätze und Erstellen von Datensatzgemeinschaften erstellt oder verwendet werden!
Alle unsere kontinuierlichen Lader sind iterierbar (dh Sie können sie in einer for-Schleife ausführen) und auch indizierbar.
Das bedeutet, dass clloader[2]
die dritte Aufgabe zurückgibt (Index beginnt bei 0). Wenn Sie nach jeder Aufgabe eine Auswertung durchführen möchten, führen Sie für alle angezeigten Aufgaben clloader_test[:n]
aus.
CIFAR10 :
Aufgabe 0 | Aufgabe 1 | Aufgabe 2 | Aufgabe 3 | Aufgabe 4 |
MNIST-Stipendium (MNIST + FashionMNIST + KMNIST) :
Aufgabe 0 | Aufgabe 1 | Aufgabe 2 |
PermutedMNIST :
Aufgabe 0 | Aufgabe 1 | Aufgabe 2 | Aufgabe 3 | Aufgabe 4 |
RotatedMNIST :
Aufgabe 0 | Aufgabe 1 | Aufgabe 2 | Aufgabe 3 | Aufgabe 4 |
TransformIncremental + BackgroundSwap :
Aufgabe 0 | Aufgabe 1 | Aufgabe 2 |
Wenn Sie diese Bibliothek für Ihre Arbeit nützlich finden, denken Sie bitte darüber nach, sie zu zitieren:
@misc{douillardlesort2021continuum,
author={Douillard, Arthur and Lesort, Timothée},
title={Continuum: Simple Management of Complex Continual Learning Scenarios},
publisher={arXiv: 2102.06253},
year={2021}
}
Dieses Projekt wurde durch eine gemeinsame Anstrengung von Arthur Douillard und Timothée Lesort ins Leben gerufen und wir sind derzeit die beiden Betreuer.
Fühlen Sie sich frei, einen Beitrag zu leisten! Wenn Sie neue Funktionen vorschlagen möchten, erstellen Sie bitte ein Problem.
Mitwirkende: Lucas Caccia Lucas Cecchi Pau Rodriguez, Yury Antonov, psychicmario, fcld94, Ashok Arjun, Md Rifat Arefin, DanieleMugnai, Xiaohan Zou, Umberto Cappellazzo.
Unser Projekt ist auf PyPi verfügbar!
pip3 install continuum
Beachten Sie, dass dieser Name zuvor von einem anderen Projekt, einem CI-Tool, verwendet wurde. Es ist jetzt dort Continuum_ci.