/class-incremental-learning

PyTorch implementation of AANets (CVPR 2021) and Mnemonics Training (CVPR 2020)

Primary LanguagePythonMIT LicenseMIT

Class-Incremental Learning

LICENSE Python PyTorch

Papers

  • Adaptive Aggregation Networks for Class-Incremental Learning, CVPR 2021. [PDF] [Project Page]

  • Mnemonics Training: Multi-Class Incremental Learning without Forgetting, CVPR 2020. [PDF] [Project Page]

Citations

Please cite our papers if they are helpful to your work:

@inproceedings{Liu2020AANets,
  author    = {Liu, Yaoyao and Schiele, Bernt and Sun, Qianru},
  title     = {Adaptive Aggregation Networks for Class-Incremental Learning},
  booktitle = {The IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
  pages     = {2544-2553},
  year      = {2021}
}
@inproceedings{liu2020mnemonics,
author    = {Liu, Yaoyao and Su, Yuting and Liu, An{-}An and Schiele, Bernt and Sun, Qianru},
title     = {Mnemonics Training: Multi-Class Incremental Learning without Forgetting},
booktitle = {The IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
pages     = {12245--12254},
year      = {2020}
}

Acknowledgements

Our implementation uses the source code from the following repositories:

AANet+lucir cifar 50-10 python main.py --nb_cl_fg=50 --nb_cl=10 --gpu=0 --random_seed=1993 --baseline=lucir --branch_mode=dual --branch_1=ss --branch_2=free --dataset=cifar100 --resume_fg --ckpt_dir_fg ./logs/cifar100_nfg50_ncls10_nproto20_lucir_dual_b1ss_b2free_fixed_exp01_aanetTPCIL_noloss13/iter_4_b1.pth --notes=aanet_lucir

aanet做的测试代码,base是lucir 是cifar100 50-10

python main_attacker.py --nb_cl_fg=50 --nb_cl=10 --gpu=0 --random_seed=1993 --baseline=lucir --branch_mode=dual --branch_1=ss --branch_2=free --dataset=cifar100 --resume_fg --ckpt_dir_fg ./logs/cifar100_nfg50_ncls10_nproto20_lucir_dual_b1ss_b2free_fixed_exp01_aanetTPCIL_noloss13/iter_4_b1.pth --notes=tpcli_noloss23 python main_attacker.py --nb_cl_fg=50 --nb_cl=10 --gpu=0 --random_seed=1993 --baseline=lucir --branch_mode=dual --branch_1=ss --branch_2=free --dataset=cifar100 --resume_fg --ckpt_dir_fg ./logs/cifar100_nfg50_ncls10_nproto20_lucir_dual_b1ss_b2free_fixed_exp01_aanetTPCIL_noloss13/iter_4_b1.pth --notes=aalucir_ak

python main_attacker.py --nb_cl_fg=50 --nb_cl=10 --gpu=0 --random_seed=1993 --baseline=lucir --branch_mode=dual --branch_1=free --branch_2=free --fusion_lr=0.0 --dataset=cifar100 --resume_fg --ckpt_dir_fg ./logs/cifar100_nfg50_ncls10_nproto20_lucir_dual_b1ss_b2free_fixed_exp01_aanetTPCIL_noloss13/iter_4_b1.pth --notes=tpcil_dulebrach