簡介•複製的方法•複製結果•如何使用•許可•確認•聯繫

歡迎來到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])。享受代碼。