什麼是新的
介紹
型號
特徵
結果
入門(文件)
訓練、驗證、推理腳本
很棒的 PyTorch 資源
許可證
引用
清理 torch amp 的使用以避免 cuda 特定的調用,合併對MengqingCao 的 Ascend (NPU) 設備的支持,這些設備現在應該可以在 PyTorch 2.5 中使用,並具有新的設備擴展自動加載功能。也在 Pytorch 2.5 中測試了 Intel Arc (XPU),它(大部分)有效。
修正了從已棄用的路徑timm.models.registry
導入時出現的錯誤,提高了現有棄用警告可見的優先級
InternViT-300M (https://huggingface.co/OpenGVLab/InternViT-300M-448px) 到timm
的連接埠權重為vit_intern300m_patch14_448
依請求新增的 18/18d/34/34d ResNet 模型定義的預啟動 (ResNetV2) 版本(權重待定)
版本1.0.10
新增了 MambaOut (https://github.com/yuweihao/MambaOut) 模型和權重。對不帶 SSM 的 SSM 視覺模型的大膽嘗試(本質上是帶有門控的 ConvNeXt)。原始權重+自訂變體和權重的組合。
模型 | 圖片大小 | 前1名 | 前5名 | 參數計數 |
---|---|---|---|---|
mambaout_base_plus_rw.sw_e150_r384_in12k_ft_in1k | 第384章 | 87.506 | 98.428 | 101.66 |
mambaout_base_plus_rw.sw_e150_in12k_ft_in1k | 288 | 86.912 | 98.236 | 101.66 |
mambaout_base_plus_rw.sw_e150_in12k_ft_in1k | 224 | 86.632 | 98.156 | 101.66 |
mambaout_base_tall_rw.sw_e500_in1k | 288 | 84.974 | 97.332 | 86.48 |
mambaout_base_wide_rw.sw_e500_in1k | 288 | 84.962 | 97.208 | 94.45 |
mambaout_base_short_rw.sw_e500_in1k | 288 | 84.832 | 97.27 | 88.83 |
mambaout_base.in1k | 288 | 84.72 | 96.93 | 84.81 |
mambaout_small_rw.sw_e450_in1k | 288 | 84.598 | 97.098 | 48.5 |
mambaout_small.in1k | 288 | 84.5 | 96.974 | 48.49 |
mambaout_base_wide_rw.sw_e500_in1k | 224 | 84.454 | 96.864 | 94.45 |
mambaout_base_tall_rw.sw_e500_in1k | 224 | 84.434 | 96.958 | 86.48 |
mambaout_base_short_rw.sw_e500_in1k | 224 | 84.362 | 96.952 | 88.83 |
mambaout_base.in1k | 224 | 84.168 | 96.68 | 84.81 |
mambaout_small.in1k | 224 | 84.086 | 96.63 | 48.49 |
mambaout_small_rw.sw_e450_in1k | 224 | 84.024 | 96.752 | 48.5 |
mambaout_tiny.in1k | 288 | 83.448 | 96.538 | 26.55 |
mambaout_tiny.in1k | 224 | 82.736 | 96.1 | 26.55 |
mambaout_kobe.in1k | 288 | 81.054 | 95.718 | 9.14 |
mambaout_kobe.in1k | 224 | 79.986 | 94.986 | 9.14 |
mambaout_femto.in1k | 288 | 79.848 | 95.14 | 7.3 |
mambaout_femto.in1k | 224 | 78.87 | 94.408 | 7.3 |
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 - 73.20 top-1 @ 224
convnext_zepto_rms.ra4_e3600_r224_in1k - 72.81 @ 224
增加一套微型測試模型,以改進單元測試和利基低資源應用程式 (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 - 65.81 top-1 @ 256, 64.76 @ 224
添加使用 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
更新了在 ImageNet-12k 上訓練並在 ImageNet-1k 上進行微調的 SBB ViT 模型,挑戰了相當多更大、更慢的模型
模型 | 前1名 | 前5名 | 參數計數 | 圖片大小 |
---|---|---|---|---|
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 |
MobileNet-V1 1.25、EfficientNet-B1 和 ResNet50-D 權重以及 MNV4 基線挑戰方案
模型 | 前1名 | 前5名 | 參數計數 | 圖片大小 |
---|---|---|---|---|
resnet50d.ra4_e3600_r224_in1k | 81.838 | 95.922 | 25.58 | 288 |
effectivenet_b1.ra4_e3600_r240_in1k | 81.440 | 95.700 | 7.79 | 288 |
resnet50d.ra4_e3600_r224_in1k | 80.952 | 95.384 | 25.58 | 224 |
effectivenet_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) 骨弓和負重支持
添加 Hiera Small 重量訓練 w/abswin pos 嵌入 in12k 並在 1k 上微調
模型 | 前1名 | 前5名 | 參數計數 |
---|---|---|---|
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 |
新增 RDNet(“DenseNets Reloaded”,https://arxiv.org/abs/2403.19588),感謝 Donghyun Kim
新增基於ra4
mnv4-small 配方的mobilenet_edgetpu_v2_m
權重。 80.1% top-1 @ 224 和 80.7 @ 256。
版本1.0.8
更多 MobileNet-v4 重量、帶有微調的 ImageNet-12k 預訓練以及抗鋸齒 ConvLarge 模型
模型 | 前1名 | 頂部1_錯誤 | 前5名 | 前5個錯誤 | 參數計數 | 圖片大小 |
---|---|---|---|---|---|---|
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)
模型 | 前1名 | 頂部1_錯誤 | 前5名 | 前5個錯誤 | 參數計數 | 圖片大小 |
---|---|---|---|---|---|---|
effectivenet_b0.ra4_e3600_r224_in1k | 79.364 | 20.636 | 94.754 | 5.246 | 5.29 | 256 |
effectivenet_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 |
set_input_size()
原型新增至 vit 和 swin v1/v2 模型中,以允許在模型建立後變更影像大小、補丁大小、視窗大小。
改進了 swin 對不同大小處理的支持,除了set_input_size
之外, always_partition
和strict_img_size
參數已添加到__init__
以允許更靈活的輸入大小限制
修復中間“Getter”功能包裝器的無序索引訊息,檢查或範圍索引。
添加幾個小於 0.5M 參數的tiny
模型用於測試,這些模型實際上是在 ImageNet-1k 上訓練的
模型 | 前1名 | 頂部1_錯誤 | 前5名 | 前5個錯誤 | 參數計數 | 圖片大小 | 作物百分比 |
---|---|---|---|---|---|---|---|
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 init,感謝 Promisery
其他雜項修復
另外 3 個具有不同 MQA 權重初始化方案的 MobileNetV4 混合權重
模型 | 前1名 | 頂部1_錯誤 | 前5名 | 前5個錯誤 | 參數計數 | 圖片大小 |
---|---|---|---|---|---|---|
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 重量加載
新增了 MobileNetV4 模型和初始timm
訓練權重集:
模型 | 前1名 | 頂部1_錯誤 | 前5名 | 前5個錯誤 | 參數計數 | 圖片大小 |
---|---|---|---|---|---|---|
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。
支援將 PaliGemma jax 權重載入到具有平均池化的 SigLIP ViT 模型中。
從 Meta (https://github.com/facebookresearch/hiera) 新增 Hiera 模型。
為 transorms 添加normalize=
標誌,返回帶有原始 dytpe 的非標準化 torch.Tensor (對於chug
)
1.0.3版本發布
Searching for Better ViT Baselines (For the GPU Poor)
已發布權重和 vit 變體。探索 Tiny 和 Base 之間的模型形狀。
模型 | 前1名 | 前5名 | 參數計數 | 圖片大小 |
---|---|---|---|---|
vit_mediumd_patch16_reg4_gap_256.sbb_in12k_ft_in1k | 86.202 | 97.874 | 64.11 | 256 |
vit_betwixt_patch16_reg4_gap_256.sbb_in12k_ft_in1k | 85.418 | 97.48 | 60.4 | 256 |
vit_mediumd_patch16_rope_reg1_gap_256.sbb_in1k | 84.322 | 96.812 | 63.95 | 256 |
vit_betwixt_patch16_rope_reg4_gap_256.sbb_in1k | 83.906 | 96.684 | 60.23 | 256 |
vit_base_patch16_rope_reg1_gap_256.sbb_in1k | 83.866 | 96.67 | 86.43 | 256 |
vit_medium_patch16_rope_reg1_gap_256.sbb_in1k | 83.81 | 96.824 | 38.74 | 256 |
vit_betwixt_patch16_reg4_gap_256.sbb_in1k | 83.706 | 96.616 | 60.4 | 256 |
vit_betwixt_patch16_reg1_gap_256.sbb_in1k | 83.628 | 96.544 | 60.4 | 256 |
vit_medium_patch16_reg4_gap_256.sbb_in1k | 83.47 | 96.622 | 38.88 | 256 |
vit_medium_patch16_reg1_gap_256.sbb_in1k | 83.462 | 96.548 | 38.88 | 256 |
vit_little_patch16_reg4_gap_256.sbb_in1k | 82.514 | 96.262 | 22.52 | 256 |
vit_wee_patch16_reg1_gap_256.sbb_in1k | 80.256 | 95.360 | 13.42 | 256 |
vit_pwee_patch16_reg1_gap_256.sbb_in1k | 80.072 | 95.136 | 15.25 | 256 |
vit_mediumd_patch16_reg4_gap_256.sbb_in12k | 不適用 | 不適用 | 64.11 | 256 |
vit_betwixt_patch16_reg4_gap_256.sbb_in12k | 不適用 | 不適用 | 60.4 | 256 |
新增了 AttentionExtract 助手,用於從timm
模型中提取注意力圖。請參閱 #1232 中的範例(評論)
forward_intermediates()
API 已改進並添加到更多模型中,包括一些具有其他提取方法的 ConvNet。
1047 個模型架構中有 1017 個支援features_only=True
特徵提取。可以支援其餘 34 種架構,但基於優先權請求。
刪除 torch.jit.script 帶註釋的函數,包括舊的 JIT 激活。使用發電機和發電機的衝突效果會更好。
為早該發布的 1.0 版本做準備,現在一切已經穩定了一段時間了。
有一段時間缺少的重要功能, features_only=True
支援具有平面隱藏狀態或非 std 模組佈局的 ViT 模型(到目前為止涵蓋'vit_*', 'twins_*', 'deit*', 'beit*', 'mvitv2*', 'eva*', 'samvit_*', 'flexivit*'
)
上述功能支援透過新的forward_intermediates()
API 實現,該API 可與功能包裝模組或直接使用。
模型 = timm.create_model('vit_base_patch16_224')final_feat, 中間體 = model.forward_intermediates(輸入) 輸出= model.forward_head(final_feat) # 池化+ 分類器headprint(final_feat.shape)torch.Size([2, 197, 768])for f in middles: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])
模型 = timm.create_model('eva02_base_patch16_clip_224', pretrained=True, img_size=512, features_only=True, out_indices=(-3, -2,))output = model(torch.randn(n.對於輸出中的o: print(o.shape) 火炬.Size([2, 768, 32, 32])火炬.Size([2, 768, 32, 32])
添加了 TinyCLIP 視覺塔重量,謝謝 Thien Tran
新增了 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 impl 以減少開銷
支援非 GPU 裝置的訓練腳本中的裝置參數
其他雜項修復和小補充
最低支援的 Python 版本增加至 3.8
版本 0.9.16
資料集和轉換重構
HuggingFace 流式(可迭代)資料集支援 ( --dataset hfids:org/dataset
)
Webdataset 包裝器調整以改善分割資訊獲取,可以從支援的 HF hub webdataset 自動取得分割
使用最近的timm
ImageNet 上傳到 https://huggingface.co/timm 測試了 HF datasets
和來自 HF 集線器的 Web 資料集包裝器流
使輸入和目標列/欄位鍵在資料集中保持一致並透過參數傳遞
使用 e:g: --input-size 1 224 224
或--in-chans 1
時完全支援單色,在資料集中適當設定 PIL 影像轉換
改進了幾個備用裁剪和調整大小變換(ResizeKeepRatio、RandomCropOrPad 等),用於 PixParse 文件 AI 項目
將 SimCLR 風格的顏色抖動問題以及灰階和高斯模糊選項新增至增強和參數中
允許在訓練腳本中不使用驗證集( --val-split ''
)進行訓練
加上--bce-sum
(類暗淡總和)和--bce-pos-weight
(正權重)參數進行訓練,因為它們是常見的 BCE 損失調整,我經常進行硬編碼
新增了 EfficientViT-Large 模型,感謝 SeeFun
修復 Python 3.7 相容性,很快就會放棄對其的支持
其他雜項修復
0.9.12 版
透過model_args
配置條目為基於 Hugging Face Hub 的 timm 模型增加了顯著的靈活性。 model_args
將在創建時作為 kwargs 傳遞給模型。
請參閱 https://huggingface.co/gaunernst/vit_base_patch16_1024_128.audiomae_as2m_ft_as20k/blob/main/config.json 的範例
用法:#2035
使用最新模型更新了 imagenet eval 和測試集 csv 文件
vision_transformer.py
打字和文檔清理,作者:Laureeta
0.9.11 發布
新增了 DFN(資料過濾網路)和 MetaCLIP ViT 權重
新增了 DINOv2「註冊」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 發布
vision_transformer.py
支援 SigLIP 影像塔權重。
微調和下游功能使用的巨大潛力。
根據 Vision Transformers 需要暫存器,在 vit 模型中提供實驗性「暫存器」支援
使用新的重量版本更新了 RepViT。感謝萬高
在 Swin 模型中新增補丁大小調整支援(在預訓練的重量負載上)
0.9.8 版本待定
TinyViT 由 SeeFun 添加
修復 EfficientViT (MIT) 以使用 torch.autocast,以便它可以恢復到 PT 1.10
0.9.7 發布
Py Torch Image Models ( timm
) 是圖像模型、層、實用程式、優化器、排程器、資料載入器/增強以及參考訓練/驗證腳本的集合,旨在將各種 SOTA 模型結合在一起重現ImageNet 訓練結果。
許多其他人的作品都在這裡。我試圖確保所有原始資料都透過 README、文件和程式碼文件字串中的 github、arxiv 論文等連結得到認可。如果我錯過了什麼,請告訴我。
所有模型架構系列都包含具有預訓練權重的變體。有一些特定的模型變體沒有任何權重,這不是一個錯誤。幫助訓練新的或更好的重量總是值得讚賞的。
聚合嵌套變壓器 - https://arxiv.org/abs/2105.12723
BEiT - https://arxiv.org/abs/2106.08254
大傳輸 ResNetV2 (BiT) - https://arxiv.org/abs/1912.11370
瓶頸變壓器 - https://arxiv.org/abs/2101.11605
CaiT(影像變換器中的類注意力)- https://arxiv.org/abs/2103.17239
CoaT(Co-Scale Conv-Attentional 影像轉換器)- https://arxiv.org/abs/2104.06399
CoAtNet(卷積與注意力)- https://arxiv.org/abs/2106.04803
ConvNeXt - https://arxiv.org/abs/2201.03545
ConvNeXt-V2 - http://arxiv.org/abs/2301.00808
ConViT(軟卷積感應偏壓視覺變壓器)- https://arxiv.org/abs/2103.10697
CspNet(跨階段部分網路)- https://arxiv.org/abs/1911.11929
DeiT - https://arxiv.org/abs/2012.12877
DeiT-III - https://arxiv.org/pdf/2204.07118.pdf
DenseNet - https://arxiv.org/abs/1608.06993
DLA - https://arxiv.org/abs/1707.06484
DPN(雙路徑網)- https://arxiv.org/abs/1707.01629
EdgeNeXt - https://arxiv.org/abs/2206.10589
EfficientFormer - https://arxiv.org/abs/2206.01191
EfficientNet(MBConvNet 系列)
EfficientNet NoisyStudent(B0-B7,L2)- https://arxiv.org/abs/1911.04252
EfficientNet AdvProp (B0-B8) - https://arxiv.org/abs/1911.09665
EfficientNet (B0-B7) - https://arxiv.org/abs/1905.11946
EfficientNet-EdgeTPU(小、中、大)- https://ai.googleblog.com/2019/08/efficientnet-edgetpu-creating.html
EfficientNet V2 - https://arxiv.org/abs/2104.00298
FBNet-C - https://arxiv.org/abs/1812.03443
MixNet - https://arxiv.org/abs/1907.09595
MNASNet B1、A1(擠壓-激發)和小型 - https://arxiv.org/abs/1807.11626
MobileNet-V2 - https://arxiv.org/abs/1801.04381
單路徑 NAS - https://arxiv.org/abs/1904.02877
TinyNet - https://arxiv.org/abs/2010.14819
EfficientViT(麻省理工學院)- https://arxiv.org/abs/2205.14756
EfficientViT (MSRA) - https://arxiv.org/abs/2305.07027
EVA - https://arxiv.org/abs/2211.07636
EVA-02 - https://arxiv.org/abs/2303.11331
FastViT - https://arxiv.org/abs/2303.14189
FlexiViT - https://arxiv.org/abs/2212.08013
FocalNet(焦點調變網路)- https://arxiv.org/abs/2203.11926
GCViT(全域上下文視覺轉換器)- https://arxiv.org/abs/2206.09959
GhostNet - https://arxiv.org/abs/1911.11907
GhostNet-V2 - https://arxiv.org/abs/2211.12905
gMLP - https://arxiv.org/abs/2105.08050
GPU 高效率網路 - https://arxiv.org/abs/2006.14090
光環網 - https://arxiv.org/abs/2103.12731
HGNet / HGNet-V2 - 待定
HRNet - https://arxiv.org/abs/1908.07919
InceptionNeXt - https://arxiv.org/abs/2303.16900
Inception-V3 - https://arxiv.org/abs/1512.00567
Inception-ResNet-V2 和 Inception-V4 - https://arxiv.org/abs/1602.07261
Lambda 網路 - https://arxiv.org/abs/2102.08602
LeViT(ConvNet 服裝中的視覺變壓器)- https://arxiv.org/abs/2104.01136
MaxViT(多軸視覺變壓器)- https://arxiv.org/abs/2204.01697
MetaFormer(PoolFormer-v2、ConvFormer、CAFormer)- https://arxiv.org/abs/2210.13452
MLP-混合器 - https://arxiv.org/abs/2105.01601
MobileCLIP - https://arxiv.org/abs/2311.17049
MobileNet-V3(MBConvNet 帶高效率頭)- https://arxiv.org/abs/1905.02244
FBNet-V3 - https://arxiv.org/abs/2006.02049
HardCoRe-NAS - https://arxiv.org/abs/2102.11646
LCNet - https://arxiv.org/abs/2109.15099
MobileNetV4 - https://arxiv.org/abs/2404.10518
MobileOne - https://arxiv.org/abs/2206.04040
MobileViT - https://arxiv.org/abs/2110.02178
MobileViT-V2 - https://arxiv.org/abs/2206.02680
MViT-V2(改進的多尺度視覺變壓器)- https://arxiv.org/abs/2112.01526
NASNet-A - https://arxiv.org/abs/1707.07012
內斯特 - https://arxiv.org/abs/2105.12723
Next-ViT - https://arxiv.org/abs/2207.05501
NFNet-F - https://arxiv.org/abs/2102.06171
NF-RegNet / NF-ResNet - https://arxiv.org/abs/2101.08692
PNasNet - https://arxiv.org/abs/1712.00559
PoolFormer (MetaFormer) - https://arxiv.org/abs/2111.11418
基於池化的視覺轉換器 (PiT) - https://arxiv.org/abs/2103.16302
PVT-V2(改進的金字塔視覺變壓器)- https://arxiv.org/abs/2106.13797
RDNet(DenseNets 重載)- https://arxiv.org/abs/2403.19588
RegNet - https://arxiv.org/abs/2003.13678
RegNetZ - https://arxiv.org/abs/2103.06877
RepVGG - https://arxiv.org/abs/2101.03697
RepGhostNet - https://arxiv.org/abs/2211.06088
RepViT - https://arxiv.org/abs/2307.09283
ResMLP - https://arxiv.org/abs/2105.03404
ResNet/ResNeXt
ResNet (v1b/v1.5) - https://arxiv.org/abs/1512.03385
ResNeXt - https://arxiv.org/abs/1611.05431
「技巧袋」/Gluon C、D、E、S 變體 - https://arxiv.org/abs/1812.01187
弱監督 (WSL) Instagram 預訓練/ImageNet 調整 ResNeXt101 - https://arxiv.org/abs/1805.00932
半監督(SSL)/半弱監督(SWSL)ResNet/ResNeXts - https://arxiv.org/abs/1905.00546
ECA-Net (ECAResNet) - https://arxiv.org/abs/1910.03151v4
擠壓與激勵網絡 (SEResNet) - https://arxiv.org/abs/1709.01507
ResNet-RS - https://arxiv.org/abs/2103.07579
Res2Net - https://arxiv.org/abs/1904.01169
ResNeSt - https://arxiv.org/abs/2004.08955
ReXNet - https://arxiv.org/abs/2007.00992
SelecSLS - https://arxiv.org/abs/1907.00837
選擇性內核網路 - https://arxiv.org/abs/1903.06586
Sequencer2D - https://arxiv.org/abs/2205.01972
Swin S3 (AutoFormerV2) - https://arxiv.org/abs/2111.14725
Swin 變壓器 - https://arxiv.org/abs/2103.14030
Swin 變壓器 V2 - https://arxiv.org/abs/2111.09883
Transformer-iN-Transformer (TNT) - https://arxiv.org/abs/2103.00112
TResNet - https://arxiv.org/abs/2003.13630
雙胞胎(視覺變壓器中的空間注意力)- https://arxiv.org/pdf/2104.13840.pdf
Visformer - https://arxiv.org/abs/2104.12533
視覺變壓器 - https://arxiv.org/abs/2010.11929
維生素 - https://arxiv.org/abs/2404.02132
VOLO(視覺展望)- https://arxiv.org/abs/2106.13112
VovNet V2 與 V1 - https://arxiv.org/abs/1911.06667
Xception - https://arxiv.org/abs/1610.02357
Xception(修改對齊,Gluon)- https://arxiv.org/abs/1802.02611
Xception(修改對齊,TF)- https://arxiv.org/abs/1802.02611
XCiT(跨協方差影像轉換器)- https://arxiv.org/abs/2106.09681
包含可透過create_optimizer
/ create_optimizer_v2
工廠方法使用的優化器:
adabelief
改編自 https://github.com/juntang-zhuang/Adabelief-Optimizer 的 AdaBelief 實作 - https://arxiv.org/abs/2010.07468
adafactor
改編自 FAIRSeq impl - https://arxiv.org/abs/1804.04235
大衛塞繆爾的adahessian
- https://arxiv.org/abs/2006.00719
adamp
和sgdp
由 Naver ClovAI - https://arxiv.org/abs/2006.08217
adan
改編自 https://github.com/sail-sg/Adan 的 Adan 實作 - https://arxiv.org/abs/2208.06677
lamb
是 Lamb 和 LambC 的實現(帶有 trust-clipping),經過清理和修改以支援與 XLA 一起使用 - https://arxiv.org/abs/1904.00962
lars
的 LARS 和 LARC 實作(帶 trust-clipping) - https://arxiv.org/abs/1708.03888
lion
和 Lion 的實作改編自 https://github.com/google/automl/tree/master/lion - https://arxiv.org/abs/2302.06675
lookahead
改編自 Liam 的 impl - https://arxiv.org/abs/1907.08610
madgrad
- 以及 MADGRAD 的實現改編自 https://github.com/facebookresearch/madgrad - https://arxiv.org/abs/2101.11075
nadam
是 Adam 與 Nesterov 動量的實現
nadamw
是 AdamW(帶有解耦重量衰減的 Adam)與 Nesterov 動量的實現。基於 https://github.com/mlcommons/algorithmic-efficiency 的簡化實現
novograd
作者:Masashi Kimura - https://arxiv.org/abs/1905.11286
radam
作者:Liyuan Liu - https://arxiv.org/abs/1908.03265
rmsprop_tf
是我自己改編自 PyTorch RMSProp 的。再現改進的 Tensorflow RMSProp 行為
sgdw
和帶有解耦權重衰減的 SGD 實現
已安裝 NVIDIA Apex 的依名稱fused<name>
最佳化器
已安裝 BitsAndBytes 的按名稱的bits<name>
優化器
從準中隨機擦除 - https://arxiv.org/abs/1708.04896)
混合 - https://arxiv.org/abs/1710.09412
CutMix - https://arxiv.org/abs/1905.04899
AutoAugment (https://arxiv.org/abs/1805.09501) 和RandAugment (https://arxiv.org/abs/1909.13719) 在EfficientNet 訓練的impl 之後建模的ImageNet 配置(https://github.com/tensorflowub.com/tensorflowub.com/tensorflowub.com/tensorflowub.com/tensorflow /tpu/ blob/master/models/official/efficientnet/autoaugment.py)
AugMix w/ JSD 損失、JSD w/ clean + 增強混合支援也可與 AutoAugment 和 RandAugment 搭配使用 - https://arxiv.org/abs/1912.02781
SplitBachNorm - 允許在乾淨資料和增強(輔助批規範)資料之間分割批規範層
DropPath 又稱為「隨機深度」 - https://arxiv.org/abs/1603.09382
DropBlock - https://arxiv.org/abs/1810.12890
模糊池 - https://arxiv.org/abs/1904.11486
其中包括我在專案中經常使用的幾個(不太常見的)功能。他們的許多補充是我維護自己的模型集而不是透過 PIP 使用其他模型的原因:
所有型號都有一個通用的預設設定介面和API
存取/更改分類器 - get_classifier
和reset_classifier
僅對功能進行前向傳遞forward_features
(請參閱文件)
這些使得編寫適用於任何模型的一致網路包裝器變得容易
所有模型都支援透過create_model進行多尺度特徵圖提取(特徵金字塔)(參見文件)
create_model(name, features_only=True, out_indices=..., output_stride=...)
out_indices
建立參數指定要傳回哪些特徵映射,這些索引是基於 0,通常對應於C(i + 1)
特徵等級。
output_stride
建立參數透過使用擴張卷積來控製網路的輸出步幅。大多數網路預設步幅為 32。並非所有網路都支援此功能。
可以在模型建立後透過.feature_info
成員查詢特徵圖通道數、縮減等級(步幅)
所有模型均具有一致的預訓練重量加載器,必要時可調整最後的線性,並可根據需要從 3 通道輸入調整為 1 通道輸入
可在多種進程/GPU 模式下工作的高效能參考訓練、驗證和推理腳本:
NVIDIA DDP,每個進程一個 GPU,存在 APEX 的多個進程(AMP 混合精度可選)
PyTorch DistributedDataParallel w/ 多 GPU、單一進程(AMP 已停用,因為啟用時會崩潰)
PyTorch 帶單 GPU 單進程(AMP 可選)
動態全域池實現,允許在模型建立時從平均池、最大池、平均 + 最大或 concat([average, max]) 中進行選擇。預設情況下,所有全域池都是自適應平均,並且與預訓練權重相容。
「測試時間池」包裝器可以包裝任何包含的模型,並且通常可以提高使用大於訓練大小的輸入圖像進行推理的性能。我移植時的想法改編自原始 DPN 實現 (https://github.com/cypw/DPNs)
學習率調度器
AllenNLP 調度器
FAIRseq lr_scheduler
SGDR:熱重啟的隨機梯度下降 (https://arxiv.org/abs/1608.03983)
想法採納自
調度程序包括step
、 cosine
w/重啟、 tanh
w/重啟、 plateau
mrT23 的 Space-to-Depth (https://arxiv.org/abs/1801.04590)-原始論文?
自適應梯度裁剪(https://arxiv.org/abs/2102.06171,https://github.com/deepmind/deepmind-research/tree/master/nfnets)
通道和/或空間注意力模組的廣泛選擇:
瓶頸變壓器 - https://arxiv.org/abs/2101.11605
CBAM - https://arxiv.org/abs/1807.06521
有效擠壓激勵 (ESE) - https://arxiv.org/abs/1911.06667
高效率通道注意力(ECA) - https://arxiv.org/abs/1910.03151
聚集激發(GE)- https://arxiv.org/abs/1810.12348
全球背景(GC) - https://arxiv.org/abs/1904.11492
光環 - https://arxiv.org/abs/2103.12731
內捲 - https://arxiv.org/abs/2103.06255
Lambda 層 - https://arxiv.org/abs/2102.08602
非本地(NL)- https://arxiv.org/abs/1711.07971
擠壓與激勵 (SE) - https://arxiv.org/abs/1709.01507
選擇性內核 (SK) - (https://arxiv.org/abs/1903.06586
拆分(SPLAT)- https://arxiv.org/abs/2004.08955
移動視窗 (SWIN) - https://arxiv.org/abs/2103.14030
模型驗證結果可以在結果表中找到
官方文件可以在 https://huggingface.co/docs/hub/timm 找到。歡迎貢獻文件。
Chris Hughes 撰寫的 PyTorch 圖像模型入門 (timm):從業者指南是一篇內容廣泛的部落格文章,詳細介紹了timm
的許多方面。
timmdocs 是timm
的備用文件集。非常感謝 Aman Arora 為創建 timmdocs 所做的努力。
paperwithcode 是瀏覽timm
內模型的良好資源。
儲存庫的根資料夾包含參考訓練、驗證和推理腳本,這些腳本可與該儲存庫包含的模型和其他功能配合使用。它們只需稍加修改即可適用於其他資料集和用例。請參閱文件。
PyTorch 最大的資產之一是社區及其貢獻。下面列出了一些我最喜歡的資源,這些資源與這裡的模型和組件完美匹配。
Detectron2 - https://github.com/facebookresearch/detectron2
分割模型(語意) - https://github.com/qubvel/segmentation_models.pytorch
EfficientDet(Obj Det,即將語意化)- https://github.com/rwightman/efficientdet-pytorch
專輯 - https://github.com/albumentations-team/albumentations
科尼亞 - https://github.com/kornia/kornia
RepDistiller - https://github.com/HobbitLong/RepDistiller
torchdistill - https://github.com/yoshitomo-matsubara/torchdistill
PyTorch 度量學習 - https://github.com/KevinMusgrave/pytorch-metric-learning
fastai - https://github.com/fastai/fastai
此處的程式碼已獲得 Apache 2.0 授權。我已註意確保包含或改編的任何第三方程式碼具有相容(許可)許可證,例如 MIT、BSD 等。也就是說,您有責任確保遵守此處的許可證以及任何從屬許可證的條件。在適用的情況下,我在文檔字串中連結了各種組件的來源/參考。如果您認為我錯過了任何內容,請建立一個問題。
到目前為止,這裡提供的所有預訓練權重都是在 ImageNet 上進行預訓練的,其中少數進行了一些額外的預訓練(請參閱下面的額外註釋)。 ImageNet 的發布僅用於非商業研究目的 (https://image-net.org/download)。目前尚不清楚這對於使用該資料集中的預訓練權重有何影響。我使用 ImageNet 訓練的任何模型都是出於研究目的,並且應該假設原始資料集許可適用於權重。如果您打算在商業產品中使用預訓練權重,最好尋求法律建議。
這裡包含的幾個權重或參考是使用我無法存取的專有資料集進行預訓練的。其中包括 Facebook WSL、SSL、SWSL ResNe(Xt) 和 Google Noisy Student EfficientNet 模型。 Facebook 模型具有明確的非商業許可(CC-BY-NC 4.0、https://github.com/facebookresearch/semi-supervised-ImageNet1K-models、https://github.com/facebookresearch/WSL-Images) 。除了 Apache 2.0 授權(以及 ImageNet 問題)之外,Google 模型似乎沒有任何限制。無論哪種情況,如有任何問題,您都應該聯絡 Facebook 或 Google。
@misc{rw2019timm,作者= {Ross Wightman},標題= {PyTorch 圖像模型},年份= {2019},出版商= {GitHub},期刊= {GitHub 儲存庫},doi = {10.5281/zenodo.4414861} ,如何發布= {url{https://github.com/rwightman/pytorch-image-models}}}