timm 文件
更新日誌
加入 Hugging Face 社群
並獲得增強的文件體驗
開始使用
更新日誌
2025 年 1 月 19 日
- 修復 LeViT safetensor 權重的載入問題,移除了本應被停用的轉換程式碼
- 新增使用 SBB 配方訓練的“SO150M” ViT 權重,效果不錯,但對於 ImageNet-12k/1k 預訓練/微調來說形狀不是最優的
vit_so150m_patch16_reg4_gap_256.sbb_e250_in12k_ft_in1k
- 86.7% top-1vit_so150m_patch16_reg4_gap_384.sbb_e250_in12k_ft_in1k
- 87.4% top-1vit_so150m_patch16_reg4_gap_256.sbb_e250_in12k
- 其他型別、拼寫錯誤等清理
- 釋出 1.0.14 版本以推出上述 LeViT 修復
2025 年 1 月 9 日
- 增加在純
bfloat16
或float16
模式下進行訓練和驗證的支援 - 由 https://github.com/caojiaolong 添加了 `wandb` 專案名稱引數,使用 arg.experiment 作為名稱
- 修復了在不支援硬連結的檔案系統(例如 FUSE fs 掛載)上檢查點儲存不工作的舊問題
- 釋出 1.0.13 版本
2025 年 1 月 6 日
- 在
timm.models
中新增torch.utils.checkpoint.checkpoint()
包裝器,預設use_reentrant=False
,除非在環境變數中設定了TIMM_REENTRANT_CKPT=1
。
2024 年 12 月 31 日
convnext_nano
384x384 在 ImageNet-12k 上預訓練並微調。 https://huggingface.co/models?search=convnext_nano%20r384- 從 https://github.com/apple/ml-aim 新增 AIM-v2 編碼器,請在 Hub 上檢視:https://huggingface.co/models?search=timm%20aimv2
- 從 https://github.com/google-research/big_vision 向現有 PaliGemma 新增 PaliGemma2 編碼器,請在 Hub 上檢視:https://huggingface.co/models?search=timm%20pali2
- 新增缺失的 L/14 DFN2B 39B CLIP ViT,
vit_large_patch14_clip_224.dfn2b_s39b
- 修復現有的
RmsNorm
層和函式以匹配標準公式,儘可能使用 PT 2.5 的實現。將舊的實現移動到SimpleNorm
層,這是一個沒有中心化或偏置的 LN。只有兩個timm
模型在使用它,並且它們已經更新。 - 允許覆蓋模型建立的
cache_dir
引數 - 為 HF 資料集包裝器傳遞
trust_remote_code
引數 - 由建立者新增
inception_next_atto
模型 - Adan 最佳化器注意事項,以及 Lamb 解耦權重衰減選項
- 由 https://github.com/brianhou0208 修復了一些 feature_info 元資料
- 所有 OpenCLIP 和 JAX(CLIP、SigLIP、Pali 等)模型權重都使用了載入時重對映,現在為它們提供了各自的 HF Hub 例項,以便它們能夠與基於
hf-hub:
的載入方式相容,從而能與新的 TransformersTimmWrapperModel
配合使用
2024 年 11 月 28 日
- 更多最佳化器
- 新增 MARS 最佳化器(https://arxiv.org/abs/2411.10438, https://github.com/AGI-Arena/MARS)
- 新增 LaProp 最佳化器(https://arxiv.org/abs/2002.04839, https://github.com/Z-T-WANG/LaProp-Optimizer)
- 將來自“Cautious Optimizers” (https://arxiv.org/abs/2411.16085, https://github.com/kyleliang919/C-Optim) 的掩碼功能新增到 Adafactor、Adafactor Big Vision、AdamW (legacy)、Adopt、Lamb、LaProp、Lion、NadamW、RMSPropTF、SGDW 中
- 清理一些關於最佳化器和工廠的文件字串和型別註釋
- 新增在 in12k 上預訓練並在 in1k @ 384x384 上微調的 MobileNet-V4 Conv Medium 模型
- 新增小型 cs3darknet,速度相當不錯
2024 年 11 月 12 日
- 最佳化器工廠重構
- 新的工廠透過使用帶有某些關鍵特性的 OptimInfo 資料類來註冊最佳化器
- 向重構後的
create_optimizer_v2
函式新增list_optimizers
、get_optimizer_class
、get_optimizer_info
,用於探索最佳化器、獲取資訊或類 - 棄用
optim.optim_factory
,將函式移動到optim/_optim_factory.py
和optim/_param_groups.py
,並鼓勵透過timm.optim
匯入
- 新增 Adopt (https://github.com/iShohei220/adopt) 最佳化器
- 新增“Big Vision”版本的 Adafactor(https://github.com/google-research/big_vision/blob/main/big_vision/optax.py)最佳化器
- 修復原始 Adafactor 以選擇更好的卷積分解維度
- 調整 LAMB 最佳化器,自原始版本以來在 torch.where 功能方面有所改進,並對裁剪進行了一些重構
- 改進了 vit、deit、eva 中的動態影像尺寸支援,以支援從非方形補丁網格調整大小,感謝 https://github.com/wojtke
2024 年 10 月 31 日
添加了一組經過良好訓練的全新 ResNet 和 ResNet-V2 18/34(基礎塊)權重。請參閱 https://huggingface.co/blog/rwightman/resnet-trick-or-treat
2024 年 10 月 19 日
- 清理 torch amp 的使用以避免特定於 cuda 的呼叫,合併了來自 MengqingCao 的對 Ascend (NPU) 裝置的支援,該支援現在應該可以在 PyTorch 2.5 中與新的裝置擴充套件自動載入功能一起工作。在 Pytorch 2.5 中也測試了 Intel Arc (XPU),它(大部分)能工作。
2024 年 10 月 16 日
- 修復了從已棄用的路徑
timm.models.registry
匯入時的錯誤,提高了現有棄用警告的優先順序使其可見 - 將 InternViT-300M (https://huggingface.co/OpenGVLab/InternViT-300M-448px) 的權重移植到
timm
中,命名為vit_intern300m_patch14_448
2024 年 10 月 14 日
- 應要求添加了 18/18d/34/34d ResNet 模型的預啟用(ResNetV2)版本(權重待定)
- 釋出 1.0.10
2024 年 10 月 11 日
- 添加了 MambaOut(https://github.com/yuweihao/MambaOut)模型和權重。這是對 SSM 視覺模型的一種巧妙改造,但沒有 SSM(本質上是帶有門控的 ConvNeXt)。混合了原始權重和自定義變體及權重。
- SigLIP SO400M ViT 在 ImageNet-1k 上以 378x378 進行微調,為現有的 SigLIP 384x384 模型增加了 378x378 選項
- vit_so400m_patch14_siglip_378.webli_ft_in1k - 89.42 top-1
- vit_so400m_patch14_siglip_gap_378.webli_ft_in1k - 89.03
- 來自最近的多語言(i18n)變體的 SigLIP SO400M ViT 編碼器,patch16 @ 256x256(https://huggingface.co/timm/ViT-SO400M-16-SigLIP-i18n-256)。OpenCLIP 更新待定。
- 添加了兩個 ConvNeXt ‘Zepto’ 模型和權重(一個帶有重疊主幹,一個帶有補丁主幹)。使用 RMSNorm,比之前的 ‘Atto’ 更小,引數為 2.2M。
- convnext_zepto_rms_ols.ra4_e3600_r224_in1k - 在 224x224 解析度下 top-1 準確率為 73.20
- convnext_zepto_rms.ra4_e3600_r224_in1k - 72.81 @ 224
2024 年 9 月
- 為改進單元測試和特定低資源應用,添加了一套微型測試模型 (https://huggingface.co/blog/rwightman/timm-tiny-test)
- 新增 MobileNetV4-Conv-Small (0.5x) 模型 (https://huggingface.co/posts/rwightman/793053396198664)
- mobilenetv4_conv_small_050.e3000_r224_in1k - 在 256x256 解析度下 top-1 準確率 65.81,在 224x224 解析度下 64.76
- 新增使用 MNV4 Small 配方訓練的 MobileNetV3-Large 變體
- mobilenetv3_large_150d.ra4_e3600_r256_in1k - 81.81 @ 320, 80.94 @ 256
- mobilenetv3_large_100.ra4_e3600_r224_in1k - 77.16 @ 256, 76.31 @ 224
2024 年 8 月 21 日
- 更新了在 ImageNet-12k 上訓練並在 ImageNet-1k 上微調的 SBB ViT 模型,挑戰了許多更大、更慢的模型
模型 | top1 | top5 | 引數數量 | 影像尺寸 |
---|---|---|---|---|
vit_mediumd_patch16_reg4_gap_384.sbb2_e200_in12k_ft_in1k | 87.438 | 98.256 | 64.11 | 384 |
vit_mediumd_patch16_reg4_gap_256.sbb2_e200_in12k_ft_in1k | 86.608 | 97.934 | 64.11 | 256 |
vit_betwixt_patch16_reg4_gap_384.sbb2_e200_in12k_ft_in1k | 86.594 | 98.02 | 60.4 | 384 |
vit_betwixt_patch16_reg4_gap_256.sbb2_e200_in12k_ft_in1k | 85.734 | 97.61 | 60.4 | 256 |
- 採用 MNV4 基準挑戰配方的 MobileNet-V1 1.25、EfficientNet-B1 和 ResNet50-D 權重
模型 | top1 | top5 | 引數數量 | 影像尺寸 |
---|---|---|---|---|
resnet50d.ra4_e3600_r224_in1k | 81.838 | 95.922 | 25.58 | 288 |
efficientnet_b1.ra4_e3600_r240_in1k | 81.440 | 95.700 | 7.79 | 288 |
resnet50d.ra4_e3600_r224_in1k | 80.952 | 95.384 | 25.58 | 224 |
efficientnet_b1.ra4_e3600_r240_in1k | 80.406 | 95.152 | 7.79 | 240 |
mobilenetv1_125.ra4_e3600_r224_in1k | 77.600 | 93.804 | 6.27 | 256 |
mobilenetv1_125.ra4_e3600_r224_in1k | 76.924 | 93.234 | 6.27 | 224 |
- 新增 SAM2 (HieraDet) 主幹架構和權重載入支援
- 新增使用 abswin 位置嵌入在 in12k 上訓練並在 1k 上微調的 Hiera Small 權重
模型 | top1 | top5 | 引數數量 |
---|---|---|---|
hiera_small_abswin_256.sbb2_e200_in12k_ft_in1k | 84.912 | 97.260 | 35.01 |
hiera_small_abswin_256.sbb2_pd_e200_in12k_ft_in1k | 84.560 | 97.106 | 35.01 |
2024 年 8 月 8 日
- 新增 RDNet(“DenseNets Reloaded”,https://arxiv.org/abs/2403.19588),感謝 Donghyun Kim
2024 年 7 月 28 日
- 使用基於
ra4
mnv4-small 的配方添加了mobilenet_edgetpu_v2_m
權重。在 224x224 解析度下 top-1 準確率 80.1%,在 256x256 解析度下 80.7%。 - 釋出 1.0.8
2024 年 7 月 26 日
- 更多 MobileNet-v4 權重,在 ImageNet-12k 上預訓練並微調,以及抗鋸齒的 ConvLarge 模型
模型 | top1 | top1_err | top5 | top5_err | 引數數量 | 影像尺寸 |
---|---|---|---|---|---|---|
mobilenetv4_conv_aa_large.e230_r448_in12k_ft_in1k | 84.99 | 15.01 | 97.294 | 2.706 | 32.59 | 544 |
mobilenetv4_conv_aa_large.e230_r384_in12k_ft_in1k | 84.772 | 15.228 | 97.344 | 2.656 | 32.59 | 480 |
mobilenetv4_conv_aa_large.e230_r448_in12k_ft_in1k | 84.64 | 15.36 | 97.114 | 2.886 | 32.59 | 448 |
mobilenetv4_conv_aa_large.e230_r384_in12k_ft_in1k | 84.314 | 15.686 | 97.102 | 2.898 | 32.59 | 384 |
mobilenetv4_conv_aa_large.e600_r384_in1k | 83.824 | 16.176 | 96.734 | 3.266 | 32.59 | 480 |
mobilenetv4_conv_aa_large.e600_r384_in1k | 83.244 | 16.756 | 96.392 | 3.608 | 32.59 | 384 |
mobilenetv4_hybrid_medium.e200_r256_in12k_ft_in1k | 82.99 | 17.01 | 96.67 | 3.33 | 11.07 | 320 |
mobilenetv4_hybrid_medium.e200_r256_in12k_ft_in1k | 82.364 | 17.636 | 96.256 | 3.744 | 11.07 | 256 |
- 令人印象深刻的 MobileNet-V1 和 EfficientNet-B0 基準挑戰(https://huggingface.co/blog/rwightman/mobilenet-baselines)
模型 | top1 | top1_err | top5 | top5_err | 引數數量 | 影像尺寸 |
---|---|---|---|---|---|---|
efficientnet_b0.ra4_e3600_r224_in1k | 79.364 | 20.636 | 94.754 | 5.246 | 5.29 | 256 |
efficientnet_b0.ra4_e3600_r224_in1k | 78.584 | 21.416 | 94.338 | 5.662 | 5.29 | 224 |
mobilenetv1_100h.ra4_e3600_r224_in1k | 76.596 | 23.404 | 93.272 | 6.728 | 5.28 | 256 |
mobilenetv1_100.ra4_e3600_r224_in1k | 76.094 | 23.906 | 93.004 | 6.996 | 4.23 | 256 |
mobilenetv1_100h.ra4_e3600_r224_in1k | 75.662 | 24.338 | 92.504 | 7.496 | 5.28 | 224 |
mobilenetv1_100.ra4_e3600_r224_in1k | 75.382 | 24.618 | 92.312 | 7.688 | 4.23 | 224 |
- 在 vit 和 swin v1/v2 模型中添加了
set_input_size()
的原型,以允許在模型建立後更改影像大小、補丁大小、視窗大小。 - 在 swin 中改進了對不同大小處理的支援,除了
set_input_size
,還在__init__
中添加了always_partition
和strict_img_size
引數,以允許更靈活的輸入大小約束 - 修復中間“Getter”特徵包裝器的亂序索引資訊,檢查相同內容的越界或範圍索引。
- 新增幾個引數小於 0.5M 的 `tiny` 模型用於測試,這些模型實際上是在 ImageNet-1k 上訓練的
模型 | top1 | top1_err | top5 | top5_err | 引數數量 | 影像尺寸 | crop_pct |
---|---|---|---|---|---|---|---|
test_efficientnet.r160_in1k | 47.156 | 52.844 | 71.726 | 28.274 | 0.36 | 192 | 1.0 |
test_byobnet.r160_in1k | 46.698 | 53.302 | 71.674 | 28.326 | 0.46 | 192 | 1.0 |
test_efficientnet.r160_in1k | 46.426 | 53.574 | 70.928 | 29.072 | 0.36 | 160 | 0.875 |
test_byobnet.r160_in1k | 45.378 | 54.622 | 70.572 | 29.428 | 0.46 | 160 | 0.875 |
test_vit.r160_in1k | 42.0 | 58.0 | 68.664 | 31.336 | 0.37 | 192 | 1.0 |
test_vit.r160_in1k | 40.822 | 59.178 | 67.212 | 32.788 | 0.37 | 160 | 0.875 |
- 修復 vit reg token 初始化,感謝 Promisery
- 其他雜項修復
2024 年 6 月 24 日
- 新增 3 個採用不同 MQA 權重初始化方案的 MobileNetV4 混合權重
模型 | top1 | top1_err | top5 | top5_err | 引數數量 | 影像尺寸 |
---|---|---|---|---|---|---|
mobilenetv4_hybrid_large.ix_e600_r384_in1k | 84.356 | 15.644 | 96.892 | 3.108 | 37.76 | 448 |
mobilenetv4_hybrid_large.ix_e600_r384_in1k | 83.990 | 16.010 | 96.702 | 3.298 | 37.76 | 384 |
mobilenetv4_hybrid_medium.ix_e550_r384_in1k | 83.394 | 16.606 | 96.760 | 3.240 | 11.07 | 448 |
mobilenetv4_hybrid_medium.ix_e550_r384_in1k | 82.968 | 17.032 | 96.474 | 3.526 | 11.07 | 384 |
mobilenetv4_hybrid_medium.ix_e550_r256_in1k | 82.492 | 17.508 | 96.278 | 3.722 | 11.07 | 320 |
mobilenetv4_hybrid_medium.ix_e550_r256_in1k | 81.446 | 18.554 | 95.704 | 4.296 | 11.07 | 256 |
- 在 DaViT 模型中載入 florence2 權重
2024 年 6 月 12 日
- 添加了 MobileNetV4 模型和初始的一組 `timm` 訓練權重
模型 | top1 | top1_err | top5 | top5_err | 引數數量 | 影像尺寸 |
---|---|---|---|---|---|---|
mobilenetv4_hybrid_large.e600_r384_in1k | 84.266 | 15.734 | 96.936 | 3.064 | 37.76 | 448 |
mobilenetv4_hybrid_large.e600_r384_in1k | 83.800 | 16.200 | 96.770 | 3.230 | 37.76 | 384 |
mobilenetv4_conv_large.e600_r384_in1k | 83.392 | 16.608 | 96.622 | 3.378 | 32.59 | 448 |
mobilenetv4_conv_large.e600_r384_in1k | 82.952 | 17.048 | 96.266 | 3.734 | 32.59 | 384 |
mobilenetv4_conv_large.e500_r256_in1k | 82.674 | 17.326 | 96.31 | 3.69 | 32.59 | 320 |
mobilenetv4_conv_large.e500_r256_in1k | 81.862 | 18.138 | 95.69 | 4.31 | 32.59 | 256 |
mobilenetv4_hybrid_medium.e500_r224_in1k | 81.276 | 18.724 | 95.742 | 4.258 | 11.07 | 256 |
mobilenetv4_conv_medium.e500_r256_in1k | 80.858 | 19.142 | 95.768 | 4.232 | 9.72 | 320 |
mobilenetv4_hybrid_medium.e500_r224_in1k | 80.442 | 19.558 | 95.38 | 4.62 | 11.07 | 224 |
mobilenetv4_conv_blur_medium.e500_r224_in1k | 80.142 | 19.858 | 95.298 | 4.702 | 9.72 | 256 |
mobilenetv4_conv_medium.e500_r256_in1k | 79.928 | 20.072 | 95.184 | 4.816 | 9.72 | 256 |
mobilenetv4_conv_medium.e500_r224_in1k | 79.808 | 20.192 | 95.186 | 4.814 | 9.72 | 256 |
mobilenetv4_conv_blur_medium.e500_r224_in1k | 79.438 | 20.562 | 94.932 | 5.068 | 9.72 | 224 |
mobilenetv4_conv_medium.e500_r224_in1k | 79.094 | 20.906 | 94.77 | 5.23 | 9.72 | 224 |
mobilenetv4_conv_small.e2400_r224_in1k | 74.616 | 25.384 | 92.072 | 7.928 | 3.77 | 256 |
mobilenetv4_conv_small.e1200_r224_in1k | 74.292 | 25.708 | 92.116 | 7.884 | 3.77 | 256 |
mobilenetv4_conv_small.e2400_r224_in1k | 73.756 | 26.244 | 91.422 | 8.578 | 3.77 | 224 |
mobilenetv4_conv_small.e1200_r224_in1k | 73.454 | 26.546 | 91.34 | 8.66 | 3.77 | 224 |
- Apple MobileCLIP(https://arxiv.org/pdf/2311.17049,FastViT 和 ViT-B)影像塔模型支援和權重已新增(作為 OpenCLIP 支援的一部分)。
- ViTamin (https://arxiv.org/abs/2404.02132) CLIP 影像塔模型和權重已新增(作為 OpenCLIP 支援的一部分)。
- OpenAI CLIP 修改版 ResNet 影像塔建模和權重支援(透過 ByobNet)。重構 AttentionPool2d。
2024 年 5 月 14 日
- 支援將 PaliGemma jax 權重載入到帶平均池化的 SigLIP ViT 模型中。
- 新增來自 Meta 的 Hiera 模型 (https://github.com/facebookresearch/hiera)。
- 為變換新增 `normalize=` 標誌,返回具有原始 dytpe 的非歸一化 torch.Tensor(用於 `chug`)
- 釋出 1.0.3 版本
2024 年 5 月 11 日
- 釋出了 `尋找更好的 ViT 基線(為 GPU 資源有限者)` 的權重和 vit 變體。探索了 Tiny 和 Base 之間的模型形狀。
- 添加了 AttentionExtract 輔助工具,用於從
timm
模型中提取注意力圖。示例請見 https://github.com/huggingface/pytorch-image-models/discussions/1232#discussioncomment-9320949 forward_intermediates()
API 經過最佳化,並已新增到更多模型中,包括一些具有其他提取方法的 ConvNets。- 1047 個模型架構中有 1017 個支援
features_only=True
特徵提取。剩餘的 34 個架構可以根據優先請求進行支援。 - 移除了 torch.jit.script 註釋的函式,包括舊的 JIT 啟用函式。與 dynamo 衝突,並且在使用 dynamo 時效果更好。
2024 年 4 月 11 日
- 為期待已久的 1.0 版本做準備,已經穩定了一段時間了。
- 一個長期缺失的重要功能:為具有扁平隱藏狀態或非標準模組佈局的 ViT 模型(目前涵蓋
'vit_*', 'twins_*', 'deit*', 'beit*', 'mvitv2*', 'eva*', 'samvit_*', 'flexivit*'
)提供features_only=True
支援 - 上述功能支援是透過一個新的
forward_intermediates()
API 實現的,該 API 可以與特徵包裝模組一起使用或直接使用。
model = timm.create_model('vit_base_patch16_224')
final_feat, intermediates = model.forward_intermediates(input)
output = model.forward_head(final_feat) # pooling + classifier head
print(final_feat.shape)
torch.Size([2, 197, 768])
for f in intermediates:
print(f.shape)
torch.Size([2, 768, 14, 14])
torch.Size([2, 768, 14, 14])
torch.Size([2, 768, 14, 14])
torch.Size([2, 768, 14, 14])
torch.Size([2, 768, 14, 14])
torch.Size([2, 768, 14, 14])
torch.Size([2, 768, 14, 14])
torch.Size([2, 768, 14, 14])
torch.Size([2, 768, 14, 14])
torch.Size([2, 768, 14, 14])
torch.Size([2, 768, 14, 14])
torch.Size([2, 768, 14, 14])
print(output.shape)
torch.Size([2, 1000])
model = timm.create_model('eva02_base_patch16_clip_224', pretrained=True, img_size=512, features_only=True, out_indices=(-3, -2,))
output = model(torch.randn(2, 3, 512, 512))
for o in output:
print(o.shape)
torch.Size([2, 768, 32, 32])
torch.Size([2, 768, 32, 32])
- 添加了 TinyCLIP 視覺塔權重,感謝 Thien Tran
2024 年 2 月 19 日
- 添加了 Next-ViT 模型。改編自 https://github.com/bytedance/Next-ViT
- 添加了 HGNet 和 PP-HGNetV2 模型。由 SeeFun 改編自 https://github.com/PaddlePaddle/PaddleClas
- 移除了 setup.py,轉而使用 PDM 支援的基於 pyproject.toml 的構建方式
- 添加了使用 _for_each 的更新模型 EMA 實現,以減少開銷
- 在訓練指令碼中支援非 GPU 裝置的裝置引數
- 其他雜項修復和小的補充
- 最低支援的 Python 版本提高到 3.8
- 釋出 0.9.16 版本
2024 年 1 月 8 日
資料集和變換重構
- 支援 HuggingFace 流式(可迭代)資料集 (
--dataset hfids:org/dataset
) - Webdataset 包裝器調整,改進了分割資訊的獲取,可以從支援的 HF hub webdataset 自動獲取分割資訊
- 測試了 HF
datasets
和 webdataset 包裝器從 HF hub 流式傳輸最近上傳到 https://huggingface.co/timm 的timm
ImageNet 資料 - 在所有資料集中保持輸入和目標列/欄位鍵的一致性,並透過引數傳遞
- 在使用例如
--input-size 1 224 224
或--in-chans 1
時完全支援單色,並在資料集中適當設定 PIL 影像轉換 - 改進了幾個備用裁剪和調整大小的變換(ResizeKeepRatio、RandomCropOrPad 等),用於 PixParse 文件 AI 專案
- 向資料增強和引數中添加了 SimCLR 風格的顏色抖動機率,以及灰度和高斯模糊選項
- 允許在訓練指令碼中不使用驗證集進行訓練 (
--val-split ''
) - 在訓練中新增
--bce-sum
(對類別維度求和)和--bce-pos-weight
(正樣本加權)引數,因為這些是我經常硬編碼的常見 BCE 損失調整
2023 年 11 月 23 日
- 添加了 EfficientViT-Large 模型,感謝 SeeFun
- 修復 Python 3.7 相容性,即將放棄對其的支援
- 其他雜項修復
- 釋出 0.9.12 版本
2023 年 11 月 20 日
- 透過
model_args
配置項,為基於 Hugging Face Hub 的 timm 模型增加了顯著的靈活性。model_args
將在模型建立時作為 kwargs 傳遞。 - 使用最新模型更新了 imagenet 評估和測試集的 csv 檔案
vision_transformer.py
的型別和文件清理由 Laureηt 完成- 釋出 0.9.11 版本
2023 年 11 月 3 日
- 添加了 DFN(資料過濾網路)(https://huggingface.co/papers/2309.17425) 和 MetaCLIP (https://huggingface.co/papers/2309.16671) 的 ViT 權重
- 添加了 DINOv2 'register' ViT 模型權重 (https://huggingface.co/papers/2309.16588, https://huggingface.co/papers/2304.07193)
- 為 OpenAI、DFN、MetaCLIP 權重添加了使用它的
quickgelu
ViT 變體(效率較低) - 感謝 Aryan 對 ResNet、MobileNet-v3 增加了改進的型別提示
- 在 ImageNet-12k 上微調(來自 LAION-2B CLIP)的 `convnext_xxlarge`
- 釋出 0.9.9 版本
2023 年 10 月 20 日
- SigLIP 影像塔權重在 `vision_transformer.py` 中得到支援。
- 在微調和下游特徵使用方面有巨大潛力。
- 根據 Vision Transformers Need Registers,vit 模型中增加了實驗性的“暫存器”支援
- 更新了 RepViT,釋出了新的權重。感謝 wangao
- 在載入預訓練權重時,為 Swin 模型添加了補丁大小調整支援
- 即將釋出 0.9.8
2023 年 9 月 1 日
- 由 SeeFun 添加了 TinyViT
- 修復 EfficientViT (MIT) 以使用 torch.autocast,使其能夠回溯到 PT 1.10 正常工作
- 釋出 0.9.7 版本
2023 年 8 月 28 日
- 在不破壞向後相容性的情況下,為 `vision_transformer.py`、`vision_transformer_hybrid.py`、`deit.py` 和 `eva.py` 中的模型添加了動態影像尺寸支援。
- 在模型建立時新增 `dynamic_img_size=True` 引數,以允許更改網格大小(每次前向傳播時插值絕對和/或 ROPE 位置嵌入)。
- 新增 `dynamic_img_pad=True` 以允許影像大小不能被補丁大小整除(每次前向傳播時在右下角填充到補丁大小)。
- 除非將 PatchEmbed 模組新增為葉子節點,否則啟用任一動態模式都會破壞 FX 跟蹤。
- 現有的透過在建立時傳遞不同的 `img_size` 來調整位置嵌入大小(一次性插值預訓練的嵌入權重)的方法仍然有效。
- 現有透過在建立時更改 `patch_size`(一次性調整預訓練的 patch_embed 權重)的方法仍然有效。
- 驗證命令示例
python validate.py --data-dir /imagenet --model vit_base_patch16_224 --amp --amp-dtype bfloat16 --img-size 255 --crop-pct 1.0 --model-kwargs dynamic_img_size=True dyamic_img_pad=True
2023 年 8 月 25 日
- 自上次釋出以來新增了許多模型
- FastViT - https://arxiv.org/abs/2303.14189
- MobileOne - https://arxiv.org/abs/2206.04040
- InceptionNeXt - https://arxiv.org/abs/2303.16900
- RepGhostNet - https://arxiv.org/abs/2211.06088(感謝 https://github.com/ChengpengChen)
- GhostNetV2 - https://arxiv.org/abs/2211.12905(感謝 https://github.com/yehuitang)
- EfficientViT (MSRA) - https://arxiv.org/abs/2305.07027(感謝 https://github.com/seefun)
- EfficientViT (MIT) - https://arxiv.org/abs/2205.14756(感謝 https://github.com/seefun)
- 向 `benchmark.py`、`onnx_export.py` 和 `validate.py` 新增 `--reparam` 引數,以觸發具有 `reparameterize()`、`switch_to_deploy()` 或 `fuse()` 中任意一個方法的模型的層重引數化/融合
- 包括 FastViT, MobileOne, RepGhostNet, EfficientViT (MSRA), RepViT, RepVGG, 和 LeViT
- 準備 0.9.6 ‘返校’ 版本釋出
2023 年 8 月 11 日
- Swin、MaxViT、CoAtNet 和 BEiT 模型在建立時支援調整影像/視窗大小,並適配預訓練權重
- 測試非方形調整大小的驗證命令示例
python validate.py --data-dir /imagenet --model swin_base_patch4_window7_224.ms_in22k_ft_in1k --amp --amp-dtype bfloat16 --input-size 3 256 320 --model-kwargs window_size=8,10 img_size=256,320
2023 年 8 月 3 日
- 為 HRNet w18_small 和 w18_small_v2 新增 GluonCV 權重。由 SeeFun 轉換
- 修復 `selecsls*` 模型命名迴歸問題
- ViT/EVA 的補丁和位置嵌入在載入時適用於 bfloat16/float16 權重(或用於動態調整大小的啟用)
- 準備 v0.9.5 釋出
2023 年 7 月 27 日
- 添加了 timm 訓練的
seresnextaa201d_32x8d.sw_in12k_ft_in1k_384
權重(以及.sw_in12k
預訓練),在 ImageNet-1k 上的 top-1 準確率達到 87.3%,是我所知的最佳 ImageNet ResNet 系列模型。 - 由 wangao 添加了 RepViT 模型和權重(https://arxiv.org/abs/2307.09283)
- 由 SeeFun 添加了 I-JEPA ViT 特徵權重(無分類器)
- 由 SeeFun 添加了 SAM-ViT(segment anything)特徵權重(無分類器)
- 為 EfficientNet 添加了對替代特徵提取方法和負索引的支援
- 新增 NAdamW 最佳化器
- 雜項修復
2023 年 5 月 11 日
timm
0.9 釋出,從 0.8.xdev 版本過渡
2023 年 5 月 10 日
- Hugging Face Hub 下載現已成為預設設定,https://huggingface.co/timm 上有 1132 個模型,
timm
中有 1163 個權重 - 感謝 Leng Yue 添加了 DINOv2 vit 特徵主幹權重
- 添加了 FB MAE vit 特徵主幹權重
- 添加了 OpenCLIP DataComp-XL L/14 特徵主幹權重
- 由 Fredo Guan 添加了 MetaFormer(poolformer-v2、caformer、convformer、更新的 poolformer (v1))及其權重
- 在 vit/deit 模型上增加了實驗性的 `get_intermediate_layers` 函式,用於獲取隱藏狀態(靈感來自 DINO 的實現)。此功能仍在開發中,可能會有較大變化……歡迎反饋。
- 如果 `pretrained=True` 但沒有權重存在,模型建立會丟擲錯誤(而不是繼續使用隨機初始化)
- 修復了源自 TF 的 inception / nasnet 權重在原始分類器中有 1001 個類別時的迴歸問題
- 將 bitsandbytes (https://github.com/TimDettmers/bitsandbytes) 最佳化器新增到工廠,使用 `bnb` 字首,例如 `bnbadam8bit`
- 雜項清理和修復
- 在將 `timm` 從預釋出狀態轉為 0.9 版本之前的最終測試
2023 年 4 月 27 日
- 97% 的 `timm` 模型已上傳至 HF Hub,並且幾乎所有模型都已更新以支援多權重預訓練配置
- 隨著多權重支援的加入,對另一批模型進行了小幅清理和重構。增加了更多 fused_attn (F.sdpa) 和 features_only 支援,並修復了 torchscript。
2023 年 4 月 21 日
- 在訓練指令碼中新增並測試了梯度累積支援(`--grad-accum-steps`),感謝 Taeksang Kim
- HF Hub 上增加了更多權重(cspnet、cait、volo、xcit、tresnet、hardcorenas、densenet、dpn、vovnet、xception_aligned)
- 向 train.py 添加了 `--head-init-scale` 和 `--head-init-bias`,用於縮放分類器頭部併為微調設定固定偏置
- 移除了所有 InplaceABN (`inplace_abn`) 的使用,在 tresnet 中用標準 BatchNorm 替換(並相應修改了權重)。
2023 年 4 月 12 日
- 添加了我一直以來使用的 ONNX 匯出指令碼、驗證指令碼和輔助函式。調整了“same”填充以更好地與最近的 ONNX + PyTorch 配合匯出。
- 重構了 vit 及類似模型的 dropout 引數,將 drop_rate 分為 `drop_rate` (分類器 dropout)、`proj_drop_rate` (塊 mlp / 輸出投影)、`pos_drop_rate` (位置嵌入 drop)、`attn_drop_rate` (注意力 dropout)。同時向 vit 和 eva 模型添加了 patch dropout (FLIP)。
- 為更多 vit 模型提供了融合的 F.scaled_dot_product_attention 支援,添加了環境變數 (TIMM_FUSED_ATTN) 進行控制,並提供了配置介面來啟用/停用
- 添加了 EVA-CLIP 主幹網路和影像塔權重,最高支援到 4B 引數的“enormous”模型,以及之前遺漏的 336x336 OpenAI ViT 模型。
2023 年 4 月 5 日
- 所有 ResNet 模型已推送到 Hugging Face Hub,並支援多權重
- 所有過去的 `timm` 訓練權重已新增,並帶有基於配方的標籤以作區分
- 所有 ResNet strikes back A1/A2/A3(種子 0)和 R50 示例 B/C1/C2/D 權重均可用
- 向現有的 torchvision 原始權重中新增 torchvision v2 配方權重
- 請參閱 https://huggingface.co/timm/seresnextaa101d_32x8d.sw_in12k_ft_in1k_288#model-comparison 中的比較表
- 為一些抗鋸齒 ResNet 模型提供了新的 ImageNet-12k + ImageNet-1k 微調
resnetaa50d.sw_in12k_ft_in1k
- 81.7 @ 224, 82.6 @ 288resnetaa101d.sw_in12k_ft_in1k
- 83.5 @ 224, 84.1 @ 288seresnextaa101d_32x8d.sw_in12k_ft_in1k
- 86.0 @ 224, 86.5 @ 288seresnextaa101d_32x8d.sw_in12k_ft_in1k_288
- 86.5 @ 288, 86.7 @ 320
2023 年 3 月 31 日
- 新增首個 ConvNext-XXLarge CLIP -> IN-1k 微調,以及針對 convnext-base/large CLIP 模型的 IN-12k 中間微調。
模型 | top1 | top5 | 影像尺寸 | 引數數量 | gmacs | macts |
---|---|---|---|---|---|---|
convnext_xxlarge.clip_laion2b_soup_ft_in1k | 88.612 | 98.704 | 256 | 846.47 | 198.09 | 124.45 |
convnext_large_mlp.clip_laion2b_soup_ft_in12k_in1k_384 | 88.312 | 98.578 | 384 | 200.13 | 101.11 | 126.74 |
convnext_large_mlp.clip_laion2b_soup_ft_in12k_in1k_320 | 87.968 | 98.47 | 320 | 200.13 | 70.21 | 88.02 |
convnext_base.clip_laion2b_augreg_ft_in12k_in1k_384 | 87.138 | 98.212 | 384 | 88.59 | 45.21 | 84.49 |
convnext_base.clip_laion2b_augreg_ft_in12k_in1k | 86.344 | 97.97 | 256 | 88.59 | 20.09 | 37.55 |
- 新增 EVA-02 MIM 預訓練和微調權重,推送到 HF hub 並更新所有 EVA 模型的模型卡。首個 top-1 準確率超過 90%(top-5 準確率 99%)的模型!請檢視原始程式碼和權重 https://github.com/baaivision/EVA 以獲取更多關於他們融合 MIM、CLIP 以及許多模型、資料集和訓練配方調整工作的詳細資訊。
模型 | top1 | top5 | 引數數量 | 影像尺寸 |
---|---|---|---|---|
eva02_large_patch14_448.mim_m38m_ft_in22k_in1k | 90.054 | 99.042 | 305.08 | 448 |
eva02_large_patch14_448.mim_in22k_ft_in22k_in1k | 89.946 | 99.01 | 305.08 | 448 |
eva_giant_patch14_560.m30m_ft_in22k_in1k | 89.792 | 98.992 | 1014.45 | 560 |
eva02_large_patch14_448.mim_in22k_ft_in1k | 89.626 | 98.954 | 305.08 | 448 |
eva02_large_patch14_448.mim_m38m_ft_in1k | 89.57 | 98.918 | 305.08 | 448 |
eva_giant_patch14_336.m30m_ft_in22k_in1k | 89.56 | 98.956 | 1013.01 | 336 |
eva_giant_patch14_336.clip_ft_in1k | 89.466 | 98.82 | 1013.01 | 336 |
eva_large_patch14_336.in22k_ft_in22k_in1k | 89.214 | 98.854 | 304.53 | 336 |
eva_giant_patch14_224.clip_ft_in1k | 88.882 | 98.678 | 1012.56 | 224 |
eva02_base_patch14_448.mim_in22k_ft_in22k_in1k | 88.692 | 98.722 | 87.12 | 448 |
eva_large_patch14_336.in22k_ft_in1k | 88.652 | 98.722 | 304.53 | 336 |
eva_large_patch14_196.in22k_ft_in22k_in1k | 88.592 | 98.656 | 304.14 | 196 |
eva02_base_patch14_448.mim_in22k_ft_in1k | 88.23 | 98.564 | 87.12 | 448 |
eva_large_patch14_196.in22k_ft_in1k | 87.934 | 98.504 | 304.14 | 196 |
eva02_small_patch14_336.mim_in22k_ft_in1k | 85.74 | 97.614 | 22.13 | 336 |
eva02_tiny_patch14_336.mim_in22k_ft_in1k | 80.658 | 95.524 | 5.76 | 336 |
- DeiT 和 MLP-Mixer 基礎模型的多權重和 HF Hub 支援
2023 年 3 月 22 日
- 更多權重已推送到 HF hub,並支援多權重,包括:`regnet.py`、`rexnet.py`、`byobnet.py`、`resnetv2.py`、`swin_transformer.py`、`swin_transformer_v2.py`、`swin_transformer_v2_cr.py`
- Swin Transformer 模型支援特徵提取(`swinv2_cr_*` 為 NCHW 特徵圖,其他所有模型為 NHWC)和空間嵌入輸出。
- 添加了 FocalNet(來自 https://github.com/microsoft/FocalNet)模型和權重,並進行了大量重構,支援特徵提取,無固定解析度/大小限制
- 隨著 HF hub 推送,RegNet 權重增加,包括 SWAG、SEER 和 torchvision v2 權重。SEER 在模型大小方面的效能相當差,但可能有用。
- 更多 ImageNet-12k 預訓練和 1k 微調的 `timm` 權重
rexnetr_200.sw_in12k_ft_in1k
- 82.6 @ 224, 83.2 @ 288rexnetr_300.sw_in12k_ft_in1k
- 84.0 @ 224, 84.5 @ 288regnety_120.sw_in12k_ft_in1k
- 85.0 @ 224, 85.4 @ 288regnety_160.lion_in12k_ft_in1k
- 85.6 @ 224, 86.0 @ 288regnety_160.sw_in12k_ft_in1k
- 在 224x224 解析度下 85.6,在 288x288 解析度下 86.0(與 SWAG PT + 1k FT 相比,結果相同但解析度低得多,遠超 SEER FT)
- 添加了模型名稱棄用 + 重對映功能(這是將 0.8.x 從預釋出版中推出的一個里程碑)。正在新增對映…
- 小錯誤修復和改進。
2023 年 2 月 26 日
- 新增 ConvNeXt-XXLarge CLIP 預訓練影像塔權重用於微調和特徵提取(微調待定)—— 參見 模型卡
- 更新 `convnext_xxlarge` 預設 LayerNorm eps 為 1e-5(用於 CLIP 權重,提高穩定性)
- 0.8.15dev0
2023 年 2 月 20 日
- 為特徵提取和微調新增 320x320
convnext_large_mlp.clip_laion2b_ft_320
和convnext_large_mlp.clip_laion2b_ft_soup_320
CLIP 影像塔權重 - 釋出 0.8.13dev0 pypi 版本,包含遷移至 huggingface 組織的最新更改
2023 年 2 月 16 日
- 新增
safetensor
檢查點支援 - 新增來自“Scaling Vision Transformers to 22 B. Params”論文(https://arxiv.org/abs/2302.05442)的思路 — qk norm、RmsNorm、並行塊
- 為
vit_*
、vit_relpos_*
、coatnet
/maxxvit
(首批)新增 F.scaled_dot_product_attention 支援(僅限 PyTorch 2.0) - 新增 Lion 最佳化器(帶有多張量選項)(https://arxiv.org/abs/2302.06675)
- 梯度檢查點現在可與
features_only=True
配合使用
2023 年 2 月 7 日
- 在 results 資料夾中添加了新的推理基準測試資料。
- 新增 convnext LAION CLIP 訓練權重和初始的 in1k 微調集
convnext_base.clip_laion2b_augreg_ft_in1k
- 在 256x256 解析度下達到 86.2%convnext_base.clip_laiona_augreg_ft_in1k_384
- 在 384x384 解析度下達到 86.5%convnext_large_mlp.clip_laion2b_augreg_ft_in1k
- 在 256x256 解析度下達到 87.3%convnext_large_mlp.clip_laion2b_augreg_ft_in1k_384
- 在 384x384 解析度下達到 87.9%
- 新增 DaViT 模型。支援
features_only=True
。由 Fredo 從 https://github.com/dingmyu/davit 改編。 - 在 MaxViT、ConvNeXt、DaViT 中使用通用的 NormMlpClassifierHead
- 新增 EfficientFormer-V2 模型,更新 EfficientFormer,並重構 LeViT(架構緊密相關)。權重發布在 HF hub 上。
- 新的 EfficientFormer-V2 架構,對原始版本(https://github.com/snap-research/EfficientFormer)進行了重大重構。支援
features_only=True
。 - 對 EfficientFormer 的小幅更新。
- 將 LeViT 模型重構為多階段結構,為新的
conv
變體新增features_only=True
支援,需要權重重對映。
- 新的 EfficientFormer-V2 架構,對原始版本(https://github.com/snap-research/EfficientFormer)進行了重大重構。支援
- 將 ImageNet 元資料(synsets, indices)從
/results
移動到timm/data/_info
。 - 新增 ImageNetInfo / DatasetInfo 類,為
timm
中各種 ImageNet 分類器佈局提供標籤。- 更新
inference.py
以使用新功能,嘗試:python inference.py --data-dir /folder/to/images --model convnext_small.in12k --label-type detail --topk 5
- 更新
- 準備 0.8.10 pypi 預釋出版(最終測試)。
2023 年 1 月 20 日
新增兩個 convnext 12k -> 1k 在 384x384 解析度下的微調模型
convnext_tiny.in12k_ft_in1k_384
- 85.1 @ 384convnext_small.in12k_ft_in1k_384
- 86.2 @ 384
將所有 MaxxViT 權重推送到 HF hub,併為
rw
base MaxViT 和 CoAtNet 1/2 模型新增新的 ImageNet-12k -> 1k 微調模型
模型 | top1 | top5 | 樣本/秒 | 引數 (M) | GMAC | 啟用值 (M) |
---|---|---|---|---|---|---|
maxvit_xlarge_tf_512.in21k_ft_in1k | 88.53 | 98.64 | 21.76 | 475.77 | 534.14 | 1413.22 |
maxvit_xlarge_tf_384.in21k_ft_in1k | 88.32 | 98.54 | 42.53 | 475.32 | 292.78 | 668.76 |
maxvit_base_tf_512.in21k_ft_in1k | 88.20 | 98.53 | 50.87 | 119.88 | 138.02 | 703.99 |
maxvit_large_tf_512.in21k_ft_in1k | 88.04 | 98.40 | 36.42 | 212.33 | 244.75 | 942.15 |
maxvit_large_tf_384.in21k_ft_in1k | 87.98 | 98.56 | 71.75 | 212.03 | 132.55 | 445.84 |
maxvit_base_tf_384.in21k_ft_in1k | 87.92 | 98.54 | 104.71 | 119.65 | 73.80 | 332.90 |
maxvit_rmlp_base_rw_384.sw_in12k_ft_in1k | 87.81 | 98.37 | 106.55 | 116.14 | 70.97 | 318.95 |
maxxvitv2_rmlp_base_rw_384.sw_in12k_ft_in1k | 87.47 | 98.37 | 149.49 | 116.09 | 72.98 | 213.74 |
coatnet_rmlp_2_rw_384.sw_in12k_ft_in1k | 87.39 | 98.31 | 160.80 | 73.88 | 47.69 | 209.43 |
maxvit_rmlp_base_rw_224.sw_in12k_ft_in1k | 86.89 | 98.02 | 375.86 | 116.14 | 23.15 | 92.64 |
maxxvitv2_rmlp_base_rw_224.sw_in12k_ft_in1k | 86.64 | 98.02 | 501.03 | 116.09 | 24.20 | 62.77 |
maxvit_base_tf_512.in1k | 86.60 | 97.92 | 50.75 | 119.88 | 138.02 | 703.99 |
coatnet_2_rw_224.sw_in12k_ft_in1k | 86.57 | 97.89 | 631.88 | 73.87 | 15.09 | 49.22 |
maxvit_large_tf_512.in1k | 86.52 | 97.88 | 36.04 | 212.33 | 244.75 | 942.15 |
coatnet_rmlp_2_rw_224.sw_in12k_ft_in1k | 86.49 | 97.90 | 620.58 | 73.88 | 15.18 | 54.78 |
maxvit_base_tf_384.in1k | 86.29 | 97.80 | 101.09 | 119.65 | 73.80 | 332.90 |
maxvit_large_tf_384.in1k | 86.23 | 97.69 | 70.56 | 212.03 | 132.55 | 445.84 |
maxvit_small_tf_512.in1k | 86.10 | 97.76 | 88.63 | 69.13 | 67.26 | 383.77 |
maxvit_tiny_tf_512.in1k | 85.67 | 97.58 | 144.25 | 31.05 | 33.49 | 257.59 |
maxvit_small_tf_384.in1k | 85.54 | 97.46 | 188.35 | 69.02 | 35.87 | 183.65 |
maxvit_tiny_tf_384.in1k | 85.11 | 97.38 | 293.46 | 30.98 | 17.53 | 123.42 |
maxvit_large_tf_224.in1k | 84.93 | 96.97 | 247.71 | 211.79 | 43.68 | 127.35 |
coatnet_rmlp_1_rw2_224.sw_in12k_ft_in1k | 84.90 | 96.96 | 1025.45 | 41.72 | 8.11 | 40.13 |
maxvit_base_tf_224.in1k | 84.85 | 96.99 | 358.25 | 119.47 | 24.04 | 95.01 |
maxxvit_rmlp_small_rw_256.sw_in1k | 84.63 | 97.06 | 575.53 | 66.01 | 14.67 | 58.38 |
coatnet_rmlp_2_rw_224.sw_in1k | 84.61 | 96.74 | 625.81 | 73.88 | 15.18 | 54.78 |
maxvit_rmlp_small_rw_224.sw_in1k | 84.49 | 96.76 | 693.82 | 64.90 | 10.75 | 49.30 |
maxvit_small_tf_224.in1k | 84.43 | 96.83 | 647.96 | 68.93 | 11.66 | 53.17 |
maxvit_rmlp_tiny_rw_256.sw_in1k | 84.23 | 96.78 | 807.21 | 29.15 | 6.77 | 46.92 |
coatnet_1_rw_224.sw_in1k | 83.62 | 96.38 | 989.59 | 41.72 | 8.04 | 34.60 |
maxvit_tiny_rw_224.sw_in1k | 83.50 | 96.50 | 1100.53 | 29.06 | 5.11 | 33.11 |
maxvit_tiny_tf_224.in1k | 83.41 | 96.59 | 1004.94 | 30.92 | 5.60 | 35.78 |
coatnet_rmlp_1_rw_224.sw_in1k | 83.36 | 96.45 | 1093.03 | 41.69 | 7.85 | 35.47 |
maxxvitv2_nano_rw_256.sw_in1k | 83.11 | 96.33 | 1276.88 | 23.70 | 6.26 | 23.05 |
maxxvit_rmlp_nano_rw_256.sw_in1k | 83.03 | 96.34 | 1341.24 | 16.78 | 4.37 | 26.05 |
maxvit_rmlp_nano_rw_256.sw_in1k | 82.96 | 96.26 | 1283.24 | 15.50 | 4.47 | 31.92 |
maxvit_nano_rw_256.sw_in1k | 82.93 | 96.23 | 1218.17 | 15.45 | 4.46 | 30.28 |
coatnet_bn_0_rw_224.sw_in1k | 82.39 | 96.19 | 1600.14 | 27.44 | 4.67 | 22.04 |
coatnet_0_rw_224.sw_in1k | 82.39 | 95.84 | 1831.21 | 27.44 | 4.43 | 18.73 |
coatnet_rmlp_nano_rw_224.sw_in1k | 82.05 | 95.87 | 2109.09 | 15.15 | 2.62 | 20.34 |
coatnext_nano_rw_224.sw_in1k | 81.95 | 95.92 | 2525.52 | 14.70 | 2.47 | 12.80 |
coatnet_nano_rw_224.sw_in1k | 81.70 | 95.64 | 2344.52 | 15.14 | 2.41 | 15.41 |
maxvit_rmlp_pico_rw_256.sw_in1k | 80.53 | 95.21 | 1594.71 | 7.52 | 1.85 | 24.86 |
2023 年 1 月 11 日
- 更新 ConvNeXt ImageNet-12k 預訓練系列,增加兩個新的微調權重(以及預微調的
.in12k
標籤)convnext_nano.in12k_ft_in1k
- 在 224 解析度下 82.3,在 288 解析度下 82.9(之前已釋出)convnext_tiny.in12k_ft_in1k
- 84.2 @ 224, 84.5 @ 288convnext_small.in12k_ft_in1k
- 85.2 @ 224, 85.3 @ 288
2023 年 1 月 6 日
- 終於為指令碼添加了
--model-kwargs
和--opt-kwargs
,以便從命令列直接向模型類傳遞不常用的引數train.py --data-dir /imagenet --model resnet50 --amp --model-kwargs output_stride=16 act_layer=silu
train.py --data-dir /imagenet --model vit_base_patch16_clip_224 --img-size 240 --amp --model-kwargs img_size=240 patch_size=12
- 清理了一些常用模型以更好地支援引數傳遞/與模型配置合併,更多工作待完成。
2023 年 1 月 5 日
- ConvNeXt-V2 模型和權重已新增到現有的
convnext.py
- 論文: ConvNeXt V2: Co-designing and Scaling ConvNets with Masked Autoencoders
- 參考實現: https://github.com/facebookresearch/ConvNeXt-V2 (注意: 權重目前為 CC-BY-NC 許可) @dataclass
2022 年 12 月 23 日 🎄☃
- 新增來自 https://github.com/google-research/big_vision 的 FlexiViT 模型和權重(請參閱論文 https://arxiv.org/abs/2212.08013)
- 注意:目前調整大小在模型建立時是靜態的,動態調整/訓練時 patch 大小取樣功能仍在開發中
- 更多模型已更新為多權重,並可透過 HF hub 下載(convnext, efficientnet, mobilenet, vision_transformer*, beit)
- 更多模型預訓練標籤和調整,一些模型名稱已更改(正在處理棄用翻譯,目前請將主分支視為 DEV 分支,使用 0.6.x 以獲得穩定版本)
- 更多 ImageNet-12k(22k 的子集)預訓練模型正在湧現
efficientnet_b5.in12k_ft_in1k
- 在 448x448 解析度下達到 85.9vit_medium_patch16_gap_384.in12k_ft_in1k
- 在 384x384 解析度下達到 85.5vit_medium_patch16_gap_256.in12k_ft_in1k
- 在 256x256 解析度下達到 84.5convnext_nano.in12k_ft_in1k
- 在 288x288 解析度下達到 82.9
2022 年 12 月 8 日
- 向
vision_transformer.py
新增 ‘EVA l’,MAE 風格的 ViT-L/14 MIM 預訓練,使用 EVA-CLIP 目標,在 ImageNet-1k 上進行微調(部分模型在 ImageNet-22k 上進行中間微調)
模型 | top1 | 引數數量 | gmac | macts | hub |
---|---|---|---|---|---|
eva_large_patch14_336.in22k_ft_in22k_in1k | 89.2 | 304.5 | 191.1 | 270.2 | 連結 |
eva_large_patch14_336.in22k_ft_in1k | 88.7 | 304.5 | 191.1 | 270.2 | 連結 |
eva_large_patch14_196.in22k_ft_in22k_in1k | 88.6 | 304.1 | 61.6 | 63.5 | 連結 |
eva_large_patch14_196.in22k_ft_in1k | 87.9 | 304.1 | 61.6 | 63.5 | 連結 |
2022 年 12 月 6 日
- 向
beit.py
新增 ‘EVA g’,BEiT 風格的 ViT-g/14 模型權重,包含 MIM 預訓練和 CLIP 預訓練兩種。
模型 | top1 | 引數數量 | gmac | macts | hub |
---|---|---|---|---|---|
eva_giant_patch14_560.m30m_ft_in22k_in1k | 89.8 | 1014.4 | 1906.8 | 2577.2 | 連結 |
eva_giant_patch14_336.m30m_ft_in22k_in1k | 89.6 | 1013 | 620.6 | 550.7 | 連結 |
eva_giant_patch14_336.clip_ft_in1k | 89.4 | 1013 | 620.6 | 550.7 | 連結 |
eva_giant_patch14_224.clip_ft_in1k | 89.1 | 1012.6 | 267.2 | 192.6 | 連結 |
2022 年 12 月 5 日
- 預釋出(
0.8.0dev0
)多權重支援(model_arch.pretrained_tag
)。使用pip install --pre timm
進行安裝- vision_transformer、maxvit、convnext 是首批支援該功能的模型實現
- 模型名稱將隨之改變(之前的 _21k 等函式將合併),仍在解決棄用處理問題
- 可能存在 bug,但我需要反饋,所以請試用一下
- 如果需要穩定性,請使用 0.6.x pypi 版本或從 0.6.x 分支 克隆
- 在 train/validate/inference/benchmark 中添加了對 PyTorch 2.0 compile 的支援,使用
--torchcompile
引數 - 推理指令碼允許對輸出進行更多控制,可為 top-class 索引 + 機率選擇 k,並輸出為 json、csv 或 parquet 格式
- 添加了來自 LAION-2B 和原始 OpenAI CLIP 模型的全套微調 CLIP 影像塔權重
模型 | top1 | 引數數量 | gmac | macts | hub |
---|---|---|---|---|---|
vit_huge_patch14_clip_336.laion2b_ft_in12k_in1k | 88.6 | 632.5 | 391 | 407.5 | 連結 |
vit_large_patch14_clip_336.openai_ft_in12k_in1k | 88.3 | 304.5 | 191.1 | 270.2 | 連結 |
vit_huge_patch14_clip_224.laion2b_ft_in12k_in1k | 88.2 | 632 | 167.4 | 139.4 | 連結 |
vit_large_patch14_clip_336.laion2b_ft_in12k_in1k | 88.2 | 304.5 | 191.1 | 270.2 | 連結 |
vit_large_patch14_clip_224.openai_ft_in12k_in1k | 88.2 | 304.2 | 81.1 | 88.8 | 連結 |
vit_large_patch14_clip_224.laion2b_ft_in12k_in1k | 87.9 | 304.2 | 81.1 | 88.8 | 連結 |
vit_large_patch14_clip_224.openai_ft_in1k | 87.9 | 304.2 | 81.1 | 88.8 | 連結 |
vit_large_patch14_clip_336.laion2b_ft_in1k | 87.9 | 304.5 | 191.1 | 270.2 | 連結 |
vit_huge_patch14_clip_224.laion2b_ft_in1k | 87.6 | 632 | 167.4 | 139.4 | 連結 |
vit_large_patch14_clip_224.laion2b_ft_in1k | 87.3 | 304.2 | 81.1 | 88.8 | 連結 |
vit_base_patch16_clip_384.laion2b_ft_in12k_in1k | 87.2 | 86.9 | 55.5 | 101.6 | 連結 |
vit_base_patch16_clip_384.openai_ft_in12k_in1k | 87 | 86.9 | 55.5 | 101.6 | 連結 |
vit_base_patch16_clip_384.laion2b_ft_in1k | 86.6 | 86.9 | 55.5 | 101.6 | 連結 |
vit_base_patch16_clip_384.openai_ft_in1k | 86.2 | 86.9 | 55.5 | 101.6 | 連結 |
vit_base_patch16_clip_224.laion2b_ft_in12k_in1k | 86.2 | 86.6 | 17.6 | 23.9 | 連結 |
vit_base_patch16_clip_224.openai_ft_in12k_in1k | 85.9 | 86.6 | 17.6 | 23.9 | 連結 |
vit_base_patch32_clip_448.laion2b_ft_in12k_in1k | 85.8 | 88.3 | 17.9 | 23.9 | 連結 |
vit_base_patch16_clip_224.laion2b_ft_in1k | 85.5 | 86.6 | 17.6 | 23.9 | 連結 |
vit_base_patch32_clip_384.laion2b_ft_in12k_in1k | 85.4 | 88.3 | 13.1 | 16.5 | 連結 |
vit_base_patch16_clip_224.openai_ft_in1k | 85.3 | 86.6 | 17.6 | 23.9 | 連結 |
vit_base_patch32_clip_384.openai_ft_in12k_in1k | 85.2 | 88.3 | 13.1 | 16.5 | 連結 |
vit_base_patch32_clip_224.laion2b_ft_in12k_in1k | 83.3 | 88.2 | 4.4 | 5 | 連結 |
vit_base_patch32_clip_224.laion2b_ft_in1k | 82.6 | 88.2 | 4.4 | 5 | 連結 |
vit_base_patch32_clip_224.openai_ft_in1k | 81.9 | 88.2 | 4.4 | 5 | 連結 |
- 從官方實現 https://github.com/google-research/maxvit 移植的 MaxViT Tensorflow 權重
- 對於上取樣的 384/512 in21k 微調權重,效能下降幅度超出預期,可能缺少細節,但 21k FT 似乎對小的預處理很敏感
模型 | top1 | 引數數量 | gmac | macts | hub |
---|---|---|---|---|---|
maxvit_xlarge_tf_512.in21k_ft_in1k | 88.5 | 475.8 | 534.1 | 1413.2 | 連結 |
maxvit_xlarge_tf_384.in21k_ft_in1k | 88.3 | 475.3 | 292.8 | 668.8 | 連結 |
maxvit_base_tf_512.in21k_ft_in1k | 88.2 | 119.9 | 138 | 704 | 連結 |
maxvit_large_tf_512.in21k_ft_in1k | 88 | 212.3 | 244.8 | 942.2 | 連結 |
maxvit_large_tf_384.in21k_ft_in1k | 88 | 212 | 132.6 | 445.8 | 連結 |
maxvit_base_tf_384.in21k_ft_in1k | 87.9 | 119.6 | 73.8 | 332.9 | 連結 |
maxvit_base_tf_512.in1k | 86.6 | 119.9 | 138 | 704 | 連結 |
maxvit_large_tf_512.in1k | 86.5 | 212.3 | 244.8 | 942.2 | 連結 |
maxvit_base_tf_384.in1k | 86.3 | 119.6 | 73.8 | 332.9 | 連結 |
maxvit_large_tf_384.in1k | 86.2 | 212 | 132.6 | 445.8 | 連結 |
maxvit_small_tf_512.in1k | 86.1 | 69.1 | 67.3 | 383.8 | 連結 |
maxvit_tiny_tf_512.in1k | 85.7 | 31 | 33.5 | 257.6 | 連結 |
maxvit_small_tf_384.in1k | 85.5 | 69 | 35.9 | 183.6 | 連結 |
maxvit_tiny_tf_384.in1k | 85.1 | 31 | 17.5 | 123.4 | 連結 |
maxvit_large_tf_224.in1k | 84.9 | 211.8 | 43.7 | 127.4 | 連結 |
maxvit_base_tf_224.in1k | 84.9 | 119.5 | 24 | 95 | 連結 |
maxvit_small_tf_224.in1k | 84.4 | 68.9 | 11.7 | 53.2 | 連結 |
maxvit_tiny_tf_224.in1k | 83.4 | 30.9 | 5.6 | 35.8 | 連結 |
2022 年 10 月 15 日
- 訓練和驗證指令碼增強
- 非 GPU(即 CPU)裝置支援
- 訓練指令碼的 SLURM 相容性
- HF 資料集支援(透過 ReaderHfds)
- TFDS/WDS 資料載入改進(修復了分散式使用的樣本填充/包裹,與樣本計數估計相關)
- 指令碼/載入器支援 in_chans !=3
- Adan 最佳化器
- 可透過引數啟用每步學習率排程
- 資料集‘parsers’重新命名為‘readers’,更具描述性
- AMP 引數更改,透過
--amp-impl apex
使用 APEX,透過--amp-dtype bfloat16
支援 bfloat16 - 主分支切換到 0.7.x 版本,0.6x 分支用於穩定釋出僅新增權重的版本
- master -> main 分支重新命名
2022 年 10 月 10 日
maxxvit
系列新增更多權重,包括首個基於 ConvNeXt 塊的coatnext
和maxxvit
實驗coatnext_nano_rw_224
- 82.0 @ 224 (G) — (使用 ConvNeXt 卷積塊,無 BatchNorm)maxxvit_rmlp_nano_rw_256
- 83.0 @ 256, 83.7 @ 320 (G) (使用 ConvNeXt 卷積塊,無 BN)maxvit_rmlp_small_rw_224
- 84.5 @ 224, 85.1 @ 320 (G)maxxvit_rmlp_small_rw_256
- 84.6 @ 256, 84.9 @ 288 (G) — 訓練可以更好,超引數需要調整 (使用 ConvNeXt 塊,無 BN)coatnet_rmlp_2_rw_224
- 84.6 @ 224, 85 @ 320 (T)- 注意:官方 MaxVit 權重 (in1k) 已在 https://github.com/google-research/maxvit 釋出 — 由於我的實現是獨立於他們的,並且存在一些微小差異,加上 TF 的 same padding 問題,需要一些額外的工作來移植和適配。
2022 年 9 月 23 日
- 支援 LAION-2B CLIP 影像塔作為預訓練骨幹網路用於微調或特徵提取(無分類器)
- vit_base_patch32_224_clip_laion2b
- vit_large_patch14_224_clip_laion2b
- vit_huge_patch14_224_clip_laion2b
- vit_giant_patch14_224_clip_laion2b
2022 年 9 月 7 日
- Hugging Face
timm
文件主頁現已上線,未來將在此釋出更多內容 - 新增來自 https://github.com/microsoft/unilm/tree/master/beit2 的 base 和 large 224x224 模型的 BEiT-v2 權重
- 在
maxxvit
系列中新增更多權重,包括一個pico
(7.5M 引數, 1.9 GMACs) 和兩個tiny
變體maxvit_rmlp_pico_rw_256
- 80.5 @ 256, 81.3 @ 320 (T)maxvit_tiny_rw_224
- 83.5 @ 224 (G)maxvit_rmlp_tiny_rw_256
- 84.2 @ 256, 84.8 @ 320 (T)
2022 年 8 月 29 日
- MaxVit 視窗大小預設隨 img_size 縮放。新增利用此特性的 RelPosMlp MaxViT 權重
maxvit_rmlp_nano_rw_256
- 83.0 @ 256, 83.6 @ 320 (T)
2022 年 8 月 26 日
- CoAtNet (https://arxiv.org/abs/2106.04803) 和 MaxVit (https://arxiv.org/abs/2204.01697)
timm
原創模型- 兩者均可在
maxxvit.py
模型定義中找到,包含許多超出原始論文範圍的實驗 - MaxVit 作者的一個未完成的 Tensorflow 版本可以在 https://github.com/google-research/maxvit 找到
- 兩者均可在
- 初始 CoAtNet 和 MaxVit timm 預訓練權重(正在開發更多)
coatnet_nano_rw_224
- 81.7 @ 224 (T)coatnet_rmlp_nano_rw_224
- 82.0 @ 224, 82.8 @ 320 (T)coatnet_0_rw_224
- 82.4 (T) — 注意 timm 的‘0’ coatnets 在第三階段多了 2 個塊coatnet_bn_0_rw_224
- 82.4 (T)maxvit_nano_rw_256
- 82.9 @ 256 (T)coatnet_rmlp_1_rw_224
- 83.4 @ 224, 84 @ 320 (T)coatnet_1_rw_224
- 83.6 @ 224 (G)- (T) = 使用
bits_and_tpu
分支訓練程式碼在 TPU 上訓練, (G) = 在 GPU 上訓練
- GCVit (權重改編自 https://github.com/NVlabs/GCVit,程式碼為 100%
timm
重寫,以符合許可要求) - MViT-V2 (多尺度 vit,改編自 https://github.com/facebookresearch/mvit)
- EfficientFormer (改編自 https://github.com/snap-research/EfficientFormer)
- PyramidVisionTransformer-V2 (改編自 https://github.com/whai362/PVT)
- 支援 LayerNorm 和 GroupNorm 的‘Fast Norm’,避免使用 AMP 時進行 float32 上轉換(如果可用,則使用 APEX LN 進一步提升效能)
2022 年 8 月 15 日
- 添加了 ConvNeXt atto 權重
convnext_atto
- 75.7 @ 224, 77.0 @ 288convnext_atto_ols
- 75.9 @ 224, 77.2 @ 288
2022 年 8 月 5 日
- 更多自定義的 ConvNeXt 小型模型定義及權重
convnext_femto
- 77.5 @ 224, 78.7 @ 288convnext_femto_ols
- 77.9 @ 224, 78.9 @ 288convnext_pico
- 79.5 @ 224, 80.4 @ 288convnext_pico_ols
- 79.5 @ 224, 80.5 @ 288convnext_nano_ols
- 80.9 @ 224, 81.6 @ 288
- 更新 EdgeNeXt 以改進 ONNX 匯出,新增新的 base 變體和來自原始倉庫(https://github.com/mmaaz60/EdgeNeXt)的權重
2022 年 7 月 28 日
- 新增新鮮出爐的 DeiT-III Medium (width=512, depth=12, num_heads=8) 模型權重。感謝 Hugo Touvron!
2022 年 7 月 27 日
- 所有執行時基準測試和驗證結果的 csv 檔案終於更新了!
- 添加了更多權重和模型定義
darknetaa53
- 79.8 @ 256, 80.5 @ 288convnext_nano
- 80.8 @ 224, 81.5 @ 288cs3sedarknet_l
- 81.2 @ 256, 81.8 @ 288cs3darknet_x
- 81.8 @ 256, 82.2 @ 288cs3sedarknet_x
- 82.2 @ 256, 82.7 @ 288cs3edgenet_x
- 82.2 @ 256, 82.7 @ 288cs3se_edgenet_x
- 82.8 @ 256, 83.5 @ 320
- 以上
cs3*
權重均在 TPU 上使用bits_and_tpu
分支訓練。感謝 TRC 專案! - 為 ConvNeXt 新增 output_stride=8 和 16 的支援(擴張卷積)
- 修復了 deit3 模型無法調整 pos_emb 大小的問題
- PyPi 0.6.7 版本釋出(包含自 0.6.5 以來的上述 bug 修復和新權重)
2022 年 7 月 8 日
更多模型,更多修復
- 添加了官方研究模型(帶權重)
- 來自 (https://github.com/mmaaz60/EdgeNeXt) 的 EdgeNeXt
- 來自 (https://github.com/apple/ml-cvnets) 的 MobileViT-V2
- 來自 (https://github.com/facebookresearch/deit) 的 DeiT III (ViT 的復仇)
- 我自己的模型
- 應要求添加了小型
ResNet
定義,包含基礎塊和瓶頸塊的 1 次重複(resnet10 和 resnet14) - 使用 dataclass 配置重構了
CspNet
,簡化了 CrossStage3 (cs3
) 選項。這些更接近 YOLO-v5+ 的骨幹網路定義。 - 更多相對位置 vit 實驗。訓練了兩個
srelpos
(共享相對位置) 模型,以及一個帶 class token 的 medium 模型。 - 為 EdgeNeXt 添加了備用下采樣模式,並訓練了一個
small
模型。比原始 small 模型好,但不如他們新訓練的 USI 權重。
- 應要求添加了小型
- 我自己的模型權重結果 (所有 ImageNet-1k 訓練)
resnet10t
- 66.5 @ 176, 68.3 @ 224resnet14t
- 71.3 @ 176, 72.3 @ 224resnetaa50
- 80.6 @ 224 , 81.6 @ 288darknet53
- 80.0 @ 256, 80.5 @ 288cs3darknet_m
- 77.0 @ 256, 77.6 @ 288cs3darknet_focus_m
- 76.7 @ 256, 77.3 @ 288cs3darknet_l
- 80.4 @ 256, 80.9 @ 288cs3darknet_focus_l
- 80.3 @ 256, 80.9 @ 288vit_srelpos_small_patch16_224
- 81.1 @ 224, 82.1 @ 320vit_srelpos_medium_patch16_224
- 82.3 @ 224, 83.1 @ 320vit_relpos_small_patch16_cls_224
- 82.6 @ 224, 83.6 @ 320edgnext_small_rw
- 79.6 @ 224, 80.4 @ 320
- 以上
cs3
、darknet
和vit_*relpos
權重均在 TPU 上訓練,感謝 TRC 專案!其餘在過熱的 GPU 上訓練。 - 已驗證 Hugging Face Hub 支援修復,演示 notebook 待定
- 預訓練權重/配置可從外部(如本地磁碟)載入,並支援頭部適配。
- 新增支援以更改
timm
資料集/讀取器掃描的影像副檔名。請參閱 (https://github.com/rwightman/pytorch-image-models/pull/1274#issuecomment-1178303103) - 預設 ConvNeXt LayerNorm 實現在所有情況下透過
LayerNorm2d
使用F.layer_norm(x.permute(0, 2, 3, 1), ...).permute(0, 3, 1, 2)
。- 在某些硬體(如 Ampere with CL)上比之前的自定義實現稍慢,但在更廣泛的硬體/PyTorch 版本範圍內的迴歸問題更少。
- 之前的實現作為
LayerNormExp2d
存在於models/layers/norm.py
- 大量 bug 修復
- 目前正在為即將釋出的 PyPi 0.6.x 版本進行測試
- LeViT 較大模型的預訓練仍在進行中,沒有蒸餾的情況下訓練效果不佳/不易。是時候(終於)新增蒸餾支援了?
- ImageNet-22k 權重訓練+微調正在進行中,多權重支援工作(緩慢地)推進中(權重太多了,唉)…
2022 年 5 月 13 日
- 從 (https://github.com/microsoft/Swin-Transformer) 添加了官方 Swin-V2 模型和權重。已清理以支援 torchscript。
- 對現有的
timm
Swin-V2-CR 實現進行了一些重構,可能會做更多工作以使其部分更接近官方版本,並決定是否合併某些方面。 - 更多 Vision Transformer 相對位置/殘差後歸一化實驗(全部在 TPU 上訓練,感謝 TRC 專案)
vit_relpos_small_patch16_224
- 81.5 @ 224, 82.5 @ 320 — 相對位置,層縮放,無類別標記,平均池化vit_relpos_medium_patch16_rpn_224
- 82.3 @ 224, 83.1 @ 320 — 相對位置 + 殘差後歸一化,無類別標記,平均池化vit_relpos_medium_patch16_224
- 82.5 @ 224, 83.3 @ 320 — 相對位置,層縮放,無類別標記,平均池化vit_relpos_base_patch16_gapcls_224
- 82.8 @ 224, 83.9 @ 320 — 相對位置,層縮放,有類別標記,平均池化(錯誤地)
- 恢復 512 維、8 頭‘medium’ ViT 模型變體(在 2020 年首次 ViT 實現中用於 DeiT ‘small’模型之前)
- 新增 ViT 相對位置支援,以便在現有實現和官方 Swin-V2 實現中的一些新增功能之間切換,以供未來試驗
- Sequencer2D 實現 (https://arxiv.org/abs/2205.01972),由作者 (https://github.com/okojoalg) 透過 PR 新增
2022 年 5 月 2 日
- Vision Transformer 實驗,新增相對位置(Swin-V2 對數座標)(
vision_transformer_relpos.py
)和殘差後歸一化分支(來自 Swin-V2)(vision_transformer*.py
)vit_relpos_base_patch32_plus_rpn_256
- 79.5 @ 256, 80.6 @ 320 — 相對位置 + 擴充套件寬度 + 殘差後歸一化,無類別標記,平均池化vit_relpos_base_patch16_224
- 82.5 @ 224, 83.6 @ 320 — 相對位置,層縮放,無類別標記,平均池化vit_base_patch16_rpn_224
- 82.3 @ 224 — 相對位置 + 殘差後歸一化,無類別標記,平均池化
- Vision Transformer 重構,移除了僅在初始 vit 中使用且在新預訓練(如
How to Train Your ViT
)中很少使用的表示層 vit_*
模型支援移除類別標記,使用全域性平均池化,使用 fc_norm(類似於 beit, mae)。
2022 年 4 月 22 日
timm
模型現在正式在 fast.ai 中得到支援!正好趕上新的實用深度學習課程。timmdocs
文件連結更新為 timm.fast.ai。- 在 TPU 訓練的 系列中添加了另外兩個模型權重。一些 In22k 預訓練仍在進行中。
seresnext101d_32x8d
- 83.69 @ 224, 84.35 @ 288seresnextaa101d_32x8d
(使用 AvgPool2d 進行抗鋸齒) - 83.85 @ 224, 84.57 @ 288
2022 年 3 月 23 日
- 向基礎 vit 模型新增
ParallelBlock
和LayerScale
選項,以支援 關於 ViT,每個人都應該知道的三件事 中的模型配置 convnext_tiny_hnf
(head norm first) 權重使用 (接近) A2 配方訓練,top-1 準確率 82.2%,增加訓練輪次可能會更好。
2022 年 3 月 21 日
- 合併
norm_norm_norm
。重要提示 此更新為即將釋出的 0.6.x 版本,可能會在一段時間內破壞主分支的穩定性。如果需要穩定性,可以使用0.5.x
分支或之前的 0.5.x 版本。 - 此 版本 中描述的重大權重更新(全部在 TPU 上訓練)
regnety_040
- 82.3 @ 224, 82.96 @ 288regnety_064
- 83.0 @ 224, 83.65 @ 288regnety_080
- 83.17 @ 224, 83.86 @ 288regnetv_040
- 82.44 @ 224, 83.18 @ 288 (timm pre-act)regnetv_064
- 83.1 @ 224, 83.71 @ 288 (timm pre-act)regnetz_040
- 83.67 @ 256, 84.25 @ 320regnetz_040h
- 83.77 @ 256, 84.5 @ 320 (頭部有額外的 fc)resnetv2_50d_gn
- 80.8 @ 224, 81.96 @ 288 (pre-act GroupNorm)resnetv2_50d_evos
80.77 @ 224, 82.04 @ 288 (pre-act EvoNormS)regnetz_c16_evos
- 81.9 @ 256, 82.64 @ 320 (EvoNormS)regnetz_d8_evos
- 83.42 @ 256, 84.04 @ 320 (EvoNormS)xception41p
- 82 @ 299 (timm pre-act)xception65
- 83.17 @ 299xception65p
- 83.14 @ 299 (timm pre-act)resnext101_64x4d
- 82.46 @ 224, 83.16 @ 288seresnext101_32x8d
- 83.57 @ 224, 84.270 @ 288resnetrs200
- 83.85 @ 256, 84.44 @ 320
- 修復了 HuggingFace hub 支援,併為允許預訓練模型定義和權重的替代‘配置源’(即將支援通用本地檔案/遠端 URL)奠定了初步基礎
- 添加了 SwinTransformer-V2 實現。由 Christoph Reich 提交。我正在進行的訓練實驗和模型更改可能會導致相容性問題。
- 從 https://github.com/microsoft/Cream/tree/main/AutoFormerV2 新增 Swin-S3 (AutoFormerV2) 模型/權重
- 從 https://github.com/apple/ml-cvnets 適配的 MobileViT 模型及權重
- 從 https://github.com/sail-sg/poolformer 適配的 PoolFormer 模型及權重
- 從 https://github.com/sail-sg/volo 適配的 VOLO 模型及權重
- 在實驗非 BatchNorm 歸一化層方面做了大量工作,如 EvoNorm、FilterResponseNorm、GroupNorm 等
- 為多個模型(尤其是 EfficientNet/MobileNetV3、RegNet 和對齊的 Xception)增強了對備用歸一化+啟用(‘NormAct’)層的支援
- 為 EfficientNet 系列添加了分組卷積支援
- 為所有模型添加了‘組匹配’ API,以允許對模型引數進行分組以應用‘分層’學習率衰減,向學習率排程器添加了 lr_scale
- 為許多模型添加了梯度檢查點支援
- 為所有模型添加了
forward_head(x, pre_logits=False)
函式,以允許單獨呼叫forward_features
+forward_head
- 所有 vision transformer 和 vision MLP 模型更新為從
forward_features
返回未池化/未選擇標記的特徵,以與 CNN 模型保持一致,標記選擇或池化現在在forward_head
中應用
2022 年 2 月 2 日
- Chris Hughes 昨天在他的部落格上釋出了一篇關於
timm
的詳盡介紹。非常值得一讀。 PyTorch Image Models (timm) 入門:實踐者指南 - 我目前正準備在下週左右將
norm_norm_norm
分支合併回 master (版本 0.6.x)。- 這次的更改比以往更廣泛,可能會破壞一些模型 API 的使用(目標是完全向後相容)。因此,請注意
pip install git+https://github.com/rwightman/pytorch-image-models
的安裝! 0.5.x
版本和0.5.x
分支將保持穩定,並在塵埃落定前進行一兩次 cherry-pick。如果需要穩定,建議暫時堅持使用 pypi 安裝。
- 這次的更改比以往更廣泛,可能會破壞一些模型 API 的使用(目標是完全向後相容)。因此,請注意
2022 年 1 月 14 日
- 版本 0.5.4 將推送到 pypi。距離上次 pypi 更新已經有一段時間了,風險較大的更改很快將合併到主分支…
- 新增來自官方實現的 ConvNeXT 模型/權重 (https://github.com/facebookresearch/ConvNeXt),進行了一些效能調整,與 timm 的功能相容
- 嘗試訓練了一些小型 (~1.8-3M 引數) / 移動端最佳化的模型,目前有幾個效果不錯,更多正在路上…
mnasnet_small
- 65.6 top-1mobilenetv2_050
- 65.9lcnet_100/075/050
- 72.1 / 68.8 / 63.1semnasnet_075
- 73fbnetv3_b/d/g
- 79.1 / 79.7 / 82.0
- 由 rsomani95 新增的 TinyNet 模型
- 透過 MobileNetV3 架構添加了 LCNet
2023 年 1 月 5 日
- ConvNeXt-V2 模型和權重已新增到現有的
convnext.py
- 論文: ConvNeXt V2: Co-designing and Scaling ConvNets with Masked Autoencoders
- 參考實現: https://github.com/facebookresearch/ConvNeXt-V2 (注意: 權重目前為 CC-BY-NC 許可)
2022 年 12 月 23 日 🎄☃
- 新增來自 https://github.com/google-research/big_vision 的 FlexiViT 模型和權重(請參閱論文 https://arxiv.org/abs/2212.08013)
- 注意:目前調整大小在模型建立時是靜態的,動態調整/訓練時 patch 大小取樣功能仍在開發中
- 更多模型已更新為多權重,並可透過 HF hub 下載(convnext, efficientnet, mobilenet, vision_transformer*, beit)
- 更多模型預訓練標籤和調整,一些模型名稱已更改(正在處理棄用翻譯,目前請將主分支視為 DEV 分支,使用 0.6.x 以獲得穩定版本)
- 更多 ImageNet-12k(22k 的子集)預訓練模型正在湧現
efficientnet_b5.in12k_ft_in1k
- 在 448x448 解析度下達到 85.9vit_medium_patch16_gap_384.in12k_ft_in1k
- 在 384x384 解析度下達到 85.5vit_medium_patch16_gap_256.in12k_ft_in1k
- 在 256x256 解析度下達到 84.5convnext_nano.in12k_ft_in1k
- 在 288x288 解析度下達到 82.9
2022 年 12 月 8 日
- 向
vision_transformer.py
新增 ‘EVA l’,MAE 風格的 ViT-L/14 MIM 預訓練,使用 EVA-CLIP 目標,在 ImageNet-1k 上進行微調(部分模型在 ImageNet-22k 上進行中間微調)
模型 | top1 | 引數數量 | gmac | macts | hub |
---|---|---|---|---|---|
eva_large_patch14_336.in22k_ft_in22k_in1k | 89.2 | 304.5 | 191.1 | 270.2 | 連結 |
eva_large_patch14_336.in22k_ft_in1k | 88.7 | 304.5 | 191.1 | 270.2 | 連結 |
eva_large_patch14_196.in22k_ft_in22k_in1k | 88.6 | 304.1 | 61.6 | 63.5 | 連結 |
eva_large_patch14_196.in22k_ft_in1k | 87.9 | 304.1 | 61.6 | 63.5 | 連結 |
2022 年 12 月 6 日
- 向
beit.py
新增 ‘EVA g’,BEiT 風格的 ViT-g/14 模型權重,包含 MIM 預訓練和 CLIP 預訓練兩種。
模型 | top1 | 引數數量 | gmac | macts | hub |
---|---|---|---|---|---|
eva_giant_patch14_560.m30m_ft_in22k_in1k | 89.8 | 1014.4 | 1906.8 | 2577.2 | 連結 |
eva_giant_patch14_336.m30m_ft_in22k_in1k | 89.6 | 1013 | 620.6 | 550.7 | 連結 |
eva_giant_patch14_336.clip_ft_in1k | 89.4 | 1013 | 620.6 | 550.7 | 連結 |
eva_giant_patch14_224.clip_ft_in1k | 89.1 | 1012.6 | 267.2 | 192.6 | 連結 |
2022 年 12 月 5 日
- 預釋出(
0.8.0dev0
)多權重支援(model_arch.pretrained_tag
)。使用pip install --pre timm
進行安裝- vision_transformer、maxvit、convnext 是首批支援該功能的模型實現
- 模型名稱將隨之改變(之前的 _21k 等函式將合併),仍在解決棄用處理問題
- 可能存在 bug,但我需要反饋,所以請試用一下
- 如果需要穩定性,請使用 0.6.x pypi 版本或從 0.6.x 分支 克隆
- 在 train/validate/inference/benchmark 中添加了對 PyTorch 2.0 compile 的支援,使用
--torchcompile
引數 - 推理指令碼允許對輸出進行更多控制,可為 top-class 索引 + 機率選擇 k,並輸出為 json、csv 或 parquet 格式
- 添加了來自 LAION-2B 和原始 OpenAI CLIP 模型的全套微調 CLIP 影像塔權重
模型 | top1 | 引數數量 | gmac | macts | hub |
---|---|---|---|---|---|
vit_huge_patch14_clip_336.laion2b_ft_in12k_in1k | 88.6 | 632.5 | 391 | 407.5 | 連結 |
vit_large_patch14_clip_336.openai_ft_in12k_in1k | 88.3 | 304.5 | 191.1 | 270.2 | 連結 |
vit_huge_patch14_clip_224.laion2b_ft_in12k_in1k | 88.2 | 632 | 167.4 | 139.4 | 連結 |
vit_large_patch14_clip_336.laion2b_ft_in12k_in1k | 88.2 | 304.5 | 191.1 | 270.2 | 連結 |
vit_large_patch14_clip_224.openai_ft_in12k_in1k | 88.2 | 304.2 | 81.1 | 88.8 | 連結 |
vit_large_patch14_clip_224.laion2b_ft_in12k_in1k | 87.9 | 304.2 | 81.1 | 88.8 | 連結 |
vit_large_patch14_clip_224.openai_ft_in1k | 87.9 | 304.2 | 81.1 | 88.8 | 連結 |
vit_large_patch14_clip_336.laion2b_ft_in1k | 87.9 | 304.5 | 191.1 | 270.2 | 連結 |
vit_huge_patch14_clip_224.laion2b_ft_in1k | 87.6 | 632 | 167.4 | 139.4 | 連結 |
vit_large_patch14_clip_224.laion2b_ft_in1k | 87.3 | 304.2 | 81.1 | 88.8 | 連結 |
vit_base_patch16_clip_384.laion2b_ft_in12k_in1k | 87.2 | 86.9 | 55.5 | 101.6 | 連結 |
vit_base_patch16_clip_384.openai_ft_in12k_in1k | 87 | 86.9 | 55.5 | 101.6 | 連結 |
vit_base_patch16_clip_384.laion2b_ft_in1k | 86.6 | 86.9 | 55.5 | 101.6 | 連結 |
vit_base_patch16_clip_384.openai_ft_in1k | 86.2 | 86.9 | 55.5 | 101.6 | 連結 |
vit_base_patch16_clip_224.laion2b_ft_in12k_in1k | 86.2 | 86.6 | 17.6 | 23.9 | 連結 |
vit_base_patch16_clip_224.openai_ft_in12k_in1k | 85.9 | 86.6 | 17.6 | 23.9 | 連結 |
vit_base_patch32_clip_448.laion2b_ft_in12k_in1k | 85.8 | 88.3 | 17.9 | 23.9 | 連結 |
vit_base_patch16_clip_224.laion2b_ft_in1k | 85.5 | 86.6 | 17.6 | 23.9 | 連結 |
vit_base_patch32_clip_384.laion2b_ft_in12k_in1k | 85.4 | 88.3 | 13.1 | 16.5 | 連結 |
vit_base_patch16_clip_224.openai_ft_in1k | 85.3 | 86.6 | 17.6 | 23.9 | 連結 |
vit_base_patch32_clip_384.openai_ft_in12k_in1k | 85.2 | 88.3 | 13.1 | 16.5 | 連結 |
vit_base_patch32_clip_224.laion2b_ft_in12k_in1k | 83.3 | 88.2 | 4.4 | 5 | 連結 |
vit_base_patch32_clip_224.laion2b_ft_in1k | 82.6 | 88.2 | 4.4 | 5 | 連結 |
vit_base_patch32_clip_224.openai_ft_in1k | 81.9 | 88.2 | 4.4 | 5 | 連結 |
- 從官方實現 https://github.com/google-research/maxvit 移植的 MaxViT Tensorflow 權重
- 對於上取樣的 384/512 in21k 微調權重,效能下降幅度超出預期,可能缺少細節,但 21k FT 似乎對小的預處理很敏感
模型 | top1 | 引數數量 | gmac | macts | hub |
---|---|---|---|---|---|
maxvit_xlarge_tf_512.in21k_ft_in1k | 88.5 | 475.8 | 534.1 | 1413.2 | 連結 |
maxvit_xlarge_tf_384.in21k_ft_in1k | 88.3 | 475.3 | 292.8 | 668.8 | 連結 |
maxvit_base_tf_512.in21k_ft_in1k | 88.2 | 119.9 | 138 | 704 | 連結 |
maxvit_large_tf_512.in21k_ft_in1k | 88 | 212.3 | 244.8 | 942.2 | 連結 |
maxvit_large_tf_384.in21k_ft_in1k | 88 | 212 | 132.6 | 445.8 | 連結 |
maxvit_base_tf_384.in21k_ft_in1k | 87.9 | 119.6 | 73.8 | 332.9 | 連結 |
maxvit_base_tf_512.in1k | 86.6 | 119.9 | 138 | 704 | 連結 |
maxvit_large_tf_512.in1k | 86.5 | 212.3 | 244.8 | 942.2 | 連結 |
maxvit_base_tf_384.in1k | 86.3 | 119.6 | 73.8 | 332.9 | 連結 |
maxvit_large_tf_384.in1k | 86.2 | 212 | 132.6 | 445.8 | 連結 |
maxvit_small_tf_512.in1k | 86.1 | 69.1 | 67.3 | 383.8 | 連結 |
maxvit_tiny_tf_512.in1k | 85.7 | 31 | 33.5 | 257.6 | 連結 |
maxvit_small_tf_384.in1k | 85.5 | 69 | 35.9 | 183.6 | 連結 |
maxvit_tiny_tf_384.in1k | 85.1 | 31 | 17.5 | 123.4 | 連結 |
maxvit_large_tf_224.in1k | 84.9 | 211.8 | 43.7 | 127.4 | 連結 |
maxvit_base_tf_224.in1k | 84.9 | 119.5 | 24 | 95 | 連結 |
maxvit_small_tf_224.in1k | 84.4 | 68.9 | 11.7 | 53.2 | 連結 |
maxvit_tiny_tf_224.in1k | 83.4 | 30.9 | 5.6 | 35.8 | 連結 |
2022 年 10 月 15 日
- 訓練和驗證指令碼增強
- 非 GPU(即 CPU)裝置支援
- 訓練指令碼的 SLURM 相容性
- HF 資料集支援(透過 ReaderHfds)
- TFDS/WDS 資料載入改進(修復了分散式使用的樣本填充/包裹,與樣本計數估計相關)
- 指令碼/載入器支援 in_chans !=3
- Adan 最佳化器
- 可透過引數啟用每步學習率排程
- 資料集‘parsers’重新命名為‘readers’,更具描述性
- AMP 引數更改,透過
--amp-impl apex
使用 APEX,透過--amp-dtype bfloat16
支援 bfloat16 - 主分支切換到 0.7.x 版本,0.6x 分支用於穩定釋出僅新增權重的版本
- master -> main 分支重新命名
2022 年 10 月 10 日
maxxvit
系列新增更多權重,包括首個基於 ConvNeXt 塊的coatnext
和maxxvit
實驗coatnext_nano_rw_224
- 82.0 @ 224 (G) — (使用 ConvNeXt 卷積塊,無 BatchNorm)maxxvit_rmlp_nano_rw_256
- 83.0 @ 256, 83.7 @ 320 (G) (使用 ConvNeXt 卷積塊,無 BN)maxvit_rmlp_small_rw_224
- 84.5 @ 224, 85.1 @ 320 (G)maxxvit_rmlp_small_rw_256
- 84.6 @ 256, 84.9 @ 288 (G) — 訓練可以更好,超引數需要調整 (使用 ConvNeXt 塊,無 BN)coatnet_rmlp_2_rw_224
- 84.6 @ 224, 85 @ 320 (T)- 注意:官方 MaxVit 權重 (in1k) 已在 https://github.com/google-research/maxvit 釋出 — 由於我的實現是獨立於他們的,並且存在一些微小差異,加上 TF 的 same padding 問題,需要一些額外的工作來移植和適配。
2022 年 9 月 23 日
- 支援 LAION-2B CLIP 影像塔作為預訓練骨幹網路用於微調或特徵提取(無分類器)
- vit_base_patch32_224_clip_laion2b
- vit_large_patch14_224_clip_laion2b
- vit_huge_patch14_224_clip_laion2b
- vit_giant_patch14_224_clip_laion2b
2022 年 9 月 7 日
- Hugging Face
timm
文件主頁現已上線,未來將在此釋出更多內容 - 新增來自 https://github.com/microsoft/unilm/tree/master/beit2 的 base 和 large 224x224 模型的 BEiT-v2 權重
- 在
maxxvit
系列中新增更多權重,包括一個pico
(7.5M 引數, 1.9 GMACs) 和兩個tiny
變體maxvit_rmlp_pico_rw_256
- 80.5 @ 256, 81.3 @ 320 (T)maxvit_tiny_rw_224
- 83.5 @ 224 (G)maxvit_rmlp_tiny_rw_256
- 84.2 @ 256, 84.8 @ 320 (T)
2022 年 8 月 29 日
- MaxVit 視窗大小預設隨 img_size 縮放。新增利用此特性的 RelPosMlp MaxViT 權重
maxvit_rmlp_nano_rw_256
- 83.0 @ 256, 83.6 @ 320 (T)
2022 年 8 月 26 日
- CoAtNet (https://arxiv.org/abs/2106.04803) 和 MaxVit (https://arxiv.org/abs/2204.01697)
timm
原創模型- 兩者均可在
maxxvit.py
模型定義中找到,包含許多超出原始論文範圍的實驗 - MaxVit 作者的一個未完成的 Tensorflow 版本可以在 https://github.com/google-research/maxvit 找到
- 兩者均可在
- 初始 CoAtNet 和 MaxVit timm 預訓練權重(正在開發更多)
coatnet_nano_rw_224
- 81.7 @ 224 (T)coatnet_rmlp_nano_rw_224
- 82.0 @ 224, 82.8 @ 320 (T)coatnet_0_rw_224
- 82.4 (T) — 注意 timm 的‘0’ coatnets 在第三階段多了 2 個塊coatnet_bn_0_rw_224
- 82.4 (T)maxvit_nano_rw_256
- 82.9 @ 256 (T)coatnet_rmlp_1_rw_224
- 83.4 @ 224, 84 @ 320 (T)coatnet_1_rw_224
- 83.6 @ 224 (G)- (T) = 使用
bits_and_tpu
分支訓練程式碼在 TPU 上訓練, (G) = 在 GPU 上訓練
- GCVit (權重改編自 https://github.com/NVlabs/GCVit,程式碼為 100%
timm
重寫,以符合許可要求) - MViT-V2 (多尺度 vit,改編自 https://github.com/facebookresearch/mvit)
- EfficientFormer (改編自 https://github.com/snap-research/EfficientFormer)
- PyramidVisionTransformer-V2 (改編自 https://github.com/whai362/PVT)
- 支援 LayerNorm 和 GroupNorm 的‘Fast Norm’,避免使用 AMP 時進行 float32 上轉換(如果可用,則使用 APEX LN 進一步提升效能)
2022 年 8 月 15 日
- 添加了 ConvNeXt atto 權重
convnext_atto
- 75.7 @ 224, 77.0 @ 288convnext_atto_ols
- 75.9 @ 224, 77.2 @ 288
2022 年 8 月 5 日
- 更多自定義的 ConvNeXt 小型模型定義及權重
convnext_femto
- 77.5 @ 224, 78.7 @ 288convnext_femto_ols
- 77.9 @ 224, 78.9 @ 288convnext_pico
- 79.5 @ 224, 80.4 @ 288convnext_pico_ols
- 79.5 @ 224, 80.5 @ 288convnext_nano_ols
- 80.9 @ 224, 81.6 @ 288
- 更新 EdgeNeXt 以改進 ONNX 匯出,新增新的 base 變體和來自原始倉庫(https://github.com/mmaaz60/EdgeNeXt)的權重
2022 年 7 月 28 日
- 新增新鮮出爐的 DeiT-III Medium (width=512, depth=12, num_heads=8) 模型權重。感謝 Hugo Touvron!
2022 年 7 月 27 日
- 所有執行時基準測試和驗證結果的 csv 檔案都已更新!
- 添加了更多權重和模型定義
darknetaa53
- 79.8 @ 256, 80.5 @ 288convnext_nano
- 80.8 @ 224, 81.5 @ 288cs3sedarknet_l
- 81.2 @ 256, 81.8 @ 288cs3darknet_x
- 81.8 @ 256, 82.2 @ 288cs3sedarknet_x
- 82.2 @ 256, 82.7 @ 288cs3edgenet_x
- 82.2 @ 256, 82.7 @ 288cs3se_edgenet_x
- 82.8 @ 256, 83.5 @ 320
- 以上
cs3*
權重均在 TPU 上使用bits_and_tpu
分支訓練。感謝 TRC 專案! - 為 ConvNeXt 新增 output_stride=8 和 16 的支援(擴張卷積)
- 修復了 deit3 模型無法調整 pos_emb 大小的問題
- PyPi 0.6.7 版本釋出(包含自 0.6.5 以來的上述 bug 修復和新權重)
2022 年 7 月 8 日
更多模型,更多修復
- 添加了官方研究模型(帶權重)
- 來自 (https://github.com/mmaaz60/EdgeNeXt) 的 EdgeNeXt
- 來自 (https://github.com/apple/ml-cvnets) 的 MobileViT-V2
- 來自 (https://github.com/facebookresearch/deit) 的 DeiT III (ViT 的復仇)
- 我自己的模型
- 應要求添加了小型
ResNet
定義,包含基礎塊和瓶頸塊的 1 次重複(resnet10 和 resnet14) - 使用 dataclass 配置重構了
CspNet
,簡化了 CrossStage3 (cs3
) 選項。這些更接近 YOLO-v5+ 的骨幹網路定義。 - 更多相對位置 vit 實驗。訓練了兩個
srelpos
(共享相對位置) 模型,以及一個帶 class token 的 medium 模型。 - 為 EdgeNeXt 添加了備用下采樣模式,並訓練了一個
small
模型。比原始 small 模型好,但不如他們新訓練的 USI 權重。
- 應要求添加了小型
- 我自己的模型權重結果 (所有 ImageNet-1k 訓練)
resnet10t
- 66.5 @ 176, 68.3 @ 224resnet14t
- 71.3 @ 176, 72.3 @ 224resnetaa50
- 80.6 @ 224 , 81.6 @ 288darknet53
- 80.0 @ 256, 80.5 @ 288cs3darknet_m
- 77.0 @ 256, 77.6 @ 288cs3darknet_focus_m
- 76.7 @ 256, 77.3 @ 288cs3darknet_l
- 80.4 @ 256, 80.9 @ 288cs3darknet_focus_l
- 80.3 @ 256, 80.9 @ 288vit_srelpos_small_patch16_224
- 81.1 @ 224, 82.1 @ 320vit_srelpos_medium_patch16_224
- 82.3 @ 224, 83.1 @ 320vit_relpos_small_patch16_cls_224
- 82.6 @ 224, 83.6 @ 320edgnext_small_rw
- 79.6 @ 224, 80.4 @ 320
- 以上
cs3
、darknet
和vit_*relpos
權重均在 TPU 上訓練,感謝 TRC 專案!其餘在過熱的 GPU 上訓練。 - 已驗證 Hugging Face Hub 支援修復,演示 notebook 待定
- 預訓練權重/配置可從外部(如本地磁碟)載入,並支援頭部適配。
- 新增支援以更改
timm
資料集/解析器掃描的影像副檔名。請參閱 (https://github.com/rwightman/pytorch-image-models/pull/1274#issuecomment-1178303103) - 預設 ConvNeXt LayerNorm 實現在所有情況下透過
LayerNorm2d
使用F.layer_norm(x.permute(0, 2, 3, 1), ...).permute(0, 3, 1, 2)
。- 在某些硬體(如 Ampere with CL)上比之前的自定義實現稍慢,但在更廣泛的硬體/PyTorch 版本範圍內的迴歸問題更少。
- 之前的實現作為
LayerNormExp2d
存在於models/layers/norm.py
- 大量 bug 修復
- 目前正在為即將釋出的 PyPi 0.6.x 版本進行測試
- LeViT 較大模型的預訓練仍在進行中,沒有蒸餾的情況下訓練效果不佳/不易。是時候(終於)新增蒸餾支援了?
- ImageNet-22k 權重訓練+微調正在進行中,多權重支援工作(緩慢地)推進中(權重太多了,唉)…
2022 年 5 月 13 日
- 從 (https://github.com/microsoft/Swin-Transformer) 添加了官方 Swin-V2 模型和權重。已清理以支援 torchscript。
- 對現有的
timm
Swin-V2-CR 實現進行了一些重構,可能會做更多工作以使其部分更接近官方版本,並決定是否合併某些方面。 - 更多 Vision Transformer 相對位置/殘差後歸一化實驗(全部在 TPU 上訓練,感謝 TRC 專案)
vit_relpos_small_patch16_224
- 81.5 @ 224, 82.5 @ 320 — 相對位置,層縮放,無類別標記,平均池化vit_relpos_medium_patch16_rpn_224
- 82.3 @ 224, 83.1 @ 320 — 相對位置 + 殘差後歸一化,無類別標記,平均池化vit_relpos_medium_patch16_224
- 82.5 @ 224, 83.3 @ 320 — 相對位置,層縮放,無類別標記,平均池化vit_relpos_base_patch16_gapcls_224
- 82.8 @ 224, 83.9 @ 320 — 相對位置,層縮放,有類別標記,平均池化(錯誤地)
- 恢復 512 維、8 頭‘medium’ ViT 模型變體(在 2020 年首次 ViT 實現中用於 DeiT ‘small’模型之前)
- 新增 ViT 相對位置支援,以便在現有實現和官方 Swin-V2 實現中的一些新增功能之間切換,以供未來試驗
- Sequencer2D 實現 (https://arxiv.org/abs/2205.01972),由作者 (https://github.com/okojoalg) 透過 PR 新增
2022 年 5 月 2 日
- Vision Transformer 實驗,新增相對位置(Swin-V2 對數座標)(
vision_transformer_relpos.py
)和殘差後歸一化分支(來自 Swin-V2)(vision_transformer*.py
)vit_relpos_base_patch32_plus_rpn_256
- 79.5 @ 256, 80.6 @ 320 — 相對位置 + 擴充套件寬度 + 殘差後歸一化,無類別標記,平均池化vit_relpos_base_patch16_224
- 82.5 @ 224, 83.6 @ 320 — 相對位置,層縮放,無類別標記,平均池化vit_base_patch16_rpn_224
- 82.3 @ 224 — 相對位置 + 殘差後歸一化,無類別標記,平均池化
- Vision Transformer 重構,移除了僅在初始 vit 中使用且在新預訓練(如
How to Train Your ViT
)中很少使用的表示層 vit_*
模型支援移除類別標記,使用全域性平均池化,使用 fc_norm(類似於 beit, mae)。
2022 年 4 月 22 日
timm
模型現在正式在 fast.ai 中得到支援!正好趕上新的實用深度學習課程。timmdocs
文件連結更新為 timm.fast.ai。- 在 TPU 訓練的 系列中添加了另外兩個模型權重。一些 In22k 預訓練仍在進行中。
seresnext101d_32x8d
- 83.69 @ 224, 84.35 @ 288seresnextaa101d_32x8d
(使用 AvgPool2d 進行抗鋸齒) - 83.85 @ 224, 84.57 @ 288
2022 年 3 月 23 日
- 向基礎 vit 模型新增
ParallelBlock
和LayerScale
選項,以支援 關於 ViT,每個人都應該知道的三件事 中的模型配置 convnext_tiny_hnf
(head norm first) 權重使用 (接近) A2 配方訓練,top-1 準確率 82.2%,增加訓練輪次可能會更好。
2022 年 3 月 21 日
- 合併
norm_norm_norm
。重要提示 此更新為即將釋出的 0.6.x 版本,可能會在一段時間內破壞主分支的穩定性。如果需要穩定性,可以使用0.5.x
分支或之前的 0.5.x 版本。 - 此 版本 中描述的重大權重更新(全部在 TPU 上訓練)
regnety_040
- 82.3 @ 224, 82.96 @ 288regnety_064
- 83.0 @ 224, 83.65 @ 288regnety_080
- 83.17 @ 224, 83.86 @ 288regnetv_040
- 82.44 @ 224, 83.18 @ 288 (timm pre-act)regnetv_064
- 83.1 @ 224, 83.71 @ 288 (timm pre-act)regnetz_040
- 83.67 @ 256, 84.25 @ 320regnetz_040h
- 83.77 @ 256, 84.5 @ 320 (頭部有額外的 fc)resnetv2_50d_gn
- 80.8 @ 224, 81.96 @ 288 (pre-act GroupNorm)resnetv2_50d_evos
80.77 @ 224, 82.04 @ 288 (pre-act EvoNormS)regnetz_c16_evos
- 81.9 @ 256, 82.64 @ 320 (EvoNormS)regnetz_d8_evos
- 83.42 @ 256, 84.04 @ 320 (EvoNormS)xception41p
- 82 @ 299 (timm pre-act)xception65
- 83.17 @ 299xception65p
- 83.14 @ 299 (timm pre-act)resnext101_64x4d
- 82.46 @ 224, 83.16 @ 288seresnext101_32x8d
- 83.57 @ 224, 84.270 @ 288resnetrs200
- 83.85 @ 256, 84.44 @ 320
- 修復了 HuggingFace hub 支援,併為允許預訓練模型定義和權重的替代‘配置源’(即將支援通用本地檔案/遠端 URL)奠定了初步基礎
- 添加了 SwinTransformer-V2 實現。由 Christoph Reich 提交。我正在進行的訓練實驗和模型更改可能會導致相容性問題。
- 從 https://github.com/microsoft/Cream/tree/main/AutoFormerV2 新增 Swin-S3 (AutoFormerV2) 模型/權重
- 從 https://github.com/apple/ml-cvnets 適配的 MobileViT 模型及權重
- 從 https://github.com/sail-sg/poolformer 適配的 PoolFormer 模型及權重
- 從 https://github.com/sail-sg/volo 適配的 VOLO 模型及權重
- 在實驗非 BatchNorm 歸一化層方面做了大量工作,如 EvoNorm、FilterResponseNorm、GroupNorm 等
- 為多個模型(尤其是 EfficientNet/MobileNetV3、RegNet 和對齊的 Xception)增強了對備用歸一化+啟用(‘NormAct’)層的支援
- 為 EfficientNet 系列添加了分組卷積支援
- 為所有模型添加了‘組匹配’ API,以允許對模型引數進行分組以應用‘分層’學習率衰減,向學習率排程器添加了 lr_scale
- 為許多模型添加了梯度檢查點支援
- 為所有模型添加了
forward_head(x, pre_logits=False)
函式,以允許單獨呼叫forward_features
+forward_head
- 所有 vision transformer 和 vision MLP 模型更新為從
forward_features
返回未池化/未選擇標記的特徵,以與 CNN 模型保持一致,標記選擇或池化現在在forward_head
中應用
2022 年 2 月 2 日
- Chris Hughes 昨天在他的部落格上釋出了一篇關於
timm
的詳盡介紹。非常值得一讀。 PyTorch Image Models (timm) 入門:實踐者指南 - 我目前正準備在下週左右將
norm_norm_norm
分支合併回 master (版本 0.6.x)。- 這次的更改比以往更廣泛,可能會破壞一些模型 API 的使用(目標是完全向後相容)。因此,請注意
pip install git+https://github.com/rwightman/pytorch-image-models
的安裝! 0.5.x
版本和0.5.x
分支將保持穩定,並在塵埃落定前進行一兩次 cherry-pick。如果需要穩定,建議暫時堅持使用 pypi 安裝。
- 這次的更改比以往更廣泛,可能會破壞一些模型 API 的使用(目標是完全向後相容)。因此,請注意
2022 年 1 月 14 日
- 版本 0.5.4 將推送到 pypi。距離上次 pypi 更新已經有一段時間了,風險較大的更改很快將合併到主分支…
- 新增來自官方實現的 ConvNeXT 模型/權重 (https://github.com/facebookresearch/ConvNeXt),進行了一些效能調整,與 timm 的功能相容
- 嘗試訓練了一些小型 (~1.8-3M 引數) / 移動端最佳化的模型,目前有幾個效果不錯,更多正在路上…
mnasnet_small
- 65.6 top-1mobilenetv2_050
- 65.9lcnet_100/075/050
- 72.1 / 68.8 / 63.1semnasnet_075
- 73fbnetv3_b/d/g
- 79.1 / 79.7 / 82.0
- 由 rsomani95 新增的 TinyNet 模型
- 透過 MobileNetV3 架構添加了 LCNet