简介•复制的方法•复制结果•如何使用•许可•确认•联系

欢迎来到Pycil,也许是使用最实现的方法进行课堂学习的工具箱。这是Pytorch中“ Pycil:Python工具箱” [Paper]的代码存储库。如果您在工作中使用此存储库的任何内容,请引用以下围嘴条目:
@article{zhou2023pycil,
author = {Da-Wei Zhou and Fu-Yun Wang and Han-Jia Ye and De-Chuan Zhan},
title = {PyCIL: a Python toolbox for class-incremental learning},
journal = {SCIENCE CHINA Information Sciences},
year = {2023},
volume = {66},
number = {9},
pages = {197101},
doi = {https://doi.org/10.1007/s11432-022-3600-y}
}
@article{zhou2024class,
author = {Zhou, Da-Wei and Wang, Qi-Wei and Qi, Zhi-Hong and Ye, Han-Jia and Zhan, De-Chuan and Liu, Ziwei},
title = {Class-Incremental Learning: A Survey},
journal={IEEE Transactions on Pattern Analysis and Machine Intelligence},
volume={46},
number={12},
pages={9851--9873},
year = {2024}
}
@inproceedings{zhou2024continual,
title={Continual learning with pre-trained models: A survey},
author={Zhou, Da-Wei and Sun, Hai-Long and Ning, Jingyi and Ye, Han-Jia and Zhan, De-Chuan},
booktitle={IJCAI},
pages={8363-8371},
year={2024}
}
传统的机器学习系统是在封闭世界设置下部署的,这需要在离线培训过程之前进行整个培训数据。但是,现实世界中的应用程序通常会面临传入的新类,并且模型应不断融合。学习范式称为课堂学习学习(CIL)。我们提出了一个Python工具箱,该工具箱实现了几种关键算法,用于课堂学习,以减轻机器学习社区中研究人员的负担。该工具箱包含许多CIL的创始作品(例如EWC和ICARL)的实现,但还提供了当前的最新算法,可用于进行新颖的基础研究。该工具箱被称为Python class-incremental学习的Pycil,是带有MIT许可证的开源。
有关增量学习的更多信息,您可以参考这些阅读材料:
FineTune :基线方法,仅更新新任务的参数。EWC :克服神经网络中的灾难性遗忘。 PNAS2017 [纸]LwF :学习而不会忘记。 ECCV2016 [纸]Replay :带有示例性重播的基线方法。GEM :梯度情节记忆,用于持续学习。 NIPS2017 [纸]iCaRL :增量分类器和表示学习。 CVPR2017 [纸]BiC :大规模增量学习。 CVPR2019 [纸]WA :维持班级学习的歧视和公平性。 CVPR2020 [纸]PODNet :podnet:用于小任务增量学习的汇总输出蒸馏。 ECCV2020 [纸]DER :der:类增量学习的动态扩展表示。 CVPR2021 [纸]PASS :增强和自学的原型,用于增量学习。 CVPR2021 [纸]RMM :RMM:用于课堂学习的增强记忆管理。 Neurips2021 [纸]IL2A :通过双重增强进行课堂学习。 Neurips2021 [纸]ACIL :具有绝对记忆和隐私保护的分析课程学习。神经2022 [纸]SSRE :非独立班级学习学习的自我维持表示扩展。 CVPR2022 [纸]FeTrIL ):无示例性课程学习的特征翻译。 WACV2023 [纸]Coil :课堂学习的共同传输。 ACM MM2021 [纸]FOSTER :用于课堂学习的功能增强和压缩。 ECCV 2022 [纸]MEMO :模型或603个示例:朝着记忆效率的课堂学习学习。 ICLR 2023聚光灯[纸]BEEF :牛肉:通过基于能量的膨胀和融合,培养双兼容的类新学习。 ICLR 2023 [纸]DS-AL :无示例性课程学习的双流分析学习。 AAAI 2024 [纸]SimpleCIL :使用预训练的模型重新访问课堂学习:您需要普遍性和适应性。 IJCV 2024 [纸]Aper :使用预训练的模型重新访问课堂学习:您只需要普遍性和适应性。 IJCV 2024 [纸] 


更多的实验细节和结果可以在我们的调查中找到。
克隆这个GitHub存储库:
git clone https://github.com/G-U-N/PyCIL.git
cd PyCIL
[MODEL NAME].json文件。[MODEL NAME].py文件(例如, models/icarl.py )中编辑超参数。python main.py --config=./exps/[MODEL NAME].json其中应从finetune , ewc , lwf , replay , gem , icarl , bic , wa , podnet , der等选择[模型名称]。
hyper-parameters使用PYCIL时,您可以在相应的JSON文件中编辑全局参数和算法特定的高参数。
这些参数包括:
ResNet32用于CIFAR100 , ResNet18用于ImageNet 。在模型优化方面,可以在相应的Python文件中修改其他参数,例如,例如,批处理大小,优化时期,学习率衰减,重量衰减,里程碑和温度。
我们已经实施了CIFAR100 , imagenet100,和imagenet1000的预处理。在CIFAR100进行培训时,此框架将自动下载它。在imagenet100/1000上培训时,应在utils/data.py中指定数据集的文件夹。
def download_data ( self ):
assert 0 , "You should specify the folder of your dataset"
train_dir = '[DATA-PATH]/train/'
test_dir = '[DATA-PATH]/val/'这是ImagEnet100的文件列表(或说Imagenet-Sub)。
基于预训练的基于模型的域内收入学习的双重整合( ARXIV 2024 )[纸]
您需要的全部需要( IJCV 2024 )[Paper] [代码],重新访问类培训的课程学习:普遍性和适应性是您所需要的。
课堂学习学习:调查( TPAMI 2024 )[纸] [代码]
可扩展的基于预训练的基于模型的课堂知识学习( CVPR 2024 )[Paper] [代码]
多层彩排功能增强班级学习( ICML 2024 )[纸] [代码]
通过预训练的模型持续学习:调查( IJCAI 2024 )[纸] [代码]
长尾班级学习学习(机器学习2024 )[纸] [代码]的自适应适配器路由
不忘记视觉模型的学习( ARXIV 2023 )[纸]
飞行员:基于预训练的基于模型的持续学习工具箱( ARXIV 2023 )[PAPER] [代码]
通过无训练的原型校准( Neurips 2023 )[纸] [代码],通过无训练的原型校准进行了几次课程学习
牛肉:通过基于能量的扩张和融合( ICLR 2023 )[Paper] [Code]通过基于能量的扩张和融合的双兼容班级学习
模型或603个示例:迈向记忆效率的班级学习学习( ICLR 2023 )[纸] [代码]
通过采样多相任务( TPAMI 2022 )[纸] [paper] [代码],几乎没有类似的课堂学习学习
Foster:课堂学习学习的功能增强和压缩( ECCV 2022 )[纸] [代码]
向前兼容的几个射击课程学习( CVPR 2022 )[纸] [代码]
课堂学习的共同传输( ACM MM 2021 )[纸] [代码]
对工业持续学习方案进行现实评估,重点是能源消耗和计算足迹( ICCV 2023 )[纸] [代码]
类增量学习的动态残留分类器( ICCV 2023 )[纸] [代码]
S-Prompts通过预训练的变压器学习:OCCAM的域剃须刀增量学习( Neurips 2022 )[Paper] [Code]
请检查此存储库中列出的MIT许可证。
我们感谢以下存储库在我们的工作中提供有用的组件/功能。
训练流和数据配置基于持续的学习 - 生产。存储库的原始信息可在基本分支中获得。
如果有任何疑问,请随时通过与作者打开问题或联系: da-wei Zhou ([email protected])和Fu-Yun Wang ([email protected])。享受代码。