· 論文 · 基準 · 首頁 · 文件 ·
✅ [2024/07/25] Visual PEFT Benchmark開始發布資料集、程式碼等。
✅ [2024/06/20] Visual PEFT Benchmark 主頁已建立。
✅ [2024/06/01] Visual PEFT Benchmark 儲存庫已建立。
介紹
入門
程式碼結構
快速入門
結果和檢查點
社區和聯繫方式
引文
參數高效遷移學習 (PETL) 方法有望使預訓練模型適應各種下游任務,同時僅訓練少數參數。在電腦視覺(CV)領域,已經提出了許多PETL演算法,但它們的直接使用或比較仍然不方便。為了應對這項挑戰,我們透過從影像辨識、視訊動作辨識和密集預測任務中選擇 30 個多樣化、具有挑戰性和全面的資料集,建構了CV 領域的統一視覺PETL 基準(V-PETL Bench) 。在這些資料集上,我們系統性地評估了25 個主要的 PETL 演算法,並開源了一個模組化且可擴展的程式碼庫,以便對這些演算法進行公平的評估。
細粒度視覺分類任務 (FGVC)
FGVC 包含 5 個細粒度視覺分類資料集。可以透過官方連結下載資料集。如果公共驗證集不可用,我們將分割訓練資料。分割後的資料集可以在這裡找到:下載連結。
CUB200 2011
北美洲鳥類
牛津花
史丹佛狗
史丹佛汽車
視覺任務適應基準(VTAB)
VTAB 包含 19 個不同的視覺分類資料集。我們已經處理了所有資料集,資料可以在這裡下載:下載連結。具體處理過程和提示請參閱VTAB_SETUP。
動力學-400
從下載連結或下載連結下載資料集。
透過將視訊短邊大小調整為320px來預處理資料集。您可以參考MMAction2資料基準。
產生資料載入器所需的註解(註解中的「train.csv
、 val.csv
和test.csv
。 *.csv
檔案的格式如下:
video_1.mp4 label_1 video_2.mp4 label_2 video_3.mp4 label_3 ... video_N.mp4 label_N
東西-東西 V2 (SSv2)
從下載鏈接下載資料集。
透過將視訊副檔名從webm
更改為.mp4
以及原始高度240px來預處理資料集。您可以參考MMAction2資料基準。
產生資料載入器所需的註解(註解中的「train.csv
、 val.csv
和test.csv
。 *.csv
檔案的格式如下:
video_1.mp4 label_1 video_2.mp4 label_2 video_3.mp4 label_3 ... video_N.mp4 label_N
MS-COCO
MS-COCO 可從此下載連結取得。
ADE20K
ADE20K的訓練和驗證集可以從此下載鏈接下載。我們也可以從下載鏈接下載測試集。
帕斯卡VOC
Pascal VOC 2012 可從下載連結下載。此外,最近關於 Pascal VOC 數據集的工作通常會利用額外的增強數據,可以找到下載連結。
下載 ViT-B/16 預訓練模型並將其放置到/path/to/pretrained_models
。
mkdir pretrained_models wget https://storage.googleapis.com/vit_models/imagenet21k/ViT-B_16.npz
或者您可以下載 Swin-B 預訓練模型。請注意,您還需要將下載的 Swin-B ckpt 從swin_base_patch4_window7_224_22k.pth
重新命名為Swin-B_16.pth
。
mkdir pretrained_models wget https://github.com/SwinTransformer/storage/releases/download/v1.0.0/swin_base_patch4_window7_224_22k.pth mv swin_base_patch4_window7_224_22k.pth Swin_B_16.pth
另一種方法是從下面的連結下載預訓練模型並將其放入/path/to/pretrained_models
。
預訓練骨幹 | 預訓練目標 | 預訓練資料集 | 檢查站 |
---|---|---|---|
維生素B/16 | 監督 | ImageNet-21K | 下載連結 |
維T-L/16 | 監督 | ImageNet-21K | 下載連結 |
ViT-H/16 | 監督 | ImageNet-21K | 下載連結 |
斯溫-B | 監督 | ImageNet-22K | 下載連結 |
斯溫-L | 監督 | ImageNet-22K | 下載連結 |
ViT-B(視訊MAE) | 自我監督 | 動力學-400 | 下載連結 |
影片 Swin-B | 監督 | 動力學-400 | 下載連結 |
ImageClassification/configs
:處理實驗的設定參數。
ImageClassification/config/vtab/cifar100.yaml
:每個資料集的實驗和解釋的主要配置設定。
……
ImageClassification/dataloader
:載入和設定輸入資料集。
ImageClassification/dataloader/transforms
:影像轉換。
ImageClassification/dataloader/loader
:建構給定資料集的資料載入器。
ImageClassification/models
:處理不同微調協定的主幹拱門和頭部
ImageClassification/models/vision_transformer_adapter.py
:包含與vit_backbones
資料夾中相同的主幹的資料夾,為 Adapter 指定。
ImageClassification/models/vision_transformer_sct.py
:一個資料夾包含與vit_backbones
資料夾中相同的主幹網,指定用於 SCT。
……
ImageClassification/train
:包含training file
夾的資料夾,
ImageClassification/train/train_model_adapter.py
:呼叫此函數進行訓練並評估具有為 Adapter 指定的指定傳輸類型的模型。
ImageClassification/train/train_model_sct.py
:呼叫此模型進行訓練並評估具有指定傳輸類型(為 SCT 指定)的模型。
……
ImageClassification/scripts
:包含scripts file
資料夾的資料夾,
ImageClassification/scripts/run_vit_adapter.sh
:您可以立即在所有資料集上執行 Adapter 方法。
ImageClassification/scripts/run_vit_sct.sh
:您可以立即在所有資料集上執行 Adapter 方法。
……
ImageClassification/Visualize
:可視化工具。
ImageClassification/Visualize/AttentionMap.py
:注意力圖視覺化。
ImageClassification/Visualize/TSNE.py
:T-SNE 視覺化。
ImageClassification/utils
:建立記錄器、設定種子等。
❗️注意❗️:如果你想創建自己的PETL演算法,請注意`ImageClassification/models`。
這是如何在本機設定 V-PETL Bench 的範例。
若要取得本機副本,請按照以下簡單的範例步驟運行。
git 克隆 https://github.com/synbol/Parameter-Efficient-Transfer-Learning-Benchmark.git
V-PETL Bench是基於pytorch建構的,有torchvision、torchaudio、timm等。
要安裝所需的套件,您可以建立 conda 環境。
conda 建立 --name v-petl-bench python=3.8
激活conda環境。
conda 啟動 v-petl-bench
使用 pip 安裝所需的套件。
cd 參數高效率遷移學習基準 pip install -r 要求.txt
我們提供了具體的訓練和評估演示,以VTAB Cifar100上的LoRA為例。
導入系統 sys.path.append("參數高效率傳輸學習基準") 進口火炬 從圖像分類導入實用程式 從 ImageClassification.dataloader 匯入 vtab from ImageClassification.train import train# 取得 lora 方法from timm.scheduler.cosine_lr import CosineLRScheduler 從 ImageClassification.models 匯入 Vision_transformer_lora import timm# 保存模型與日誌的路徑exp_base_path = '../output'utils.mkdirss(exp_base_path)# create loggerlogger = utils.create_logger(log_path=exp_base_path, log_name='training')# get getpter= (' model_lora', 'vtab', 'cifar100')# 取得vtab資料集data_path = '/home/ma-user/work/haozhe/synbol/vtab-1k'train_dl, test_dl = vtab.get_data(data_path, 'cifar100 ', logger,評估=False,train_aug=config['train_aug'],batch_size=config['batch_size'])#取得預訓練模型model = timm.models.create_model('vit_base_patch16_224_in21Kpointa',natch. ViT-B_16.npz' ,drop_path_rate=0.1,tuning_mode='lora') model.reset_classifier(config['class_num'])# 訓練參數trainable = []for n, p in model.named_parameters(): if 'linear_a' in n or 'linear_b' in n or 'head' in n : 可訓練.append(p) 記錄器.info(str(n)) 別的: p.requires_grad = False opt = torch.optim.AdamW(可訓練,lr=1e-4,weight_decay=5e-2) Scheduler = CosineLRScheduler(opt, t_initial=config['epochs'], Warmup_t=config['warmup_epochs'], lr_min=1e-5, Warmup_lr_init=1e-6, Cycle_decay = 0.1)# EntropyLoss. ( )# Trainingmodel = train.train(config, model, criteria, train_dl, opt, Scheduler, logger, config['epochs'], 'vtab', 'cifar100')# eval_acc = train.test(model, test_dl, ' vtab ')
您可以在資料集上使用 PETL 演算法進行訓練。
python python train/train_model_sct.py --dataset cifar100 --task vtab --lr 0.012 --wd 0.6 --eval True --dpr 0.1 --tuning_mode $tuning_mode --model_type $model_type --model $model_type --model_check模型檢查點
或者您可以在所有資料集上使用 PETL 演算法進行訓練
bash 腳本/run_model_sct.sh
我們使用在 ImageNet-21K 上預先訓練的 ViT-B/16 模型在 5 個資料集上評估 13 個 PETL 演算法。
若要取得檢查點,請從下載連結下載。
方法 | CUB-200-2011 | 北美洲鳥類 | 牛津花 | 史丹佛狗 | 史丹佛汽車 | 意思是 | 參數。 | PPT |
---|---|---|---|---|---|---|---|---|
全程微調 | 87.3 | 82.7 | 98.8 | 89.4 | 84.5 | 88.54 | 85.8M | - |
線性探測 | 85.3 | 75.9 | 97.9 | 86.2 | 51.3 | 79.32 | 0米 | 0.79 |
適配器 | 87.1 | 84.3 | 98.5 | 89.8 | 68.6 | 85.66 | 0.41M | 0.84 |
適應成型器 | 88.4 | 84.7 | 99.2 | 88.2 | 81.9 | 88.48 | 0.46M | 0.87 |
前綴調優 | 87.5 | 82.0 | 98.0 | 74.2 | 90.2 | 86.38 | 0.36M | 0.85 |
U 型調諧 | 89.2 | 85.4 | 99.2 | 84.1 | 92.1 | 90.00 | 0.36M | 0.89 |
比特菲特 | 87.7 | 85.2 | 99.2 | 86.5 | 81.5 | 88.02 | 0.10M | 0.88 |
VPT-淺層 | 86.7 | 78.8 | 98.4 | 90.7 | 68.7 | 84.66 | 0.25M | 0.84 |
VPT-深 | 88.5 | 84.2 | 99.0 | 90.2 | 83.6 | 89.10 | 0.85M | 0.86 |
SSF | 89.5 | 85.7 | 99.6 | 89.6 | 89.2 | 90.72 | 0.39M | 0.89 |
洛拉 | 85.6 | 79.8 | 98.9 | 87.6 | 72.0 | 84.78 | 0.77M | 0.82 |
全球定位系統 | 89.9 | 86.7 | 99.7 | 92.2 | 90.4 | 91.78 | 0.66M | 0.90 |
高溫試驗 | 89.2 | 85.8 | 99.6 | 89.5 | 88.2 | 90.46 | 0.78M | 0.88 |
最後的 | 88.5 | 84.4 | 99.7 | 86.0 | 88.9 | 89.50 | 0.66M | 0.87 |
神經網路因子 | 90.2 | 87.4 | 99.7 | 89.5 | 86.9 | 90.74 | 0.25M | 0.90 |
VTAB 的基準結果。我們使用在 ImageNet-21K 上預先訓練的 ViT-B/16 模型在 19 個資料集上評估 18 個 PETL 演算法。
若要取得檢查點,請從下載連結下載。
方法 | CIFAR-100 | 加州理工學院101 | DTD | 花102 | 寵物 | SVHN | 孫397 | 帕奇·卡梅利翁 | 歐洲衛星公司 | 抵抗45 | 視網膜病變 | 聰明/計數 | 聰明/距離 | DM實驗室 | 基蒂/距離 | dSprites/loc | dSprite/ori | 小NORB/azi | 小NORB/ele | 意思是 | 參數。 | PPT |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
全程微調 | 68.9 | 87.7 | 64.3 | 97.2 | 86.9 | 87.4 | 38.8 | 79.7 | 95.7 | 84.2 | 73.9 | 56.3 | 58.6 | 41.7 | 65.5 | 57.5 | 46.7 | 25.7 | 29.1 | 65.57 | 85.8M | - |
線性探測 | 63.4 | 85.0 | 63.2 | 97.0 | 86.3 | 36.6 | 51.0 | 78.5 | 87.5 | 68.6 | 74.0 | 34.3 | 30.6 | 33.2 | 55.4 | 12.5 | 20.0 | 9.6 | 19.2 | 52.94 | 0M | 0.53 |
適配器 | 69.2 | 90.1 | 68.0 | 98.8 | 89.9 | 82.8 | 54.3 | 84.0 | 94.9 | 81.9 | 75.5 | 80.9 | 65.3 | 48.6 | 78.3 | 74.8 | 48.5 | 29.9 | 41.6 | 71.44 | 0.16M | 0.71 |
VPT-淺層 | 77.7 | 86.9 | 62.6 | 97.5 | 87.3 | 74.5 | 51.2 | 78.2 | 92.0 | 75.6 | 72.9 | 50.5 | 58.6 | 40.5 | 67.1 | 68.7 | 36.1 | 20.2 | 34.1 | 64.85 | 0.08M | 0.65 |
VPT-深 | 78.8 | 90.8 | 65.8 | 98.0 | 88.3 | 78.1 | 49.6 | 81.8 | 96.1 | 83.4 | 68.4 | 68.5 | 60.0 | 46.5 | 72.8 | 73.6 | 47.9 | 32.9 | 37.8 | 69.43 | 0.56M | 0.68 |
比特菲特 | 72.8 | 87.0 | 59.2 | 97.5 | 85.3 | 59.9 | 51.4 | 78.7 | 91.6 | 72.9 | 69.8 | 61.5 | 55.6 | 32.4 | 55.9 | 66.6 | 40.0 | 15.7 | 25.1 | 62.05 | 0.10M | 0.61 |
洛拉 | 67.1 | 91.4 | 69.4 | 98.8 | 90.4 | 85.3 | 54.0 | 84.9 | 95.3 | 84.4 | 73.6 | 82.9 | 69.2 | 49.8 | 78.5 | 75.7 | 47.1 | 31.0 | 44.0 | 72.25 | 0.29M | 0.71 |
適應成型器 | 70.8 | 91.2 | 70.5 | 99.1 | 90.9 | 86.6 | 54.8 | 83.0 | 95.8 | 84.4 | 76.3 | 81.9 | 64.3 | 49.3 | 80.3 | 76.3 | 45.7 | 31.7 | 41.1 | 72.32 | 0.16M | 0.72 |
SSF | 69.0 | 92.6 | 75.1 | 99.4 | 91.8 | 90.2 | 52.9 | 87.4 | 95.9 | 87.4 | 75.5 | 75.9 | 62.3 | 53.3 | 80.6 | 77.3 | 54.9 | 29.5 | 37.9 | 73.10 | 0.21M | 0.72 |
諾亞 | 69.6 | 92.7 | 70.2 | 99.1 | 90.4 | 86.1 | 53.7 | 84.4 | 95.4 | 83.9 | 75.8 | 82.8 | 68.9 | 49.9 | 81.7 | 81.8 | 48.3 | 32.8 | 44.2 | 73.25 | 0.43M | 0.72 |
幹細胞移植 | 75.3 | 91.6 | 72.2 | 99.2 | 91.1 | 91.2 | 55.0 | 85.0 | 96.1 | 86.3 | 76.2 | 81.5 | 65.1 | 51.7 | 80.2 | 75.4 | 46.2 | 33.2 | 45.7 | 73.59 | 0.11M | 0.73 |
事實 | 70.6 | 90.6 | 70.8 | 99.1 | 90.7 | 88.6 | 54.1 | 84.8 | 96.2 | 84.5 | 75.7 | 82.6 | 68.2 | 49.8 | 80.7 | 80.8 | 47.4 | 33.2 | 43.0 | 73.23 | 0.07M | 0.73 |
代表適配器 | 72.4 | 91.6 | 71.0 | 99.2 | 91.4 | 90.7 | 55.1 | 85.3 | 95.9 | 84.6 | 75.9 | 82.3 | 68.0 | 50.4 | 79.9 | 80.4 | 49.2 | 38.6 | 41.0 | 73.84 | 0.22M | 0.72 |
九頭蛇 | 72.7 | 91.3 | 72.0 | 99.2 | 91.4 | 90.7 | 55.5 | 85.8 | 96.0 | 86.1 | 75.9 | 83.2 | 68.2 | 50.9 | 82.3 | 80.3 | 50.8 | 34.5 | 43.1 | 74.21 | 0.28M | 0.73 |
LST | 59.5 | 91.5 | 69.0 | 99.2 | 89.9 | 79.5 | 54.6 | 86.9 | 95.9 | 85.3 | 74.1 | 81.8 | 61.8 | 52.2 | 81.0 | 71.7 | 49.5 | 33.7 | 45.2 | 71.70 | 2.38M | 0.65 |
資料傳輸層 | 69.6 | 94.8 | 71.3 | 99.3 | 91.3 | 83.3 | 56.2 | 87.1 | 96.2 | 86.1 | 75.0 | 82.8 | 64.2 | 48.8 | 81.9 | 93.9 | 53.9 | 34.2 | 47.1 | 74.58 | 0.04M | 0.75 |
高溫試驗 | 76.7 | 94.1 | 74.8 | 99.6 | 91.1 | 91.2 | 52.3 | 87.1 | 96.3 | 88.6 | 76.5 | 85.4 | 63.7 | 52.9 | 81.7 | 87.2 | 56.8 | 35.8 | 52.1 | 75.99 | 0.78M | 0.74 |
全球定位系統 | 81.1 | 94.2 | 75.8 | 99.4 | 91.7 | 91.6 | 52.4 | 87.9 | 96.2 | 86.5 | 76.5 | 79.9 | 62.6 | 55.0 | 82.4 | 84.0 | 55.4 | 29.7 | 46.1 | 75.18 | 0.22M | 0.74 |
最後的 | 66.7 | 93.4 | 76.1 | 99.6 | 89.8 | 86.1 | 54.3 | 86.2 | 96.3 | 86.8 | 75.4 | 81.9 | 65.9 | 49.4 | 82.6 | 87.9 | 46.7 | 32.3 | 51.5 | 74.15 | 0.66M | 0.72 |
神經網路因子 | 84.0 | 94.0 | 72.7 | 99.3 | 91.3 | 90.3 | 54.9 | 87.2 | 97.3 | 85.5 | 74.5 | 82.3 | 63.8 | 49.8 | 82.5 | 75.8 | 49.2 | 31.4 | 42.1 | 74.10 | 0.25M | 0.73 |
SSv2 和 HMDB51 的基準測試結果。我們使用 VideoMAE 和 Video Swin Transformer 的 ViT-B 評估 5 種 PETL 演算法。
若要取得檢查點,請從下載連結下載。
方法 | 模型 | 預訓練 | 參數。 | SSv2(前 1 名) | SSv2(PPT) | HMDB51(前1名) | HMDB51 (PPT) |
---|---|---|---|---|---|---|---|
全程微調 | 維生素B | 動力學400 | 85.97M | 53.97% | - | 46.41% | - |
冷凍 | 維生素B | 動力學400 | 0米 | 29.23% | 0.29 | 49.84% | 0.50 |
適應成型器 | 維生素B | 動力學400 | 1.19米 | 59.02% | 0.56 | 55.69% | 0.53 |
巴帕特 | 維生素B | 動力學400 | 206米 | 57.78% | 0.53 | 57.18% | 0.53 |
全程微調 | 影片 Swin-B | 動力學400 | 87.64M | 50.99% | - | 68.07% | - |
冷凍 | 影片 Swin-B | 動力學400 | 0米 | 24.13% | 0.24 | 71.28% | 0.71 |
洛拉 | 影片 Swin-B | 動力學400 | 0.75米 | 38.34% | 0.37 | 62.12% | 0.60 |
比特菲特 | 影片 Swin-B | 動力學400 | 109米 | 45.94% | 0.44 | 68.26% | 0.65 |
適應成型器 | 影片 Swin-B | 動力學400 | 1.56M | 40.80% | 0.38 | 68.66% | 0.64 |
前綴調整 | 影片 Swin-B | 動力學400 | 6.37米 | 39.46% | 0.32 | 56.13% | 0.45 |
巴帕特 | 影片 Swin-B | 動力學400 | 6.18米 | 53.36% | 0.43 | 71.93% | 0.58 |
COCO 上的基準結果。我們使用在 ImageNet-22K 上預先訓練的 Swin-B 模型來評估 9 個 PETL 演算法。
若要取得檢查點,請在即將推出中下載。
斯溫-B | 參數。 | 記憶 | 可可( | 可可(PPT) | 可可( | 可可(PPT) |
---|---|---|---|---|---|---|
全程微調 | 86.75米 | 17061MB | 51.9% | - | 45.0% | - |
冷凍 | 0.00米 | 7137MB | 43.5% | 0.44 | 38.6% | 0.39 |
比特菲特 | 0.20M | 13657MB | 47.9% | 0.47 | 41.9% | 0.42 |
音調 | 0.06M | 12831MB | 48.0% | 0.48 | 41.4% | 0.41 |
部分1 | 12.60M | 7301MB | 49.2% | 0.35 | 42.8% | 0.30 |
適配器 | 3.11米 | 12557MB | 50.9% | 0.45 | 43.8% | 0.39 |
洛拉 | 3.03米 | 11975MB | 51.2% | 0.46 | 44.3% | 0.40 |
適應成型器 | 3.11米 | 13186MB | 51.4% | 0.46 | 44.5% | 0.40 |
洛蘭德 | 1.20M | 13598MB | 51.0% | 0.49 | 43.9% | 0.42 |
E$^3$VA | 1.20M | 7639MB | 50.5% | 0.48 | 43.8% | 0.42 |
莫娜 | 4.16米 | 13996MB | 53.4% | 0.46 | 46.0% | 0.40 |
PASCAL VOC 和 ADE20K 的基準測試結果。我們使用在 ImageNet-22K 上預先訓練的 Swin-L 模型來評估 9 個 PETL 演算法。
若要取得檢查點,請在即將推出中下載。
斯溫-L | 參數。 | 記憶體(VOC) | 帕斯卡VOC( | 帕斯卡VOC (PPT) | ADE20K( | ADE20K(PPT) |
---|---|---|---|---|---|---|
全程微調 | 198.58M | 15679MB | 83.5% | - | 52.10% | - |
冷凍 | 0.00米 | 3967MB | 83.6% | 0.84 | 46.84% | 0.47 |
比特菲特 | 0.30M | 10861MB | 85.7% | 0.85 | 48.37% | 0.48 |
音調 | 0.09米 | 10123MB | 85.8% | 0.86 | 47.98% | 0.48 |
部分1 | 28.34M | 3943MB | 85.4% | 0.48 | 47.44% | 0.27 |
適配器 | 4.66米 | 10793MB | 87.1% | 0.74 | 50.78% | 0.43 |
洛拉 | 4.57米 | 10127MB | 87.5% | 0.74 | 50.34% | 0.43 |
適應成型器 | 4.66米 | 11036MB | 87.3% | 0.74 | 50.83% | 0.43 |
洛蘭德 | 1.31M | 11572MB | 86.8% | 0.82 | 50.76% | 0.48 |
E$^3$VA | 1.79米 | 4819MB | 86.5% | 0.81 | 49.64% | 0.46 |
莫娜 | 5.08M | 11958MB | 87.3% | 0.73 | 51.36% | 0.43 |
V-PETL Bench 社群由以下人員維護:
易鑫 ([email protected]),南京大學。
羅思琪 ([email protected]),上海交通大學。
如果您發現我們的調查和儲存庫對您的研究有用,請在下面引用:
@article{xin2024bench, title={V-PETL Bench:統一的視覺參數高效遷移學習基準},作者={Yi Xin, Siqi Luo, Xuyang Liu, Haodi Zhou, Xinyu Cheng, Christina Luoluo Lee, Junlong Du, Yuntao 杜杜., 王浩哲, 陳明才, 劉婷, 胡桂敏, 萬中偉, 張榮超, 李傲雪, 易明陽, 劉曉紅}, 年={2024}}