[ICCV 2023](口頭)這是我們論文的官方存儲庫: Haoyu He,Jianfei Cai,Jing Zhang,Dacheng Tao和Bohan Zhuang的Haoyu He,Jianfei Cai,Jianfei Cai,Jianfei Cai和Bohan Zhuang的敏感性視覺參數的微調。
[2023-09-12]:發布代碼。消息
[2023-08-12]:被ICCV 2023接受口頭呈現!
我們的工作並沒有在參數效率微調(PEFT)中介紹另一個具有可學習參數的體系結構,而是強調將PEFT體系結構放置在適合各種任務的最佳位置上的重要性!

我們的SPT包括兩個階段。
階段1是一個非常快速的單發參數靈敏度估計(幾秒鐘),以查找在哪裡引入可訓練的參數。以下是具有TOP-0.4%敏感參數的各種預訓練VIT中的一些有趣的靈敏度模式。我們發現,從網絡深度和任務無關的類似模式方面,該比例在操作方面表現出特定於任務的不同模式。


第2階段是標準的PEFT,可將大多數參數凍結,並且僅對可訓練的參數進行微調。我們的SPT將可訓練的參數引入了兩個粒度的敏感位置:非結構化的神經元和結構化的PEFT模塊(例如,Lora或適配器),以實現良好的性能!

如果您發現此存儲庫或我們的論文很有用,請考慮引用並飾演我們!
@inproceedings{he2023sensitivity,
title={Sensitivity-Aware Visual Parameter-Efficient Fine-Tuning},
author={He, Haoyu and Cai, Jianfei and Zhang, Jing and Tao, Dacheng and Zhuang, Bohan},
booktitle={ICCV},
year={2023}
}
我們已經在Torch 1.8.0和1.10.0上測試了代碼。請在主目錄中使用以下代碼安裝其他依賴項:
pip install -r requirements.txt
我們為主基準VTAB-1K提供培訓和推理代碼。
cd data/vtab-source
python get_vtab1k.py
PS:您可能必須手動安裝Sun397。請參考VTAB-1K。
請使用以下代碼下載骨幹:
cd checkpoints
# Supervised pre-trained ViT-B/16
wget https://console.cloud.google.com/storage/browser/_details/vit_models/imagenet21k/ViT-B_16.npz
# MAE pre-trained ViT-B/16
wget https://dl.fbaipublicfiles.com/mae/pretrain/mae_pretrain_vit_base.pth
# MoCo V3 pre-trained ViT-B/16
wget https://dl.fbaipublicfiles.com/moco-v3/vit-b-300ep/linear-vit-b-300ep.pth.tar
我們提供了以下代碼(我們已經為受監督的預訓練的VIT-B/16提供了靈敏度sensitivity_spt_supervised_lora_a10和sensitivity_spt_supervised_adapter_a10 )。
# SPT-ADAPTER and SPT-LORA with supervised pre-trained ViT-B/16
bash configs/vtab_mae_spt_lora_sensitivity.sh
bash configs/vtab_mae_spt_adapter_sensitivity.sh
# SPT-ADAPTER and SPT-LORA with MAE pre-trained ViT-B/16
bash configs/vtab_mae_spt_lora_sensitivity.sh
bash configs/vtab_mae_spt_adapter_sensitivity.sh
# SPT-ADAPTER and SPT-LORA with MoCo V3 pre-trained ViT-B/16
bash configs/vtab_mae_spt_lora_sensitivity.sh
bash configs/vtab_mae_spt_adapter_sensitivity.sh
我們提供了以下培訓代碼:
# SPT-ADAPTER and SPT-LORA with supervised pre-trained ViT-B/16
bash configs/vtab_supervised_spt_lora.sh
bash configs/vtab_supervised_spt_adapter.sh
# SPT-ADAPTER and SPT-LORA with MAE pre-trained ViT-B/16
bash configs/vtab_mae_spt_lora.sh
bash configs/vtab_mae_spt_adapter.sh
# SPT-ADAPTER and SPT-LORA with MoCo V3 pre-trained ViT-B/16
bash configs/vtab_moco_spt_lora.sh
bash configs/vtab_moco_spt_adapter.sh
PS:我們掃描不同的可訓練參數預算,以尋求潛在的更好的結果(從0.2m到1.0m)。
- [x] Release code for SPT on ViTs.
- [ ] Release code for FGVC benchmark training (ETA October).
- [ ] Release code for SPT on Swin (ETA October).
- [ ] Release code for SPT on ConvNext (ETA October).
- [ ] Integrate to [PEFT](https://github.com/huggingface/peft) package.
我們的代碼是根據Noah,Coop,AutoFormer,Timm和MMCV修改的。我們感謝作者的開源代碼。