新着情報
導入
モデル
特徴
結果
はじめに (ドキュメント)
トレーニング、検証、推論スクリプト
素晴らしい PyTorch リソース
ライセンス
引用
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) のウェイトをvit_intern300m_patch14_448としてtimmにポートします。
18/18d/34/34d ResNet モデル定義のアクティベーション前 (ResNetV2) バージョンがリクエストにより追加されました (重みは保留中)
リリース 1.0.10
MambaOut (https://github.com/yuweihao/MambaOut) モデルとウェイトを追加しました。 SSM を使用しない SSM ビジョン モデル (本質的にはゲート機能を備えた ConvNeXt) についての生意気な解釈です。オリジナルウェイト+カスタムバリエーション&ウェイトの組み合わせ。
| モデル | img_size | トップ1 | トップ5 | param_count |
|---|---|---|---|---|
| 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 トップ-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 の更新が保留中です。
2 つの ConvNeXt 'Zepto' モデルとウェイトを追加します (1 つはオーバーラップ ステム、もう 1 つはパッチ ステムあり)。以前の「Atto」よりも小さい、2.2M パラメータの RMSNorm を使用します。
convnext_zepto_rms_ols.ra4_e3600_r224_in1k - 73.20 トップ-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 トップ-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 | param_count | img_size |
|---|---|---|---|---|
| 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 の重み
| モデル | トップ1 | トップ5 | param_count | img_size |
|---|---|---|---|---|
| resnet50d.ra4_e3600_r224_in1k | 81.838 | 95.922 | 25.58 | 288 |
| 効率的なネット_b1.ra4_e3600_r240_in1k | 81.440 | 95.700 | 7.79 | 288 |
| resnet50d.ra4_e3600_r224_in1k | 80.952 | 95.384 | 25.58 | 224 |
| 効率的なネット_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) バックボーン アーチと重量負荷サポートを追加
in12k で abswin pos 埋め込みを使用してトレーニングし、1k で微調整した Hiera Small ウェイトを追加します
| モデル | トップ1 | トップ5 | param_count |
|---|---|---|---|
| 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重みを追加します。 224 回でトップ 1 率が 80.1%、256 回で 80.7%。
リリース 1.0.8
より多くの MobileNet-v4 重み、微調整付き ImageNet-12k 事前トレーニング、およびアンチエイリアス処理された ConvLarge モデル
| モデル | トップ1 | トップ1_エラー | トップ5 | トップ5_エラー | param_count | img_size |
|---|---|---|---|---|---|---|
| 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_エラー | param_count | img_size |
|---|---|---|---|---|---|---|
| 効率的なネット_b0.ra4_e3600_r224_in1k | 79.364 | 20.636 | 94.754 | 5.246 | 5.29 | 256 |
| 効率的なネット_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」機能ラッパー、チェックアウト、または同じ範囲のインデックスの順序が狂っているインデックス情報を修正しました。
実際に ImageNet-1k でトレーニングされたテスト用に、0.5M 未満のtinyパラメータ モデルをいくつか追加します。
| モデル | トップ1 | トップ1_エラー | トップ5 | トップ5_エラー | param_count | img_size | クロップ_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 トークンの初期化を修正しました。Promisery に感謝します
その他のその他の修正
異なる MQA 重み初期化スキームを備えたさらに 3 つの MobileNetV4 ハイブリッド重み
| モデル | トップ1 | トップ1_エラー | トップ5 | トップ5_エラー | param_count | img_size |
|---|---|---|---|---|---|---|
| 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_エラー | param_count | img_size |
|---|---|---|---|---|---|---|
| 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 経由)。 AttendancePool2d をリファクタリングします。
平均プーリングを使用した SigLIP ViT モデルへの PaliGemma jax 重みのロードをサポートします。
Meta (https://github.com/facebookresearch/hiera) から Hiera モデルを追加します。
transorms にnormalize=フラグを追加し、正規化されていない torch.Tensor を元の dytpe ( chug用) で返します。
バージョン1.0.3リリース
Searching for Better ViT Baselines (For the GPU Poor)重みと Vit バリアントがリリースされました。 Tiny と Base の間のモデル形状を探索します。
| モデル | トップ1 | トップ5 | param_count | img_size |
|---|---|---|---|---|
| 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 |
timmモデルからアテンション マップを抽出するためのアテンション抽出ヘルパーが追加されました。 #1232 (コメント) の例を参照してください。
forward_intermediates() API が改良され、他の抽出メソッドを持つ一部の ConvNet を含む、より多くのモデルに追加されました。
1047 モデル アーキテクチャのうち 1017 がfeatures_only=True特徴抽出をサポートしています。残りの 34 アーキテクチャはサポートできますが、優先順位の要求に基づいて異なります。
古い JIT アクティベーションを含む torch.jit.script アノテーション付き関数を削除します。ダイナモとの衝突、そしてダイナモは使用するとより良い仕事をします。
長い間待ち望まれていた 1.0 リリースに向けて準備を進めており、しばらくは安定しています。
しばらくの間欠落していた重要な機能、 features_only=Trueサポート (これまでのところ'vit_*', 'twins_*', 'deit*', 'beit*', 'mvitv2*', 'eva*', 'samvit_*', 'flexivit*' )
上記の機能サポートは、機能ラッピング モジュールまたはダイレクトで使用できる新しいforward_intermediates() API を通じて実現されます。
モデル = timm.create_model('vit_base_patch16_224')final_feat、中間体 = model.forward_intermediates(input)
出力 = model.forward_head(final_feat) # プーリング + 分類子 headprint(final_feat.shape)torch.Size([2, 197, 768]) for f in中間体: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(2, 3, 512, 512))出力の o の場合: print(o.shape)
torch.Size([2, 768, 32, 32])torch.Size([2, 768, 32, 32])TinyCLIP ビジョンタワーウェイトを追加、Thx 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 ハブ Webdataset から分割を自動取得できるようになりました。
https://huggingface.co/timm への最近のtimm ImageNet アップロードを使用した、HF ハブからの HF datasetsと webdataset ラッパー ストリーミングのテスト
入力とターゲットの列/フィールドのキーをデータセット間で一貫させ、引数を介して渡す
例: --input-size 1 224 224または--in-chans 1を使用する場合の完全なモノクロ サポート。データセット内で PIL 画像変換を適切に設定します。
PixParse ドキュメント AI プロジェクトで使用するために、いくつかの代替トリミングとサイズ変更変換 (ResizeKeepRatio、RandomCropOrPad など) を改善しました。
SimCLR スタイルのカラー ジッターの問題を、拡張と引数にグレースケールとガウスのぼかしオプションとともに追加します
トレイン スクリプトで検証セット ( --val-split '' ) なしでトレインを許可する
--bce-sum (クラス dim の合計) および--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の入力とドキュメントのクリーンアップ (Laureηt による)
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 リリース
SigLIP 画像タワーの重みは、 vision_transformer.pyでサポートされています。
微調整および下流の機能の使用に大きな可能性があります。
Vision Transformers Need Registers に従って、vit モデルでの実験的な「レジスタ」サポート
新しい重量リリースで RepViT を更新しました。ありがとうワンガオ
Swin モデルにパッチのサイズ変更サポート (事前トレーニングされた重量負荷で) を追加
0.9.8 リリース保留中
タイニーヴィット
EfficientViT (MIT) が torch.autocast を使用するように修正し、PT 1.10 に戻って動作するようにしました。
0.9.7 リリース
Py Torch Image Models ( timm ) は、画像モデル、レイヤー、ユーティリティ、オプティマイザー、スケジューラー、データローダー / 拡張、およびリファレンス トレーニング / 検証スクリプトのコレクションであり、さまざまな機能を備えたさまざまな SOTA モデルを統合することを目的としています。 ImageNet トレーニング結果を再現します。
他の多くの人の作品がここにあります。すべてのソース資料が、README、ドキュメント、およびコードの docstring 内の 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 (コスケール変換アテンション画像トランスフォーマー) - 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 (S、M、L) - 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 (Squeeze-Excite)、および Small - 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 (MIT) - 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
Halo Nets - https://arxiv.org/abs/2103.12731
HGNet / HGNet-V2 - 未定
HRNet - https://arxiv.org/abs/1908.07919
InceptionNeXt - https://arxiv.org/abs/2303.16900
インセプション 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
NesT - 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 (v1b/v1.5) - https://arxiv.org/abs/1512.03385
ResNeXt - https://arxiv.org/abs/1611.05431
「Bag of Tricks」 / グルーオン 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 Transformer 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 (Vision Outlooker) - 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 - https://arxiv.org/abs/2010.07468 から適応された AdaBelief の実装
FAIRSeq impl から適応したadafactor - https://arxiv.org/abs/1804.04235
adahessian by David Samuel - https://arxiv.org/abs/2006.00719
Naver ClovAI によるadampとsgdp - https://arxiv.org/abs/2006.08217
adan https://github.com/sail-sg/Adan - https://arxiv.org/abs/2208.06677 から適応された Adan の実装
lamb Lamb および LambC (トラストクリッピング付き) の実装がクリーンアップされ、XLA での使用をサポートするように変更されました - https://arxiv.org/abs/1904.00962
lars LARS および LARC の実装 (トラストクリッピングあり) - https://arxiv.org/abs/1708.03888
lionと https://github.com/google/automl/tree/master/lion から適応された Lion の実装 - https://arxiv.org/abs/2302.06675
Liam による impl から適応されたlookahead - https://arxiv.org/abs/1907.08610
madgrad - および https://github.com/facebookresearch/madgrad から適応された MADGRAD の実装 - https://arxiv.org/abs/2101.11075
nadamネステロフの勢いを伴うアダムの実装
nadamwネステロフの勢いを伴う AdamW (分離された重量減衰を伴う Adam) の実装です。 https://github.com/mlcommons/algorithmic-efficiency に基づく簡略化された実装
novograd木村雅史著 - https://arxiv.org/abs/1905.11286
radam by Liyuan Liu - https://arxiv.org/abs/1908.03265
rmsprop_tf PyTorch RMSProp を自分で改変したものです。大幅に改善された Tensorflow RMSProp 動作を再現します。
sgdwと重み減衰を分離した SGD の実装
NVIDIA Apex がインストールされている名前でfused<name>
BitsAndBytes がインストールされている名前によるbits<name>オプティマイザー
Zhun Zhong からのランダム消去 - https://arxiv.org/abs/1708.04896)
ミックスアップ - https://arxiv.org/abs/1710.09412
カットミックス - 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/tensorflow/tpu/) blob/master/models/official/efficientnet/autoaugment.py)
AugMix (JSD 損失あり)、JSD (クリーン + 拡張ミキシングサポート付き) は AutoAugment および RandAugment とも機能します - https://arxiv.org/abs/1912.02781
SplitBachNorm - クリーン データと拡張 (補助バッチ ノルム) データの間でバッチ ノルム レイヤーを分割できます。
DropPath 別名「確率的深さ」 - https://arxiv.org/abs/1603.09382
ドロップブロック - 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 モードで動作する高性能リファレンス トレーニング、検証、推論スクリプト:
プロセスごとに 1 つの GPU を備えた NVIDIA DDP、APEX が存在する複数のプロセス (AMP 混合精度はオプション)
PyTorch DistributedDataParallel、マルチ GPU、単一プロセス (AMP を有効にするとクラッシュするため無効)
シングル GPU シングル プロセスを備えた PyTorch (AMP はオプション)
モデルの作成時に、平均プーリング、最大プーリング、平均 + 最大、または concat([平均, 最大]) から選択できる動的グローバル プールの実装。すべてのグローバル プーリングはデフォルトで適応平均であり、事前トレーニングされた重みと互換性があります。
「テスト タイム プール」ラッパーは、含まれているモデルのいずれかをラップでき、通常、トレーニング サイズより大きい入力画像を使用した推論のパフォーマンスが向上します。移植時に元の DPN 実装から適応したアイデア (https://github.com/cypw/DPNs)
学習率スケジューラー
AllenNLP スケジューラー
FAIRseq lr_scheduler
SGDR: ウォーム リスタートを使用した確率的勾配降下法 (https://arxiv.org/abs/1608.03983)
採用されたアイデア
スケジューラには、 step 、再起動付きcosine 、再起動付きtanh 、 plateauが含まれます
Space-to-Depth by mrT23 (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
ラムダ層 - 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 による『Getting Started with PyTorch Image Models (timm): A Practitioner's Guide』は、 timmの多くの側面を詳細にカバーする広範なブログ投稿です。
timmdocs は、 timmの代替ドキュメント セットです。 timmdoc の作成に尽力した Aman Arora に多大な感謝を申し上げます。
paperswithcode は、 timm内のモデルを参照するための優れたリソースです。
リポジトリのルート フォルダーには、このリポジトリに含まれるモデルやその他の機能を操作する参照トレイン、検証、推論スクリプトが含まれています。少しハッキングするだけで、他のデータセットやユースケースにも適応できます。ドキュメントを参照してください。
PyTorch の最大の資産の 1 つは、コミュニティとその貢献です。ここのモデルやコンポーネントとよく組み合わせられる私のお気に入りのリソースのいくつかを以下にリストします。
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
トーチディスティル - https://github.com/よしとも-matsubara/torchdistill
PyTorch メトリック学習 - https://github.com/KevinMusgrave/pytorch-metric-learning
fastai - https://github.com/fastai/fastai
ここのコードはライセンス付きの Apache 2.0 です。私は、サードパーティのコードが含まれているか適応されている場合、MIT、BSD などの互換性のある (寛容な) ライセンスを持っていることを確認するように注意してきました。GPL / LGPL の競合を避けるよう努めました。ただし、ここに記載されているライセンスおよび依存するライセンスの条件を確実に遵守するのはあなたの責任です。必要に応じて、docstring 内のさまざまなコンポーネントのソース/リファレンスをリンクしました。何かを見逃していると思われる場合は、問題を作成してください。
これまでのところ、ここで利用できる事前トレーニング済みの重みはすべて、追加の事前トレーニングが行われた厳選されたいくつかの重みとともに 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) 。 Google モデルには、Apache 2.0 ライセンス (および ImageNet に関する懸念) を超える制限はないようです。いずれの場合も、ご質問がある場合は Facebook または Google にお問い合わせください。
@misc{rw2019timm、著者 = {Ross Wightman}、タイトル = {PyTorch イメージ モデル}、年 = {2019}、発行者 = {GitHub}、ジャーナル = {GitHub リポジトリ}、doi = {10.5281/zenodo.4414861}、howpublished = {url{https://github.com/rwightman/pytorch-image-models}}}