我們的後續工作“視覺元基準基線”(代碼:元擬合器)介紹了更多的元法基準,包括
這是我們的論文“元構造者實際上是您所需要的”(CVPR 2022口服)提出的池形成器的pytorch實現。
注意:這項工作的目標不是設計複雜的令牌攪拌機以實現SOTA性能,而是證明變壓器模型的能力在很大程度上源於一般體系結構元元素。匯總/泳池形式只是支持我們主張的工具。
圖1: Imagenet-1K驗證集上基於元圖的模型的元圖和性能。我們認為,變壓器/MLP樣模型的能力主要源於一般體系結構元構造器,而不是配備的特定令牌混合器。為了證明這一點,我們利用了一個令人尷尬的簡單非參數操作員匯總,以進行極為基本的令牌混合。令人驚訝的是,所得的模型池形成器始終勝過(b)所示的DEIT和RESMLP,這很好地支持了Metaformer實際上是我們實現競爭性能所需的。 (b)中的rsb-resnet表示結果來自“重新打擊”,其中重新網絡通過改進的300個時期的訓練程序進行了訓練。

圖2:(a)池形成器的整體框架。 (b)泳池形式塊的體系結構。與變壓器塊相比,它用非常簡單的非參數操作員(合併)來取代注意力,以僅進行基本的令牌混合。
@inproceedings{yu2022metaformer,
title={Metaformer is actually what you need for vision},
author={Yu, Weihao and Luo, Mi and Zhou, Pan and Si, Chenyang and Zhou, Yichen and Wang, Xinchao and Feng, Jiashi and Yan, Shuicheng},
booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
pages={10819--10829},
year={2022}
}
可可配置和訓練有素的模型上的檢測和實例細分在這裡。
ADE20K配置和訓練有素的模型上的語義細分在這裡。
可視化游泳位,DEIT,RESMLP,RESNET和SWIN的GRAD-CAM激活圖的代碼在這裡。
測量Mac的代碼在這裡。
火炬> = 1.7.0;火炬> = 0.8.0; pyyaml; APEX-AMP(如果要使用FP16); timm( pip install git+https://github.com/rwightman/pytorch-image-models.git@9d6aad44f8fd32e89e5cca503efe3ada5071cc2a )
數據準備:具有以下文件夾結構的Imagenet,您可以通過此腳本提取成像網。
│imagenet/
├──train/
│ ├── n01440764
│ │ ├── n01440764_10026.JPEG
│ │ ├── n01440764_10027.JPEG
│ │ ├── ......
│ ├── ......
├──val/
│ ├── n01440764
│ │ ├── ILSVRC2012_val_00000293.JPEG
│ │ ├── ILSVRC2012_val_00002138.JPEG
│ │ ├── ......
│ ├── ......
| 模型 | #params | 圖像分辨率 | #MAC* | top1 acc | 下載 |
|---|---|---|---|---|---|
| POOMFORMER_S12 | 12m | 224 | 1.8克 | 77.2 | 這裡 |
| POOLFORMER_S24 | 21m | 224 | 3.4克 | 80.3 | 這裡 |
| POOMFORMER_S36 | 31m | 224 | 5.0g | 81.4 | 這裡 |
| POOLFORMER_M36 | 56m | 224 | 8.8克 | 82.1 | 這裡 |
| POOMFORMER_M48 | 73m | 224 | 11.6g | 82.5 | 這裡 |
所有審慎的型號也可以通過Baidu Yun(密碼:ESAC)下載。 *為了方便地與未來模型進行比較,我們更新了FVCore庫(示例代碼)計數的Mac數量,這些數字也在新的Arxiv版本中報告。
集成到擁抱面空間?使用Gradio。嘗試網絡演示:
我們還提供了一個COLAB筆記本,該筆記本運行了與PoolFormer執行推理的步驟:
為了評估我們的泳池形式模型,請運行:
MODEL=poolformer_s12 # poolformer_{s12, s24, s36, m36, m48}
python3 validate.py /path/to/imagenet --model $MODEL -b 128
--pretrained # or --checkpoint /path/to/checkpoint 我們展示瞭如何在8 GPU上培訓泳池形式。學習率與批處理大小之間的關係是LR = BS/1024*1E-3。為了方便起見,假設批處理大小為1024,則將學習率設置為1E-3(批次大小為1024,將學習率定為2E-3有時會看到更好的性能)。
MODEL=poolformer_s12 # poolformer_{s12, s24, s36, m36, m48}
DROP_PATH=0.1 # drop path rates [0.1, 0.1, 0.2, 0.3, 0.4] responding to model [s12, s24, s36, m36, m48]
CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 ./distributed_train.sh 8 /path/to/imagenet
--model $MODEL -b 128 --lr 1e-3 --drop-path $DROP_PATH --apex-amp
可視化游泳位,DEIT,RESMLP,RESNET和SWIN的GRAD-CAM激活圖的代碼在這裡。
我們的實施主要基於以下代碼庫。我們非常感謝作者的精彩作品。
pytorch-image模型,mmdetection,mmmevementation。
此外,Weihao Yu要感謝TPU研究雲(TRC)計劃的支持部分計算資源。