l2p pytorch
1.0.0
此儲存庫包含用於出色的持續學習方法 L2P 的 PyTorch 實作程式碼,
王子峰,等。 “學習促進持續學習。” CVPR。 2022 年。
官方的 Jax 實現在這裡。
我使用和測試的系統
首先,將儲存庫克隆到本地:
git clone https://github.com/JH-LEE-KR/l2p-pytorch
cd l2p-pytorch
然後,安裝以下軟體包:
pytorch==1.12.1
torchvision==0.13.1
timm==0.6.7
pillow==9.2.0
matplotlib==3.5.3
這些軟體包可以透過以下方式輕鬆安裝
pip install -r requirements.txt
如果您已有 CIFAR-100 或 5-Datasets(MNIST、Fashion-MNIST、NotMNIST、CIFAR10、SVHN),請將資料集路徑傳遞給--data-path
。
資料集尚未準備好,請變更datasets.py
中的下載參數,如下所示
CIFAR-100
datasets.CIFAR100(download=True)
5-數據集
datasets.CIFAR10(download=True)
MNIST_RGB(download=True)
FashionMNIST(download=True)
NotMNIST(download=True)
SVHN(download=True)
透過命令列訓練模型:
單節點單 GPU
python -m torch.distributed.launch
--nproc_per_node=1
--use_env main.py
<cifar100_l2p or five_datasets_l2p>
--model vit_base_patch16_224
--batch-size 16
--data-path /local_datasets/
--output_dir ./output
單節點多 GPU
python -m torch.distributed.launch
--nproc_per_node=<Num GPUs>
--use_env main.py
<cifar100_l2p or five_datasets_l2p>
--model vit_base_patch16_224
--batch-size 16
--data-path /local_datasets/
--output_dir ./output
透過正確更改train_cifar100_l2p.sh
或train_five_datasets.sh
上的選項,也可以在 Slurm 系統中使用。
可以透過 Slurm 進行分散式培訓並提交:
pip install submitit
要在 2 個節點(每個節點有 4 個 GPU)上訓練模型:
python run_with_submitit.py <cifar100_l2p or five_datasets_l2p> --shared_folder <Absolute Path of shared folder for all nodes>
共用資料夾的絕對路徑必須可從所有節點存取。
根據您的環境,您可以選擇使用NCLL_SOCKET_IFNAME=<Your own IP interface to use for communication>
。
要評估經過訓練的模型:
python -m torch.distributed.launch --nproc_per_node=1 --use_env main.py <cifar100_l2p or five_datasets_l2p> --eval
在單一 GPU 上的測試結果。
姓名 | 帳戶@1 | 遺忘 |
---|---|---|
Pytorch-實現 | 83.77 | 6.63 |
重現官方實施 | 82.59 | 7.88 |
論文結果 | 83.83 | 7.63 |
姓名 | 帳戶@1 | 遺忘 |
---|---|---|
Pytorch-實現 | 80.22 | 3.81 |
重現官方實施 | 79.68 | 3.71 |
論文結果 | 81.14 | 4.64 |
以下是測試中使用的指標及其相應含義:
公制 | 描述 |
---|---|
帳戶@1 | 直到最後一個任務的平均評估準確率 |
遺忘 | 直到最後一個任務的平均遺忘率 |
該儲存庫是根據 Apache 2.0 許可證發布的,如 LICENSE 文件中所示。
@inproceedings{wang2022learning,
title={Learning to prompt for continual learning},
author={Wang, Zifeng and Zhang, Zizhao and Lee, Chen-Yu and Zhang, Han and Sun, Ruoxi and Ren, Xiaoqi and Su, Guolong and Perot, Vincent and Dy, Jennifer and Pfister, Tomas},
booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
pages={139--149},
year={2022}
}