Aka apprentissage continu, apprentissage tout au long de la vie, apprentissage progressif, etc.
Lisez la documentation.
Testez Continuum sur Colab !
Installer depuis et PyPi :
pip3 install continuum
Et cours !
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
Nom | Acronyme | Soutenu | Scénario |
---|---|---|---|
Nouvelles instances | NI | ✅ | Instances incrémentielles |
Nouveaux cours | Caroline du Nord | ✅ | Cours incrémentiels |
Nouvelles instances et classes | Carte réseau | ✅ | Données incrémentielles |
La plupart des ensembles de données de torchvision.dasasets sont pris en charge. Pour la liste complète, consultez la page de documentation sur les ensembles de données ici.
De plus, certains ensembles de données "méta" peuvent être créés ou utilisés à partir d'un tableau numpy ou de n'importe quel torchvision.datasets ou à partir d'un dossier pour les ensembles de données ayant une structure arborescente ou en combinant plusieurs ensembles de données et en créant des bourses d'ensembles de données !
Tous nos chargeurs continus sont itérables (c'est-à-dire que vous pouvez effectuer une boucle dessus) et sont également indexables.
Cela signifie que clloader[2]
renvoie la troisième tâche (l'index commence à 0). De même, si vous souhaitez évaluer après chaque tâche, effectuez clloader_test[:n]
sur toutes les tâches vues.
CIFAR10 :
Tâche 0 | Tâche 1 | Tâche 2 | Tâche 3 | Tâche 4 |
Bourse MNIST (MNIST + FashionMNIST + KMNIST) :
Tâche 0 | Tâche 1 | Tâche 2 |
PermutéMNIST :
Tâche 0 | Tâche 1 | Tâche 2 | Tâche 3 | Tâche 4 |
RotationMNIST :
Tâche 0 | Tâche 1 | Tâche 2 | Tâche 3 | Tâche 4 |
TransformIncremental + BackgroundSwap :
Tâche 0 | Tâche 1 | Tâche 2 |
Si vous trouvez cette bibliothèque utile dans votre travail, pensez à la citer :
@misc{douillardlesort2021continuum,
author={Douillard, Arthur and Lesort, Timothée},
title={Continuum: Simple Management of Complex Continual Learning Scenarios},
publisher={arXiv: 2102.06253},
year={2021}
}
Ce projet a été lancé grâce à un effort conjoint d'Arthur Douillard et Timothée Lesort, et nous en sommes actuellement les deux responsables.
N'hésitez pas à contribuer ! Si vous souhaitez proposer de nouvelles fonctionnalités, veuillez créer un ticket.
Contributeurs : Lucas Caccia Lucas Cecchi Pau Rodriguez, Yury Antonov, psychicmario, fcld94, Ashok Arjun, Md Rifat Arefin, DanieleMugnai, Xiaohan Zou, Umberto Cappellazzo.
Notre projet est disponible sur PyPi !
pip3 install continuum
Notez qu'auparavant un autre projet, un outil CI, utilisait ce nom. Il y est désormais continuum_ci.