timm documentation

変更履歴

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

変更履歴

2026年11月3日

  • reset_classifier() およびチェックポイントの再構築: ViT、EVA、BEiT、NaFlexViT、RepViT、iFormer 全体での修正 分類器またはプーリングを変更した後にモデルをエクスポート / 再読み込みする際、正規化の配置と蒸留設定を保持します。また、プーリングなしの PiT のエクスポートと、蒸留を無効にした EfficientFormerV2 も修正しました。
  • NaFlex: 変換時のViT / EVAのnorm配置を修正し、DINOv3 / LingbotチェックポイントのSwiGLUアライメントをサポート、データローダーでグレースケール / 非RGBの入力チャネルを保持するようにしました。
  • RepViT、HGNet、MViTv2、pre-norm ViT におけるレイヤーごとの LR 減衰のグループ化、および output_stride=8/16 を指定した InceptionNeXt の特徴量サイズを修正しました。
  • リリース 1.0.31。

2026年10月24日

  • forward_intermediates() および prune_intermediate_layers() は、すべてのモデルでサポートされるようになりました。CSPNet、NFNet、DLA、DenseNet(#2870、ghaith-mq 氏に感謝します)、CoaT、ConViT、ConvMixer、CrossViT、HRNet、Inception-v3、Inception-ResNet-v2、NASNet、PNASNet、SelecSLS、SENet、Sequencer2d、VGG、Visformer、Xception、Aligned Xception に新たに追加されました。また、NaFlexViT および MobileNetV5 のエンコーダーには prune_intermediate_layers() が追加されました。CoaT、ConViT、ConvMixer、CrossViT、Visformer には features_only のサポートが追加されました。
  • prune_intermediate_layers() 修正
    • prune_head=True を指定すると、ヘッド全体(head norm、pre-logits 層、attention pooling)が削除され、未使用のパラメータが残らないようになります(find_unused_parameters なしの DDP)。ただし、CoaT、CrossViT、HRNet については、並列スケール / ブランチの一部のみを選択した場合を除きます。ヘッドを保持する場合は prune_head=False を渡してください。
    • 階層型モデルを以前のステージにプルーニングすると、最終ステージ用にサイズ設定された最終ノルムとヘッドが削除され、forward_features()は保持された最後のフィーチャーで終了し、num_features / head_hidden_sizeがそれに一致します。ステムフィーチャーにプルーニングすると、その後のステムプーリングが削除されます。
    • 多くのモデルファミリーにおける、grad checkpointing、stop_early、クラストークン/ネットワーク後段の除去、およびプルーニング済みモデルやfeature_cls='getter'モデルの TorchScript 化に関する修正。
  • head_hidden_size は、すべてのモデルにおいて、実際の pre-logits(プーリング済み)幅です。これには、concat プーリング(catavgmax)および reset_classifier() 実行後の場合も含まれます。モデルが現在適用できないプーリングタイプは、以前のように無視されたり forward で失敗したりするのではなく、作成時またはリセット時に例外を発生させます。
  • その他の修正: VOLO の num_classes=0 出力はクラストークンの埋め込みになります(forward_head(pre_logits=True) と一致します)、vit_pe_core の reset_classifier() が map 以外のプーリングを使用するとアテンションプーリングが削除されます、save_for_hf によるプーリングタイプのエクスポートはヘッドの現在のプーリングを読み取ります、そしてヘッドレス(num_classes=0)の Swin、SwinV2、DaViT、NextViT のチェックポイントは正しく再読み込みされます。

2026年10月13日

  • 新しいsweep.pyによるハイパーパラメータスイープ: train.pyの任意の引数に対するグリッド/ランダムサーチ、ジョブごとに1つの有効な--config、ローカルGPUプールでの実行、および再開可能。WSDスイープでは、ハイパーパラメータの組み合わせごとに1つの安定したトランクを学習し、そのマイルストーンチェックポイントから独立したクールダウンを分岐させ、フルランのわずかなコストで複数の予算でのアニーリングを比較します。トレーニングのドキュメントを参照してください。
  • train.py: --resume auto は、実験自身の last.pth.tar からその場で再開します(チェックポイント履歴、model_best および summary.csv は一貫性を保ちます)。--stop-epoch N はスケジュールを変更せずに停止し、--save-epochs N [N ...] は milestone-N.pth.tar のスナップショットを保持します。また、YAML の --config の値は、スクリプトの引数に対して検証されます。
  • PlateauLRScheduler(--sched plateau)を非推奨とします。timm のスケジューラーはエポックまたは更新回数のステートレス関数であり、メトリクス駆動のプラトースケジュールはそれに適合せず、その状態はチェックポイント化されないため、レジュームは正確ではありませんでした。cosine または wsd を使用してください。
  • ドキュメント: 新しいModel APIページ、従来のモデル別ページに代わるすべてのモデルモジュール向けの生成されたモデルファミリーページ、および拡張されたデータ / ロス / モデルのリファレンスページ。
  • モデル API の一貫性に関する修正: reset_classifier() はすべてのモデルで現在のプーリングを保持し、不明なコンストラクタ引数はどこでも TypeError を発生させます。Swin 系の dynamic_img_size、LeViT のレイヤーごとの lr 減衰、どのパラメータにも一致しなかった no_weight_decay の名前 (NesT、SwinV2、XCiT、FocalNet)、すべての set_input_size 系でリサイズ状態が記録されるようになりました。
  • 修正内容: GCViTのグローバルクエリがバッチ内で画像を混在させる問題、RDNetおよびMobileNetV5の勾配チェックポイント、save_for_hfの古いテスト入力サイズ、EfficientViT (MSRA)の長方形リサイズ、ImageDatasetの画像変換エラー (#2846)。reparameterize_modelをtimm.modelsへ移動しました。

2026年10月9日

  • OpenMMLabから変換したImageNet-1k分類重み付きのCSPNeXt(RTMDetバックボーン)cspnext_{tiny,s,m,l,x}を追加しました。Munehiro Kobayashiさん、ありがとうございます。
  • オプティマイザーの改善
    • RMSpropTF、LaProp、LAMB、LARS、AdaBelief 用の Foreach (multi-tensor) 実装。Foreach ステップはデバイスの L2 キャッシュサイズでチャンク化されます (TIMM_FOREACH_CHUNK_SIZE で上書き可能)。
    • AdamWLegacy / NAdamW 用の RMS 更新クリッピング (clipping_threshold)、および新しいデカップル / 修正済みウェイトディケイの NovoGrad 変種 (novogradw、novogradc)。
    • 多数のオプティマイザーにおける正確性の修正。これには、インプレース更新されたテンソル lr を伴う重み減衰の修正、小さな lr での FP16 更新の停止、低精度状態の処理(Kron、AdaBelief、NovoGrad)、および p.grad のインプレース変更の廃止が含まれます。
    • Adopt、SGDW、AdafactorBV における torch.compile / CUDA グラフの修正。
    • 使用法、命名規則、およびファミリーを網羅した新しいオプティマイザーのドキュメント。
  • WSD(warmup-stable-decay)LRスケジューラー(--sched wsd、--lr-decay-fn、--lr-stable-timescale)を追加しました。
  • bfloat16 / float16 モデル向けの Model EMA の修正。ModelEmaV3 の bfloat16 EMA はデフォルトで確率的丸めを使用し、float16 モデルは float32 の EMA を保持します。
  • を介したモデルのリサイズ set_input_size()
    • ウィンドウ付きモデル(MaxViT、CoAtNet、BEiT、EfficientViT-MSRA、relpos ViT、Swinファミリー)へのサポートを拡大しました。
    • Swin / SwinV2 / SwinV2-CR は、リサイズ時に各ステージのウィンドウとグリッドの比率を維持します。現在のサイズでの呼び出しは、これ以降は何もしなくなります。ステージごとの window_size / window_ratio がサポートされました。Swin S3 および SwinV2 の window16 / window12 モデルにおいて、同じサイズでの呼び出し時に出力が変わる問題を修正しました。
    • ウィンドウサイズが1の場合、奇数のステージ特徴量サイズ、およびCUDA / 低精度でのハイブリッドViTのリサイズによるSwinV2のNaNを修正
  • train.py における --sched none、非正方形入力に対する評価時のセンタークロップ補間、grad accumulation の余り処理の修正 (#2821)、小規模データセットにおける分散サンプリング / 繰り返し拡張、事前学習ソースのオーバーライドと蒸留教師モデルのセットアップ。
  • PyTorch バージョン全体での ONNX エクスポート互換性の修正、dropout の一貫性の修正、およびその他の meta-device 初期化の修正。

2026年9月25日

  • マルチラベル分類のサポート
    • train.py / validate.py に --task multilabel を追加し、BCE(MultiLabelClassificationTask)で学習します。詳細はトレーニングのドキュメントを参照してください。
    • ターゲットは、クラスインデックスのリスト、dense な multi-hot ベクトル(--target-format multihot)、またはクラスごとに 1 つの binary フィールド(--target-key a,b,c)のいずれかであり、/ を用いてネストされたフィールドへのパスを指定できます。hfds、hfids、tfds(multi-field キー)、および wds リーダーでサポートされています。
    • Mixup / CutMix および NaFlex のローダーは、マルチラベルのターゲットをサポートしています。ラベルスムーthingは各ターゲットを0.5へ近づけ、マルチラベルの場合はデフォルトで0になります。
    • Validationでは、mAP(デフォルトの--eval-metric)に加えて、micro、macro、およびsample F1を報告します。F1の閾値は--multilabel-thresholdで設定されます。
    • 新しいデータセットレベルのevaluatorは、分散ランク全体にわたって検証セット全体でメトリクスを計算し、分散サンプラーのパディングを除外します。
    • timm multi-label image datasets の Hub 上のコレクションには、そのまま使えるサンプル / ベンチマークデータセットが掲載されています。
  • の新しい損失オプション --loss
    • Poly-1、Two-way、ZLPR、およびDistribution-Balanced損失。
    • class_weights.py で収集されたラベル数から計算される、BCE / ASL 用のクラス頻度重み付け。
    • ASLは現在fp16で安全に動作し、デフォルトのreductionはbatchmeanです
  • RoPE のリファクタリング 学習専用の RoPE 座標拡張(シフト、ジッター、リスケール)を、axial、mixed、および MRoPE 埋め込みに拡張し、DINOv3 とヘルパーを共有しながら、その既存の拡張挙動を維持します。Fourier / rotary ビルダー(build_fourier_pos_embed、build_rotary_pos_embed)および axial RoPE モジュールに grid_type と normalize_coords オプションを追加し、EVA では設定可能な MRoPE セクションをサポートします。タプル出力の RotaryEmbedding とベースファクトリーバリアントで rotate_half をサポートします。EVA、NaFlexViT、および MRoPE アテンションプーリングにおける回転レイアウトの転送を修正します。非学習型 RoPE の周波数および座標バッファを、half/bfloat16 モデルでは少なくとも float32 に保ち、autocast 下では混合 RoPE の位相を float32 で計算します。これらの精度修正により、低精度モデルの出力が変わる可能性があります。ピクセルグリッドおよび参照形状のリスケールにおけるバッチ処理された RoPE 埋め込みを修正します。DINOv3 の grid_indexing='xy' は、要求どおり座標チャネルをスワップするようになります。これら以前は不正確だった設定の出力が変わります。apply_rot_embed、apply_rot_embed_cat、および apply_rot_embed_list が各入力の dtype を返すようにし、sin/cos を最初にダウングレードせずに、回転後にキャストを行います。2 つの axial RoPE モジュールをプライベートベースの背後に統合します。既存の呼び出しは互換性を保ちますが、bands バッファはキャッシュモードと動的モードの両方で保持されるようになります(キャッシュモードでは rope.bands がもはや None ではありません)。
    • トレーニング専用のRoPE座標拡張(シフト、ジッター、リスケール)を、axial、mixed、MRoPE埋め込みに拡張し、DINOv3とヘルパーを共有しながら、その既存の拡張挙動を維持します。
    • Fourier / rotary ビルダー(build_fourier_pos_embed、build_rotary_pos_embed)および軸方向 RoPE モジュールに grid_type と normalize_coords オプションを追加し、EVA で設定可能な MRoPE セクションを実装します。
    • RotaryEmbedding のタプル出力およびbaseファクトリバリアントでrotate_halfをサポートします。
    • EVA、NaFlexViT、およびMRoPEアテンションプーリングにおける回転レイアウトのフォワーディングの修正。
    • 半精度/bfloat16モデルでは、学習されないRoPEの周波数バッファおよび座標バッファを少なくともfloat32で保持し、autocast下では混合RoPE位相をfloat32で計算してください。これらの精度の修正により、低精度モデルの出力が変更される可能性があります。
    • ピクセルグリッドおよび参照形状のリスケイリングにおけるバッチ化されたRoPE埋め込みを修正しました。DINOv3のgrid_indexing='xy'は、要求どおり座標チャネルをスワップするようになりました。これまでに誤っていたこれらの設定の出力は変更されます。
    • apply_rot_embed、apply_rot_embed_cat、apply_rot_embed_list が、sin/cos を先に下位キャストせずに回転後にキャストすることで、各入力の dtype を返すようにします。
    • 2つの軸方向RoPEモジュールをプライベートなベースクラスに統合しました。既存の呼び出しは引き続き互換性がありますが、bandsバッファはキャッシュモードおよび動的モードの両方で保持されるようになりました(キャッシュモードではrope.bandsはNoneではなくなります)。
  • LeViTおよび関連モデル(EfficentFormer*、EfficientViT-MSRA、TinyViT)における、キャッシュされたアテンションバイアス付きのTrain/evalモード切り替えとdtype変更の修正。

2026年9月22日

  • Qwen-Drive-1.0-4Bのビジョンタワーの重みを追加します。
  • プリフェッチローダーのストリーム再利用/同期と、正方形でない画像および単一バンド画像のAugMixを修正しました。
  • AdaMuonのconv LRスケーリング、AdafactorBigVisionのクリッピング、MARSの勾配履歴、およびKronのチェックポイント読み込みを修正しました。
  • 古いeval attention biasキャッシュ、プルーニング済みモデルのfeatureメタデータ、dilated max-poolのpadding、非対称lossのgradient modeを修正しました。
  • リリース 1.0.30

2026年9月10日〜11日

  • Qwen3-VL / Qwen3.5 / Qwen3.8 の ViT クラシファイアおよびエンコーダーのバリアントを追加します。ネイティブな空間マージャー付きおよび非付きのクラシファイアを含みます。
  • EVAおよびNaFlexViTのサポート付きでSapiens2 ViTを追加しました。両方のモデル追加には、ネイティブのtimm Hub重みが含まれます。Yonghye Kwonさん、ありがとうございます。
  • ネイティブのtimm Hub重みを備えたiFormerを追加しました。Ryan Houさん、ありがとうございます。
  • ネイティブのtimm Hub重みを備えたEfficientViMを追加しました。smellslikemlさん、ありがとうございます。
  • DeepSeek-V4 / V4.1 ViT分類器とエンコーダーを追加し、ネイティブのtimm Hub重みをサポートしました。Yonghye Kwon 氏、ご協力ありがとうございます。
  • デフォルトのNaFlex SigLIP位置補間、inference.pyの入力サイズ選択を切り替え、--model-kwargsの解析を改善します。
  • 一部のモデルにおけるmeta-device構築およびdevice/dtypeファクトリサポートを修正し、CIを高速化するためにconfigテストをmetaに移行、metaコンテキストのカバレッジを追加。

2026年8月27日

  • LowFormerモデルと重みを追加
  • エージェントによって発見された、実際に存在するが小規模または一般的に遭遇しない多数のバグを修正またはマージします
  • リリース 1.0.29

2026年8月11日

  • モデル定義と事前学習済み重みを追加:
  • 非NaFlex学習用のバッチごとの画像およびバッチサイズスケジューリングを追加します。段階的な小規模から大規模への解像度スケジューリングを含みます。
  • キーのみを扱うアテンションマスク、コンパイルに最適化されメモリ効率の高い位置サンプリング、およびキャッシュされた可変パッチ補間により、NaFlexViTを改善します。
  • モデルファクトリパスとチェックポイント処理を改善し、等トークン位置埋め込みの再サンプリングを修正しました。

2026年7月10日

  • オプティマイザーのtorch.compileおよびテンソル学習率のサポートを改善します。
  • NaFlexViTのpatch-layout(NaFlex-CLAP用)を拡張し、forward_intermediates(NaFlexのdict入力)のサポートを追加しました。
  • pickleの読み込みを強化し、カスタムラベルの推論を改善します。
  • リリース 1.0.28

2026年5月27日

  • EUPE ViT(DINOv3スタイル)およびConvNeXtモデルのモデル定義と事前学習済み重みを追加しました。Efficient Universal Perception Encoder論文を参照してください。
  • (DINOv2スタイル)ViT用のTIPSv2モデル定義と事前学習済み重みを追加しました。TIPSv2論文を参照してください。

2026年5月8日

  • リリース 1.0.27

2026年4月23日

  • Gemma4 ViTエンコーダーを追加し、NaFlexパイプラインのサポート(画像ごとに可変のアスペクト比/サイズ)を追加しました。Yonghye Kwon さん、ありがとうございます。
  • NaFlexVitでDINOv3の重みをサポート。貢献: Yonghye Kwon
  • Muonのフォールバック(AdamW/NadamW)のlr動作のいくつかの改善

2026年3月23日

  • pickle チェックポイント処理のセキュリティを強化します。読み込みのデフォルトをすべてweights_only=Trueにし、ArgParse 用に safe_global を追加します。
  • コアのViT/EVAモデルおよびレイヤーのattention mask処理を改善します。boolマスクを解決し、SSLタスクのためにis_causalを伝達します。
  • ViTでpos embedが有効化されていない場合の、Fix class & register token usesを修正しました。
  • ViTのプーリングオプションとして、Patch Representation Refinement (PRR)を追加しました。Sina (https://github.com/sinahmr) さん、ありがとうございます。
  • アテンションプーリング層の出力投影/MLPの次元の一貫性を向上させます。
  • HieraモデルのF.SDPA最適化により、Flash Attentionカーネルの使用を可能にしました。
  • SGDPオプティマイザーに注意を追加しました。
  • リリース 1.0.26。Hugging Face を退社して以降、最初のメンテナンスリリースです。

2026年2月23日

  • distillationタスクラッパーにトークン蒸留トレーニングのサポートを追加
  • 公式の非推奨化に備えて、一部のtorch.jitの使用を削除
  • AdamPオプティマイザーに注意を追加
  • reset_parameters() は、meta-device での初期化であっても呼び出してください。これにより、init_empty_weights のようなハックを用いてバッファが初期化されます。
  • Muonオプティマイザーを調整して、DTensor/FSDP2と動作するようにします(clamp_minの代わりにclampを使用し、DTensor用にNSブランチを交互に使用)
  • リリース 1.0.25

2026年1月21日

  • Compat Break: QKV と MLP のバイアスに関する見落としを修正 ParallelScalingBlock (& DiffParallelScalingBlock)
    • timmで学習済みのモデルには影響しませんが、下流での利用に影響する可能性があります。

2026年1月5日 & 6日

  • リリース 1.0.24
  • PyTorch 2.9.1 環境下で、RTX Pro 6000、5090、4090 カードを用いた全モデルの推論タイミングに関する新しいベンチマーク結果の CSV ファイルを追加
  • 非推奨の timm.models.layers インポートパスで、レガシーインポートに影響する移動済みモジュールのエラーを修正
  • リリース 1.0.23

2025年12月30日

2025年12月12日

  • CSATV2モデルを追加(https://github.com/gusdlf93に感謝)— DCT stemとspatial attentionを備えた軽量かつ高解像度のモデルです。https://huggingface.co/Hyunil/CSATv2
  • 既存のtimm Muon実装にAdaMuonとNAdaMuonオプティマイザーのサポートを追加しました。画像タスクにおいて、慣れ親しんだハイパーパラメータ設定でAdamWと比較してより競争力があることが示唆されています。
  • 年末のPR整理、長期間オープンになっていた複数のPRの各側面をマージ
  • ユニットテストのPyTorchバージョンを上位で2.9.1 + Python 3.13に引き上げ、下位は引き続きPyTorch 1.13 + Python 3.10に設定

2025年12月1日

  • 軽量なタスク抽象化を追加し、新しいタスクを通じて学習スクリプトにlogitsおよび特徴量蒸留のサポートを追加します。
  • 古いAPEX AMPのサポートを削除

2025年11月4日

  • 1.0.21 で導入された LayerScale / LayerScale2d の初期化バグ(初期化値が無視される問題)を修正しました。https://github.com/Ilya-Fradlin さん、ありがとうございます。
  • リリース 1.0.22

2025年10月31日 🎃

  • imagenetおよびOODバリアントの結果CSVファイルを更新し、いくつかの新しいモデルを含めること、および複数のtorchおよびtimmバージョンでの正確性を検証すること
  • AdamWとMuonのハイパーパラメータ探索の一環として、EfficientNet-XおよびEfficientNet-H B5のモデル重みが追加されました(Muonの実行は現在も継続中です)

2025年10月16日〜20日

  • Muon オプティマイザーの実装を追加( https://github.com/KellerJordan/Muon) をベースに、以下のカスタマイズを追加)
    • conv重みに対する追加の柔軟性と改善された処理、および直交化に適さない重み形状へのフォールバック
    • allocsを削減し、fused (b)add(b)mmオペレーションを使用することで、NS反復の速度をわずかに向上
    • デフォルトでは、muonがパラメータの形状に適していない場合(またはparam groupフラグで除外されている場合)、AdamW(nesterov=Trueの場合はNAdamW)の更新を使用します
    • torchの実装と同様に、adjust_lr_fnを介して複数のLRスケール調整関数から選択します
    • 複数のNS係数プリセットから選択するか、ns_coefficientsで独自の値を指定します
  • 「meta」デバイスでのモデル初期化の最初の2ステップに対応
    • metaデバイスコンテキスト下での作成を壊していた複数のオペレーションを修正
    • Add device & dtype factory kwarg support to all models and modules (anything inherting from nn.Module) in timm
  • コード内の事前学習済みcfgに追加されたライセンスフィールド
  • リリース 1.0.21

2025年9月21日

  • DINOv3 ViTの重みタグをlvd_1689m -> lvd1689mにリマップし、一致させる(sat_493m -> sat493mも同様)
  • リリース 1.0.20

2025年9月17日

2025年7月23日

  • OpenCLIP 3.0.0 が使用し、timm ベースのエンコーダーモデルのリサイズを可能にするため、EVA モデルに set_input_size() メソッドを追加しました。
  • OpenCLIP 3.0.0のPE-Core S & Tモデルに必要となるリリース1.0.18
  • Python 3.9 の互換性を壊していた小さな型付けの問題を修正しました。1.0.19 パッチリリース。

2025年7月21日

  • NaFlexViT に ROPE のサポートが追加されました。EVA ベース(eva.py)でカバーされているすべてのモデル、すなわち EVA、EVA02、Meta PE ViT、timm SBB ViT w/ ROPE、Naver ROPE-ViT は、モデル作成時に use_naflex=True を渡すことで、NaFlexViT で読み込むことができるようになりました。
  • Meta PE ViTエンコーダーが追加されました。small/tinyバリアント、tiling対応のlangバリアント、およびその他のspatialバリアントが含まれます。
  • NaFlexViTおよびEVAモデルでのPatchDropoutの修正(Naver ROPE-ViTの追加後に発生したリグレッション)
  • grid_indexing='xy' を使用して XY 順序を修正し、'xy' モードでの正方形でない画像の使用に起因する影響を修正しました(影響を受けるのは ROPE-ViT と PE のみ)。

2025年7月7日

  • Google Gemma 3n の動作改善のための MobileNet-v5 バックボーンの調整(更新された公式重みと組み合わせて使用)
    • stem バイアスを追加(更新された重みではゼロに設定、旧重みとの互換性が破綻)
    • GELU -> GELU (tanh 近似)。JAX に近づけるための軽微な変更
  • layer-decayのサポートに、最小スケールクランプと「最適化なし」スケールしきい値という2つの引数を追加
  • float32でのnormの計算を強制するために有効化できる‘Fp32’ LayerNorm、RMSNorm、SimpleNormのバリアントを追加
  • 上記で、norm、norm+actレイヤーの型付けと引数の整理が完了しました
  • eva.py に Naver ROPE-ViT(https://github.com/naver-ai/rope-vit)のサポートを追加し、混合モード用の RotaryEmbeddingMixed モジュールを追加、重みを HuggingFace Hub に公開
modelimg_sizetop1top5param_count
vit_large_patch16_rope_mixed_ape_224.naver_in1k22484.8497.122304.4
vit_large_patch16_rope_mixed_224.naver_in1k22484.82897.116304.2
vit_large_patch16_rope_ape_224.naver_in1k22484.6597.154304.37
vit_large_patch16_rope_224.naver_in1k22484.64897.122304.17
vit_base_patch16_rope_mixed_ape_224.naver_in1k22483.89496.75486.59
vit_base_patch16_rope_mixed_224.naver_in1k22483.80496.71286.44
vit_base_patch16_rope_ape_224.naver_in1k22483.78296.6186.59
vit_base_patch16_rope_224.naver_in1k22483.71896.67286.43
vit_small_patch16_rope_224.naver_in1k22481.2395.02221.98
vit_small_patch16_rope_mixed_224.naver_in1k22481.21695.02221.99
vit_small_patch16_rope_ape_224.naver_in1k22481.00495.01622.06
vit_small_patch16_rope_mixed_ape_224.naver_in1k22480.98694.97622.06
  • ROPEモジュール、ヘルパー、およびFXトレーシングのリーフ登録のいくつかの整理
  • バージョン 1.0.17 のリリース準備

2025年6月26日

  • Gemma 3nの画像エンコーダー用のMobileNetV5バックボーン(エンコーダーのみバリアント付き)
  • Version 1.0.16 がリリースされました

2025年6月23日

  • NaFlexViTに、F.grid_sampleに基づく2次元および分解された位置埋め込みのリサイズ機能を追加しました。異なるサイズが多数存在する場合に高速化されます(https://github.com/stas-slの例に基づく)。

  • https://github.com/stas-sl のスニペットに基づき、vmap を matmul に置き換えることで、パッチ埋め込みの再サンプリングをさらに高速化します。

  • テスト中に作成した3つの初期ネイティブアスペクトNaFlexViTチェックポイントを追加しました。ImageNet-1kおよび同じハイパーパラメータを持つ3つの異なるpos embed設定です。

    モデルTop-1 正解率Top-5 正解率パラメータ数 (M)評価シーケンス長
    naflexvit_base_patch16_par_gap.e300_s576_in1k83.6796.4586.63576
    naflexvit_base_patch16_parfac_gap.e300_s576_in1k83.6396.4186.46576
    naflexvit_base_patch16_gap.e300_s576_in1k83.5096.4686.63576
  • forward_intermediates に対する勾配チェックポイントのサポートを追加し、一部のチェックポイント関連のバグを修正しました。https://github.com/brianhou0208 ありがとうございます。

  • AdamW (legacy)、Adopt、Kron、Adafactor (BV)、Lamb、LaProp、Lion、NadamW、RmsPropTF、SGDWオプティマイザーに、https://arxiv.org/abs/2506.02285の「修正ウェイトディケイ」をオプションとして追加

  • PE(perception encoder)ViTモデルを、オンザフライでのリマッピングではなく、ネイティブのtimm重みを使用するように切り替えます

  • cudaストリームのバグをprefetchローダーで修正

2025年6月5日

  • NaFlexVit モデルの初期コード。NaFlexVit は、以下の機能を持つ Vision Transformer です:
    1. 単一のモジュールに埋め込みと位置エンコーディングをカプセル化
    2. nn.Linearパッチ埋め込みの、事前パッチ化済み(辞書形式)入力へのサポート
    3. NaFlexの可変アスペクト比、可変解像度へのサポート(SigLip-2: https://arxiv.org/abs/2502.14786)
    4. FlexiViTの可変パッチサイズへのサポート(https://arxiv.org/abs/2212.08013)
    5. NaViTの分数/因数分解位置埋め込みのサポート(https://arxiv.org/abs/2307.06304)
  • 既存の ViT モデルは vision_transformer.py に use_naflex=True フラグを追加することで、NaFlexVit モデルに読み込むことができます。 create_model
    • ネイティブの重みがまもなく登場
  • 可変のアスペクト比/サイズの画像でトレーニング/ファインチューニング/評価を行うことができる、完全な NaFlex データパイプラインが利用可能です。
    • train.pyとvalidate.pyで有効にするには、--naflex-loader引数を追加してください。NaFlexVitと併せて使用する必要があります。
  • NaFlexVit モデルに NaFlex データパイプラインで読み込まれた既存の(クラシックな)ViT を評価するには:
    • python validate.py /imagenet --amp -j 8 --model vit_base_patch16_224 --model-kwargs use_naflex=True --naflex-loader --naflex-max-seq-len 256
  • トレーニングには、いくつか注目すべき追加の引数機能があります。
    • --naflex-train-seq-lens' 引数は、学習中にバッチごとにランダムに選択するシーケンス長を指定します。
    • --naflex-max-seq-len 引数は、検証用のターゲットシーケンス長を設定します
    • --model-kwargs enable_patch_interpolator=True --naflex-patch-sizes 12 16 24 を追加すると、バッチごとのランダムなパッチサイズ選択と補間が有効になります。
    • --naflex-loss-scale 引数はバッチサイズに対するバッチごとのロススケーリングモードを変更し、timm の NaFlex 読み込みは各シーケンス長ごとにバッチサイズを変更します

2025年5月28日

2025年2月21日

  • SigLIP 2 ViT 画像エンコーダーが追加されました(https://huggingface.co/collections/timm/siglip-2-67b8e72ba08b09dd97aecaf9)
    • 可変解像度 / アスペクト比のNaFlexバージョンはWIPです
  • SBB レシピで学習した ‘SO150M2’ ViT 重みを追加しました。優れた結果であり、以前の試みよりも少ない学習で ImageNet においてより良い性能を発揮します。
    • vit_so150m2_patch16_reg1_gap_448.sbb_e200_in12k_ft_in1k - top-1 88.1%
    • vit_so150m2_patch16_reg1_gap_384.sbb_e200_in12k_ft_in1k - top-1 87.9%
    • vit_so150m2_patch16_reg1_gap_256.sbb_e200_in12k_ft_in1k - トップ1精度 87.3%
    • vit_so150m2_patch16_reg4_gap_256.sbb_e200_in12k
  • InternViT-300M ‘2.5’ の重みを更新
  • リリース 1.0.15

2025年2月1日

  • 参考情報として、PyTorch 2.6およびPython 3.13は、現在のmainおよびリリース済みのtimmバージョンでテスト済みであり、正常に動作しています。

2025年1月27日

2025年1月19日

  • LeViTのsafetensor重みの読み込みを修正し、無効化されるべき変換コードを削除
  • SBB レシピで学習した ‘SO150M’ ViT 重みを追加しました。そこそこの結果ですが、ImageNet-12k/1k の事前学習/ファインチューニングには最適な形状ではありません。
    • vit_so150m_patch16_reg4_gap_256.sbb_e250_in12k_ft_in1k - top-1 86.7%
    • vit_so150m_patch16_reg4_gap_384.sbb_e250_in12k_ft_in1k - top-1 87.4%
    • vit_so150m_patch16_reg4_gap_256.sbb_e250_in12k
  • その他、タイポなどの軽微な修正
  • LeViTの修正を反映するために1.0.14をリリース

2025年1月9日

  • 純粋なbfloat16またはfloat16での学習と検証をサポート
  • wandb プロジェクト名引数を https://github.com/caojiaolong が追加、名前に arg.experiment を使用
  • ハードリンクをサポートしないファイルシステム(FUSE fs マウントなど)でチェックポイントの保存が機能しないという古い問題を修正
  • 1.0.13リリース

2025年1月6日

  • TIMM_REENTRANT_CKPT=1 が環境変数に設定されていない限り、use_reentrant=False をデフォルトとする torch.utils.checkpoint.checkpoint() ラッパーを timm.models に追加します。

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 の PaliGemma2 エンコーダーを既存の PaliGemma に追加しました。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モデルは2つだけで、それらは更新済みです。
  • モデル作成時のcache_dir引数のオーバーライドを許可
  • HF datasets ラッパーに対してtrust_remote_codeをパススルーします
  • 作成者によって追加されたinception_next_attoモデル
  • Adanオプティマイザーに関する注意、およびLambのdecoupled weight decayオプション
  • https://github.com/brianhou0208 によって修正された一部の feature_info メタデータ
  • load time remapping を使用していたすべての OpenCLIP および JAX (CLIP、SigLIP、Pali など) のモデル重みには、hf-hub: ベースの読み込みで動作するように独自の HF Hub インスタンスが割り当てられたため、新しい Transformers の TimmWrapperModel でも動作します。

2024年11月28日

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)オプティマイザーを追加
  • Adafactorオプティマイザーの‘Big Vision’バリアントを追加(https://github.com/google-research/big_vision/blob/main/big_vision/optax.py)
  • Fix original Adafactor to pick better factorization dims for convolutions
  • torch.where の機能にいくつかの改善を加えた LAMB オプティマイザーを調整し、元のバージョンからの変更点として、クリッピングを少しリファクタリングしました
  • ViT、DeiT、EVAにおける動的な画像サイズサポートが改善され、正方形でないパッチグリッドからのリサイズに対応しました。https://github.com/wojtke

2024年10月31日

非常に高品質に学習された新しい ResNet & ResNet-V2 18/34 (basic block) の重みのセットを追加しました。詳細は 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モデル定義のPre-activation (ResNetV2) バージョン(重みは保留中)
  • リリース 1.0.10

2024年10月11日

  • MambaOut (https://github.com/yuweihao/MambaOut) モデルおよび重みが追加されました。SSM を使わない SSM ビジョンモデルのユーモラスなアプローチ(本質的にはゲーティング付き ConvNeXt)です。元の重みとカスタムの変種および重みの組み合わせです。
modelimg_sizetop1top5param_count
mambaout_base_plus_rw.sw_e150_r384_in12k_ft_in1k38487.50698.428101.66
mambaout_base_plus_rw.sw_e150_in12k_ft_in1k28886.91298.236101.66
mambaout_base_plus_rw.sw_e150_in12k_ft_in1k22486.63298.156101.66
mambaout_base_tall_rw.sw_e500_in1k28884.97497.33286.48
mambaout_base_wide_rw.sw_e500_in1k28884.96297.20894.45
mambaout_base_short_rw.sw_e500_in1k28884.83297.2788.83
mambaout_base.in1k28884.7296.9384.81
mambaout_small_rw.sw_e450_in1k28884.59897.09848.5
mambaout_small.in1k28884.596.97448.49
mambaout_base_wide_rw.sw_e500_in1k22484.45496.86494.45
mambaout_base_tall_rw.sw_e500_in1k22484.43496.95886.48
mambaout_base_short_rw.sw_e500_in1k22484.36296.95288.83
mambaout_base.in1k22484.16896.6884.81
mambaout_small.in1k22484.08696.6348.49
mambaout_small_rw.sw_e450_in1k22484.02496.75248.5
mambaout_tiny.in1k28883.44896.53826.55
mambaout_tiny.in1k22482.73696.126.55
mambaout_kobe.in1k28881.05495.7189.14
mambaout_kobe.in1k22479.98694.9869.14
mambaout_femto.in1k28879.84895.147.3
mambaout_femto.in1k22478.8794.4087.3

2024年9月

2024年8月21日

  • ImageNet-12kで学習し、ImageNet-1kでファインチューニングされた更新版のSBB ViTモデルは、より大きくて遅い多くのモデルに挑戦しています
modeltop1top5param_countimg_size
vit_mediumd_patch16_reg4_gap_384.sbb2_e200_in12k_ft_in1k87.43898.25664.11384
vit_mediumd_patch16_reg4_gap_256.sbb2_e200_in12k_ft_in1k86.60897.93464.11256
vit_betwixt_patch16_reg4_gap_384.sbb2_e200_in12k_ft_in1k86.59498.0260.4384
vit_betwixt_patch16_reg4_gap_256.sbb2_e200_in12k_ft_in1k85.73497.6160.4256
  • MobileNet-V1 1.25、EfficientNet-B1、およびMNV4ベースラインチャレンジレシピを用いたResNet50-Dの重み
modeltop1top5param_countimg_size
resnet50d.ra4_e3600_r224_in1k81.83895.92225.58288
efficientnet_b1.ra4_e3600_r240_in1k81.44095.7007.79288
resnet50d.ra4_e3600_r224_in1k80.95295.38425.58224
efficientnet_b1.ra4_e3600_r240_in1k80.40695.1527.79240
mobilenetv1_125.ra4_e3600_r224_in1k77.60093.8046.27256
mobilenetv1_125.ra4_e3600_r224_in1k76.92493.2346.27224
  • SAM2 (HieraDet) バックボーンアーキテクチャおよび重みの読み込みサポートを追加
  • in12kでabswin位置埋め込みを用いて学習し、1kでファインチューニングしたHiera Smallの重みを追加
modeltop1top5param_count
hiera_small_abswin_256.sbb2_e200_in12k_ft_in1k84.91297.26035.01
hiera_small_abswin_256.sbb2_pd_e200_in12k_ft_in1k84.56097.10635.01

2024年8月8日

2024年7月28日

  • mobilenet_edgetpu_v2_m の重みに、ra4 mnv4-small ベースのレシピを追加しました。top-1 は 224 で 80.1%、256 で 80.7% です。
  • リリース 1.0.8

2024年7月26日

  • MobileNet-v4の追加の重み、ImageNet-12kでの事前学習とファインチューニング、およびアンチエイリアス付きConvLargeモデル
modeltop1top1_errtop5top5_errparam_countimg_size
mobilenetv4_conv_aa_large.e230_r448_in12k_ft_in1k84.9915.0197.2942.70632.59544
mobilenetv4_conv_aa_large.e230_r384_in12k_ft_in1k84.77215.22897.3442.65632.59480
mobilenetv4_conv_aa_large.e230_r448_in12k_ft_in1k84.6415.3697.1142.88632.59448
mobilenetv4_conv_aa_large.e230_r384_in12k_ft_in1k84.31415.68697.1022.89832.59384
mobilenetv4_conv_aa_large.e600_r384_in1k83.82416.17696.7343.26632.59480
mobilenetv4_conv_aa_large.e600_r384_in1k83.24416.75696.3923.60832.59384
mobilenetv4_hybrid_medium.e200_r256_in12k_ft_in1k82.9917.0196.673.3311.07320
mobilenetv4_hybrid_medium.e200_r256_in12k_ft_in1k82.36417.63696.2563.74411.07256
modeltop1top1_errtop5top5_errparam_countimg_size
efficientnet_b0.ra4_e3600_r224_in1k79.36420.63694.7545.2465.29256
efficientnet_b0.ra4_e3600_r224_in1k78.58421.41694.3385.6625.29224
mobilenetv1_100h.ra4_e3600_r224_in1k76.59623.40493.2726.7285.28256
mobilenetv1_100.ra4_e3600_r224_in1k76.09423.90693.0046.9964.23256
mobilenetv1_100h.ra4_e3600_r224_in1k75.66224.33892.5047.4965.28224
mobilenetv1_100.ra4_e3600_r224_in1k75.38224.61892.3127.6884.23224
  • モデル作成後に画像サイズ、パッチサイズ、ウィンドウサイズを変更できるようにするため、set_input_size()のプロトタイプをvitおよびswin v1/v2モデルに追加しました。
  • swin における異なるサイズ処理へのサポートが強化されました。set_input_size に加えて、always_partition および strict_img_size 引数が __init__ に追加され、より柔軟な入力サイズの制約を可能にしました。
  • 中間のGetterフィーチャーラッパーのインデックス情報が順序通りにない問題を修正し、同様に範囲インデックスまたはチェックアウトインデックスを確認します。
  • テスト用に、実際にImageNet-1kで学習されたtiny(パラメータ数0.5M未満)のモデルを複数追加
modeltop1top1_errtop5top5_errparam_countimg_sizecrop_pct
test_efficientnet.r160_in1k47.15652.84471.72628.2740.361921.0
test_byobnet.r160_in1k46.69853.30271.67428.3260.461921.0
test_efficientnet.r160_in1k46.42653.57470.92829.0720.361600.875
test_byobnet.r160_in1k45.37854.62270.57229.4280.461600.875
test_vit.r160_in1k42.058.068.66431.3360.371921.0
test_vit.r160_in1k40.82259.17867.21232.7880.371600.875
  • vit reg token の初期化を修正しました。Promisery さん、ありがとうございます。
  • その他の修正

2024年6月24日

  • 異なるMQA重み初期化スキームを持つMobileNetV4ハイブリッド重みがさらに3つ
modeltop1top1_errtop5top5_errparam_countimg_size
mobilenetv4_hybrid_large.ix_e600_r384_in1k84.35615.64496.8923.10837.76448
mobilenetv4_hybrid_large.ix_e600_r384_in1k83.99016.01096.7023.29837.76384
mobilenetv4_hybrid_medium.ix_e550_r384_in1k83.39416.60696.7603.24011.07448
mobilenetv4_hybrid_medium.ix_e550_r384_in1k82.96817.03296.4743.52611.07384
mobilenetv4_hybrid_medium.ix_e550_r256_in1k82.49217.50896.2783.72211.07320
mobilenetv4_hybrid_medium.ix_e550_r256_in1k81.44618.55495.7044.29611.07256
  • DaViTモデルにおけるflorence2の重み読み込み

2024年6月12日

  • MobileNetV4モデルと、timmで学習された初期の重みセットが追加されました:
modeltop1top1_errtop5top5_errparam_countimg_size
mobilenetv4_hybrid_large.e600_r384_in1k84.26615.73496.9363.06437.76448
mobilenetv4_hybrid_large.e600_r384_in1k83.80016.20096.7703.23037.76384
mobilenetv4_conv_large.e600_r384_in1k83.39216.60896.6223.37832.59448
mobilenetv4_conv_large.e600_r384_in1k82.95217.04896.2663.73432.59384
mobilenetv4_conv_large.e500_r256_in1k82.67417.32696.313.6932.59320
mobilenetv4_conv_large.e500_r256_in1k81.86218.13895.694.3132.59256
mobilenetv4_hybrid_medium.e500_r224_in1k81.27618.72495.7424.25811.07256
mobilenetv4_conv_medium.e500_r256_in1k80.85819.14295.7684.2329.72320
mobilenetv4_hybrid_medium.e500_r224_in1k80.44219.55895.384.6211.07224
mobilenetv4_conv_blur_medium.e500_r224_in1k80.14219.85895.2984.7029.72256
mobilenetv4_conv_medium.e500_r256_in1k79.92820.07295.1844.8169.72256
mobilenetv4_conv_medium.e500_r224_in1k79.80820.19295.1864.8149.72256
mobilenetv4_conv_blur_medium.e500_r224_in1k79.43820.56294.9325.0689.72224
mobilenetv4_conv_medium.e500_r224_in1k79.09420.90694.775.239.72224
mobilenetv4_conv_small.e2400_r224_in1k74.61625.38492.0727.9283.77256
mobilenetv4_conv_small.e1200_r224_in1k74.29225.70892.1167.8843.77256
mobilenetv4_conv_small.e2400_r224_in1k73.75626.24491.4228.5783.77224
mobilenetv4_conv_small.e1200_r224_in1k73.45426.54691.348.663.77224
  • 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=フラグをtransformsに追加し、元のdtypeの非正規化されたtorch.Tensorを返す(chug用)
  • Version 1.0.3 のリリース

2024年5月11日

  • Searching for Better ViT Baselines (For the GPU Poor) の重みと ViT のバリアントがリリースされました。Tiny と Base の間のモデル形状を探索しています。
modeltop1top5param_countimg_size
vit_mediumd_patch16_reg4_gap_256.sbb_in12k_ft_in1k86.20297.87464.11256
vit_betwixt_patch16_reg4_gap_256.sbb_in12k_ft_in1k85.41897.4860.4256
vit_mediumd_patch16_rope_reg1_gap_256.sbb_in1k84.32296.81263.95256
vit_betwixt_patch16_rope_reg4_gap_256.sbb_in1k83.90696.68460.23256
vit_base_patch16_rope_reg1_gap_256.sbb_in1k83.86696.6786.43256
vit_medium_patch16_rope_reg1_gap_256.sbb_in1k83.8196.82438.74256
vit_betwixt_patch16_reg4_gap_256.sbb_in1k83.70696.61660.4256
vit_betwixt_patch16_reg1_gap_256.sbb_in1k83.62896.54460.4256
vit_medium_patch16_reg4_gap_256.sbb_in1k83.4796.62238.88256
vit_medium_patch16_reg1_gap_256.sbb_in1k83.46296.54838.88256
vit_little_patch16_reg4_gap_256.sbb_in1k82.51496.26222.52256
vit_wee_patch16_reg1_gap_256.sbb_in1k80.25695.36013.42256
vit_pwee_patch16_reg1_gap_256.sbb_in1k80.07295.13615.25256
vit_mediumd_patch16_reg4_gap_256.sbb_in12kN/AN/A64.11256
vit_betwixt_patch16_reg4_gap_256.sbb_in12kN/AN/A60.4256
  • timmモデルからアテンションマップを抽出するためのAttentionExtractヘルパーが追加されました。使用例はhttps://github.com/huggingface/pytorch-image-models/discussions/1232#discussioncomment-9320949を参照してください。
  • forward_intermediates() APIが改善され、他の抽出方法を持つ一部のConvNetを含む、より多くのモデルに追加されました。
  • 1047のモデルアーキテクチャのうち1017がfeatures_only=Trueによる特徴量抽出をサポートしています。残りの34のアーキテクチャもサポート可能ですが、優先度に基づいたリクエストに応じて対応します。
  • torch.jit.scriptで注釈された関数(旧JITアクティベーションを含む)を削除します。dynamoと競合し、dynamoを使用する方がはるかに優れたパフォーマンスを発揮するためです。

2024年4月11日

  • 1.0リリースの準備を進めるにあたり、しばらくの間安定した状態が続いています。
  • しばらく欠けていた重要な機能として、フラットな隠れ状態や非標準的なモジュールレイアウトを持つViTモデルに対するfeatures_only=Trueのサポートを追加しました(現在、'vit_*', 'twins_*', 'deit*', 'beit*', 'mvitv2*', 'eva*', 'samvit_*', 'flexivit*'をカバーしています)。
  • 上記の機能サポートは、機能ラッピングモジュールまたは直接使用可能な新しいforward_intermediates() 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以外のデバイスで、trainスクリプトがデバイス引数をサポート
  • その他の修正および小さな追加
  • サポートされるPythonの最低バージョンが3.8に引き上げられました
  • リリース 0.9.16

2024年1月8日

Datasets & transformのリファクタリング

  • HuggingFace ストリーミング(イテラブル)データセットのサポート(--dataset hfids:org/dataset)
  • Webdatasetラッパーの調整により、分割情報の取得が改善されました。対応するHF hubのWebdatasetから分割を自動取得できます。
  • HF datasetsおよびwebdatasetラッパーのHFハブからのストリーミングを、https://huggingface.co/timmへの最近のtimm ImageNetアップロードでテストしました
  • Make input & target column/field keys consistent across datasets and pass via args
  • e:g: --input-size 1 224 224 または --in-chans 1 を使用する場合のフルモノクロサポート。データセット内で PIL の画像変換を適切に設定します
  • PixParseドキュメントAIプロジェクトでの使用を目的として、複数の代替クロップおよびリサイズ変換(ResizeKeepRatio、RandomCropOrPadなど)を改善しました
  • augmentationsおよびargsに、SimCLRスタイルのカラージャイター確率、グレースケール、ガウシアンぼかしオプションを追加
  • 学習スクリプトで検証セットなしで学習を許可する(--val-split '')
  • --bce-sum(クラス次元での合計)と--bce-pos-weight(正例の重み付け)の引数を学習用に追加しました。これらはBCE損失でよく使われる調整であり、以前はハードコードしていました。

2023年11月23日

  • EfficientViT-Largeモデルを追加しました。SeeFunさん、ありがとうございます。
  • Python 3.7との互換性を修正します。まもなくサポートを終了する予定です。
  • その他の修正
  • リリース 0.9.12

2023年11月20日

2023年11月3日

2023年10月20日

  • SigLIP のイメージタワーの重みが vision_transformer.py.
    • ファインチューニングや下流タスクでの機能利用において、大きな可能性を秘めています。
  • Vision Transformers Need Registers に従った vit モデルにおける実験的な「register」サポート
  • 新しい重みのリリースにより、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日

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 における Patch 埋め込みと位置埋め込みは、読み込み時の 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系モデルの中で最高です。
  • RepViTモデルと重み(https://arxiv.org/abs/2307.09283)をwangaoが追加しました
  • SeeFun によって追加された I-JEPA ViT 特徴量重み(分類器なし)
  • SAM-ViT (segment anything) の特徴量重み (分類器なし) を SeeFun が追加しました
  • 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 feature backbone の重みが追加されました
  • OpenCLIP DataComp-XL L/14 feat バックボーン重みの追加
  • Fredo Guan によって重みが追加された MetaFormer (poolformer-v2, caformer, convformer, 更新版 poolformer (v1))
  • vit/deit モデルの隠れ状態を取得するための実験的な get_intermediate_layers 関数(DINO の実装に着想を得たもの)。これは WIP(作業中)であり、大幅に変更される可能性があります。フィードバックをお待ちしています。
  • pretrained=Trueが設定されているが重みが存在しない場合、モデルの作成時にエラーが発生します(ランダム初期化で続行する代わりに)
  • 元の分類器において、1001クラスのinception / nasnetのTF由来の重みに関するリグレッションを修正
  • ファクトリに追加された bitsandbytes (https://github.com/TimDettmers/bitsandbytes) のオプティマイザーには、bnb プレフィックスを使用します。例: bnbadam8bit
  • その他のクリーンアップと修正
  • 0.9への切り替えとtimmのプレリリース状態からのリリース移行に向けた最終テスト

2023年4月27日

  • HF Hubにアップロードされたtimmモデルの97%が、マルチウェイト事前学習設定への対応を更新済み
  • マルチウェイトの追加に伴い、別のモデル群の軽微なクリーンアップとリファクタリングを行いました。さらに、fused_attn(F.sdpa)および features_only のサポート、そして TorchScript の修正を追加しました。

2023年4月21日

  • trainスクリプトに勾配蓄積のサポートを追加し、テストしました(--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エクスポートスクリプト、検証スクリプト、ヘルパーを追加しました。最近のONNXおよびPyTorchでのエクスポートを改善するために、'same'パディングを調整しました。
  • vitおよびvit類似モデルのdropout引数をリファクタリングし、drop_rate(分類器のdropout)、proj_drop_rate(ブロックのmlp / 出力投影)、pos_drop_rate(位置埋め込みのdropout)、attn_drop_rate(attention dropout)に分離しました。また、vitおよびevaモデルにpatch dropout(FLIP)を追加しました。
  • より多くのViTモデルへのfused F.scaled_dot_product_attentionのサポートを追加し、制御用の環境変数(TIMM_FUSED_ATTN)および有効/無効を切り替えるためのconfigインターフェースを追加
  • EVA-CLIPのバックボーンに、画像タワーの重みを追加しました。最大4Bパラメータの「enormous」モデルまで対応し、見落としていた336x336のOpenAI ViTモードもサポートしています。

2023年4月5日

  • Hugging Face Hub にマルチウェイト対応で公開されたすべての ResNet モデル
    • 過去に追加されたすべてのtimmの学習済み重みは、レシピベースのタグによって区別されています
    • すべてのResNetが反撃 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 @ 288
    • resnetaa101d.sw_in12k_ft_in1k - 83.5 @ 224, 84.1 @ 288
    • seresnextaa101d_32x8d.sw_in12k_ft_in1k - 86.0 @ 224, 86.5 @ 288
    • seresnextaa101d_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 中間微調整を最初に追加しました。
modeltop1top5img_sizeparam_countgmacsmacts
convnext_xxlarge.clip_laion2b_soup_ft_in1k88.61298.704256846.47198.09124.45
convnext_large_mlp.clip_laion2b_soup_ft_in12k_in1k_38488.31298.578384200.13101.11126.74
convnext_large_mlp.clip_laion2b_soup_ft_in12k_in1k_32087.96898.47320200.1370.2188.02
convnext_base.clip_laion2b_augreg_ft_in12k_in1k_38487.13898.21238488.5945.2184.49
convnext_base.clip_laion2b_augreg_ft_in12k_in1k86.34497.9725688.5920.0937.55
  • EVA-02 MIMの事前学習済みおよびファインチューニング済み重みを追加し、HFハブにプッシュして、すべてのEVAモデルのモデルカードを更新しました。トップ1精度が90%を超える最初のモデル(トップ5精度99%)です!MIMとCLIPを多くのモデル、データセット、および学習レシピの調整と組み合わせる彼らの作業の詳細については、元のコードと重みをhttps://github.com/baaivision/EVAでご覧いただけます。
modeltop1top5param_countimg_size
eva02_large_patch14_448.mim_m38m_ft_in22k_in1k90.05499.042305.08448
eva02_large_patch14_448.mim_in22k_ft_in22k_in1k89.94699.01305.08448
eva_giant_patch14_560.m30m_ft_in22k_in1k89.79298.9921014.45560
eva02_large_patch14_448.mim_in22k_ft_in1k89.62698.954305.08448
eva02_large_patch14_448.mim_m38m_ft_in1k89.5798.918305.08448
eva_giant_patch14_336.m30m_ft_in22k_in1k89.5698.9561013.01336
eva_giant_patch14_336.clip_ft_in1k89.46698.821013.01336
eva_large_patch14_336.in22k_ft_in22k_in1k89.21498.854304.53336
eva_giant_patch14_224.clip_ft_in1k88.88298.6781012.56224
eva02_base_patch14_448.mim_in22k_ft_in22k_in1k88.69298.72287.12448
eva_large_patch14_336.in22k_ft_in1k88.65298.722304.53336
eva_large_patch14_196.in22k_ft_in22k_in1k88.59298.656304.14196
eva02_base_patch14_448.mim_in22k_ft_in1k88.2398.56487.12448
eva_large_patch14_196.in22k_ft_in1k87.93498.504304.14196
eva02_small_patch14_336.mim_in22k_ft_in1k85.7497.61422.13336
eva02_tiny_patch14_336.mim_in22k_ft_in1k80.65895.5245.76336
  • DeiTおよびMLP-Mixerベースのモデル向けのマルチウェイトとHFハブ

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)のモデルと重みが、大幅なリファクタリング、特徴量抽出、固定解像度/サイズ制約なしで追加されました
  • RegNetの重みは、HF hub push、SWAG、SEER、およびtorchvision v2の重みによって増加しました。SEERはモデルサイズに対する性能がかなり低いですが、有用な可能性があります。
  • ImageNet-12k 事前学習および 1k 微調整済み timm 重み:
    • rexnetr_200.sw_in12k_ft_in1k - 82.6 @ 224, 83.2 @ 288
    • rexnetr_300.sw_in12k_ft_in1k - 84.0 @ 224, 84.5 @ 288
    • regnety_120.sw_in12k_ft_in1k - 85.0 @ 224, 85.4 @ 288
    • regnety_160.lion_in12k_ft_in1k - 85.6 @ 224, 86.0 @ 288
    • regnety_160.sw_in12k_ft_in1k - 85.6 @ 224, 86.0 @ 288 (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画像タワーの重みを追加し、特徴量およびファインチューニングに対応
  • 最新の変更と huggingface 組織への移行を含む 0.8.13dev0 の pypi リリース

2023年2月16日

  • safetensor チェックポイントのサポートを追加
  • 「Scaling Vision Transformers to 22 B. Params」(https://arxiv.org/abs/2302.05442)のアイデアを追加 — qk norm、RmsNorm、parallel block
  • Add F.scaleddot_product_attention support (PyTorch 2.0 only) to `vit,vit_relpos,coatnet/maxxvit` (to start)
  • Lionオプティマイザー(マルチテンソルオプション付き)が追加されました(https://arxiv.org/abs/2302.06675)
  • features_only=True との組み合わせで gradient checkpointing が動作します

2023年2月7日

  • resultsフォルダに新しい推論ベンチマークの数値を追加しました。
  • convnext LAION CLIP 学習済み重みおよび in1k ファインチューニングの初期セットを追加
    • convnext_base.clip_laion2b_augreg_ft_in1k - 86.2% @ 256x256
    • convnext_base.clip_laiona_augreg_ft_in1k_384 - 86.5% @ 384x384
    • convnext_large_mlp.clip_laion2b_augreg_ft_in1k - 87.3% @ 256x256
    • convnext_large_mlp.clip_laion2b_augreg_ft_in1k_384 - 87.9% @ 384x384
  • 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のサポートを追加しました。重みのリマップが必要です。
  • ImageNetのメタデータ(synsets、indices)を/resultsからtimm/data/_infoに移動します。
  • に ImageNetInfo / DatasetInfo クラスを追加し、ImageNet クラシファイアのさまざまなレイアウトにラベリングを提供します timm
    • 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日

  • 384x384で2つのconvnext 12k -> 1kファインチューニングを追加

    • convnext_tiny.in12k_ft_in1k_384 - 85.1 @ 384
    • convnext_small.in12k_ft_in1k_384 - 86.2 @ 384
  • すべてのMaxxViTの重みをHFハブにプッシュし、rwベースのMaxViTおよびCoAtNet 1/2モデル用に、ImageNet-12k -> 1kのファインチューニングを追加します

modeltop1top5サンプル/秒パラメータ数 (M)GMACAct (M)
maxvit_xlarge_tf_512.in21k_ft_in1k88.5398.6421.76475.77534.141413.22
maxvit_xlarge_tf_384.in21k_ft_in1k88.3298.5442.53475.32292.78668.76
maxvit_base_tf_512.in21k_ft_in1k88.2098.5350.87119.88138.02703.99
maxvit_large_tf_512.in21k_ft_in1k88.0498.4036.42212.33244.75942.15
maxvit_large_tf_384.in21k_ft_in1k87.9898.5671.75212.03132.55445.84
maxvit_base_tf_384.in21k_ft_in1k87.9298.54104.71119.6573.80332.90
maxvit_rmlp_base_rw_384.sw_in12k_ft_in1k87.8198.37106.55116.1470.97318.95
maxxvitv2_rmlp_base_rw_384.sw_in12k_ft_in1k87.4798.37149.49116.0972.98213.74
coatnet_rmlp_2_rw_384.sw_in12k_ft_in1k87.3998.31160.8073.8847.69209.43
maxvit_rmlp_base_rw_224.sw_in12k_ft_in1k86.8998.02375.86116.1423.1592.64
maxxvitv2_rmlp_base_rw_224.sw_in12k_ft_in1k86.6498.02501.03116.0924.2062.77
maxvit_base_tf_512.in1k86.6097.9250.75119.88138.02703.99
coatnet_2_rw_224.sw_in12k_ft_in1k86.5797.89631.8873.8715.0949.22
maxvit_large_tf_512.in1k86.5297.8836.04212.33244.75942.15
coatnet_rmlp_2_rw_224.sw_in12k_ft_in1k86.4997.90620.5873.8815.1854.78
maxvit_base_tf_384.in1k86.2997.80101.09119.6573.80332.90
maxvit_large_tf_384.in1k86.2397.6970.56212.03132.55445.84
maxvit_small_tf_512.in1k86.1097.7688.6369.1367.26383.77
maxvit_tiny_tf_512.in1k85.6797.58144.2531.0533.49257.59
maxvit_small_tf_384.in1k85.5497.46188.3569.0235.87183.65
maxvit_tiny_tf_384.in1k85.1197.38293.4630.9817.53123.42
maxvit_large_tf_224.in1k84.9396.97247.71211.7943.68127.35
coatnet_rmlp_1_rw2_224.sw_in12k_ft_in1k84.9096.961025.4541.728.1140.13
maxvit_base_tf_224.in1k84.8596.99358.25119.4724.0495.01
maxxvit_rmlp_small_rw_256.sw_in1k84.6397.06575.5366.0114.6758.38
coatnet_rmlp_2_rw_224.sw_in1k84.6196.74625.8173.8815.1854.78
maxvit_rmlp_small_rw_224.sw_in1k84.4996.76693.8264.9010.7549.30
maxvit_small_tf_224.in1k84.4396.83647.9668.9311.6653.17
maxvit_rmlp_tiny_rw_256.sw_in1k84.2396.78807.2129.156.7746.92
coatnet_1_rw_224.sw_in1k83.6296.38989.5941.728.0434.60
maxvit_tiny_rw_224.sw_in1k83.5096.501100.5329.065.1133.11
maxvit_tiny_tf_224.in1k83.4196.591004.9430.925.6035.78
coatnet_rmlp_1_rw_224.sw_in1k83.3696.451093.0341.697.8535.47
maxxvitv2_nano_rw_256.sw_in1k83.1196.331276.8823.706.2623.05
maxxvit_rmlp_nano_rw_256.sw_in1k83.0396.341341.2416.784.3726.05
maxvit_rmlp_nano_rw_256.sw_in1k82.9696.261283.2415.504.4731.92
maxvit_nano_rw_256.sw_in1k82.9396.231218.1715.454.4630.28
coatnet_bn_0_rw_224.sw_in1k82.3996.191600.1427.444.6722.04
coatnet_0_rw_224.sw_in1k82.3995.841831.2127.444.4318.73
coatnet_rmlp_nano_rw_224.sw_in1k82.0595.872109.0915.152.6220.34
coatnext_nano_rw_224.sw_in1k81.9595.922525.5214.702.4712.80
coatnet_nano_rw_224.sw_in1k81.7095.642344.5215.142.4115.41
maxvit_rmlp_pico_rw_256.sw_in1k80.5395.211594.717.521.8524.86

2023年1月11日

  • ConvNeXt ImageNet-12k 事前学習シリーズを更新し、2 つの新しいファインチューニング済み重み(および事前 FT .in12k タグ)を追加しました
    • convnext_nano.in12k_ft_in1k - 82.3 @ 224, 82.9 @ 288 (以前にリリース済み)
    • convnext_tiny.in12k_ft_in1k - 84.2 @ 224, 84.5 @ 288
    • convnext_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
  • argのパススルーをより適切にサポートし、モデル設定とのマージを改善するため、人気のあるモデルの一部を整理しました。さらに継続的な作業が必要です。

2023年1月5日

2022年12月23日 🎄☃

  • FlexiViT モデルと重みを追加 https://github.com/google-research/big_vision (論文はこちら https://arxiv.org/abs/2212.08013)
    • NOTE 現在、リサイズはモデル作成時に静的に行われます。オンザフライの動的なパッチサイズサンプリングは開発中です。
  • HF hub経由でダウンロード可能になった、マルチウェイトに更新されたモデルがさらに多数追加されました(convnext、efficientnet、mobilenet、vision_transformer*、beit)
  • モデルの事前学習タグと調整の追加、一部のモデル名の変更(非推奨化の翻訳作業中、現在はメインブランチのDEVブランチを参照し、安定した利用には0.6.xを使用してください)
  • ImageNet-12k(22k のサブセット)で事前学習されたモデルがさらに登場しています:
    • efficientnet_b5.in12k_ft_in1k - 85.9 @ 448x448
    • vit_medium_patch16_gap_384.in12k_ft_in1k - 85.5 @ 384x384
    • vit_medium_patch16_gap_256.in12k_ft_in1k - 84.5 @ 256x256
    • convnext_nano.in12k_ft_in1k - 82.9 @ 288x288

2022年12月8日

  • 「EVA l」を vision_transformer.py, MAE スタイルの ViT-L/14 MIM 事前学習(EVA-CLIP ターゲットを使用)、ImageNet-1k でのファインチューニング(一部は ImageNet-22k を中間として使用)
modeltop1param_countgmacmactshub
eva_large_patch14_336.in22k_ft_in22k_in1k89.2304.5191.1270.2リンク
eva_large_patch14_336.in22k_ft_in1k88.7304.5191.1270.2リンク
eva_large_patch14_196.in22k_ft_in22k_in1k88.6304.161.663.5リンク
eva_large_patch14_196.in22k_ft_in1k87.9304.161.663.5リンク

2022年12月6日

modeltop1param_countgmacmactshub
eva_giant_patch14_560.m30m_ft_in22k_in1k89.81014.41906.82577.2リンク
eva_giant_patch14_336.m30m_ft_in22k_in1k89.61013620.6550.7リンク
eva_giant_patch14_336.clip_ft_in1k89.41013620.6550.7リンク
eva_giant_patch14_224.clip_ft_in1k89.11012.6267.2192.6リンク

2022年12月5日

  • プレリリース (0.8.0dev0) マルチウェイト対応 (model_arch.pretrained_tag). でインストールします。 pip install --pre timm
    • vision_transformer、maxvit、convnext がサポート対応の最初の3つのモデル実装です
    • この変更によりモデル名が変更されます(以前の _21k などの関数はマージされます)。非推奨の処理方法について調整中です。
    • バグが発生する可能性は高いですが、フィードバックが必要なので、ぜひ試してみてください。
    • 安定性が求められる場合は、0.6.x branchからクローンするか、0.6.x の PyPI リリースを使用してください。
  • train/validate/inference/benchmark に PyTorch 2.0 compile のサポートが追加されました。--torchcompile 引数を使用してください。
  • Inference scriptは出力に対するより詳細な制御を可能にします。kを指定すると上位クラスのインデックスと確率が出力され、出力形式はjson、csv、parquetから選択できます。
  • LAION-2Bと元のOpenAI CLIPモデルの両方から、ファインチューニング済みのCLIP画像タワーの重みの完全なセットを追加します
modeltop1param_countgmacmactshub
vit_huge_patch14_clip_336.laion2b_ft_in12k_in1k88.6632.5391407.5リンク
vit_large_patch14_clip_336.openai_ft_in12k_in1k88.3304.5191.1270.2リンク
vit_huge_patch14_clip_224.laion2b_ft_in12k_in1k88.2632167.4139.4リンク
vit_large_patch14_clip_336.laion2b_ft_in12k_in1k88.2304.5191.1270.2リンク
vit_large_patch14_clip_224.openai_ft_in12k_in1k88.2304.281.188.8リンク
vit_large_patch14_clip_224.laion2b_ft_in12k_in1k87.9304.281.188.8リンク
vit_large_patch14_clip_224.openai_ft_in1k87.9304.281.188.8リンク
vit_large_patch14_clip_336.laion2b_ft_in1k87.9304.5191.1270.2リンク
vit_huge_patch14_clip_224.laion2b_ft_in1k87.6632167.4139.4リンク
vit_large_patch14_clip_224.laion2b_ft_in1k87.3304.281.188.8リンク
vit_base_patch16_clip_384.laion2b_ft_in12k_in1k87.286.955.5101.6リンク
vit_base_patch16_clip_384.openai_ft_in12k_in1k8786.955.5101.6リンク
vit_base_patch16_clip_384.laion2b_ft_in1k86.686.955.5101.6リンク
vit_base_patch16_clip_384.openai_ft_in1k86.286.955.5101.6リンク
vit_base_patch16_clip_224.laion2b_ft_in12k_in1k86.286.617.623.9リンク
vit_base_patch16_clip_224.openai_ft_in12k_in1k85.986.617.623.9リンク
vit_base_patch32_clip_448.laion2b_ft_in12k_in1k85.888.317.923.9リンク
vit_base_patch16_clip_224.laion2b_ft_in1k85.586.617.623.9リンク
vit_base_patch32_clip_384.laion2b_ft_in12k_in1k85.488.313.116.5リンク
vit_base_patch16_clip_224.openai_ft_in1k85.386.617.623.9リンク
vit_base_patch32_clip_384.openai_ft_in12k_in1k85.288.313.116.5リンク
vit_base_patch32_clip_224.laion2b_ft_in12k_in1k83.388.24.45リンク
vit_base_patch32_clip_224.laion2b_ft_in1k82.688.24.45リンク
vit_base_patch32_clip_224.openai_ft_in1k81.988.24.45リンク
  • 公式実装の https://github.com/google-research/maxvit
    • アップスケールされた384/512のin21kファインチューニング重みでは、予想より大きな性能低下が見られ、詳細が欠落している可能性があります。ただし、21k FTは小さな前処理に対して敏感であることが確認されました。
modeltop1param_countgmacmactshub
maxvit_xlarge_tf_512.in21k_ft_in1k88.5475.8534.11413.2リンク
maxvit_xlarge_tf_384.in21k_ft_in1k88.3475.3292.8668.8リンク
maxvit_base_tf_512.in21k_ft_in1k88.2119.9138704リンク
maxvit_large_tf_512.in21k_ft_in1k88212.3244.8942.2リンク
maxvit_large_tf_384.in21k_ft_in1k88212132.6445.8リンク
maxvit_base_tf_384.in21k_ft_in1k87.9119.673.8332.9リンク
maxvit_base_tf_512.in1k86.6119.9138704リンク
maxvit_large_tf_512.in1k86.5212.3244.8942.2リンク
maxvit_base_tf_384.in1k86.3119.673.8332.9リンク
maxvit_large_tf_384.in1k86.2212132.6445.8リンク
maxvit_small_tf_512.in1k86.169.167.3383.8リンク
maxvit_tiny_tf_512.in1k85.73133.5257.6リンク
maxvit_small_tf_384.in1k85.56935.9183.6リンク
maxvit_tiny_tf_384.in1k85.13117.5123.4リンク
maxvit_large_tf_224.in1k84.9211.843.7127.4リンク
maxvit_base_tf_224.in1k84.9119.52495リンク
maxvit_small_tf_224.in1k84.468.911.753.2リンク
maxvit_tiny_tf_224.in1k83.430.95.635.8リンク

2022年10月15日

  • 学習および検証スクリプトの強化
  • GPU以外(つまりCPU)のデバイスサポート
  • trainスクリプトのSLURM互換性
  • HF datasets のサポート(ReaderHfds を通じて)
  • TFDS/WDSのデータローディングの改善(分散利用におけるサンプル数の推定値に対するサンプルのパディング/ラップの修正)
  • スクリプト / ローダーにおける in_chans !=3 のサポート
  • Adanオプティマイザー
  • args を使用して、ステップごとの LR スケジューリングを有効にできます
  • Dataset の ‘parsers’ を ‘readers’ に変更し、目的をより明確に表すようにしました
  • AMPの引数が変更され、--amp-impl apexでAPEXを使用可能になり、--amp-dtype bfloat16でbfloat16がサポートされました
  • mainブランチは0.7.xバージョンに切り替えられ、0.6xはweight only addsの安定版リリース用にフォークされました
  • master -> main ブランチへのリネーム

2022年10月10日

  • より多くの重みを含む maxxvit シリーズ(最初の ConvNeXt ブロックベースを含む) coatnext および maxxvit 実験:
    • coatnext_nano_rw_224 - 82.0 @ 224 (G) — (ConvNeXtのconvブロックを使用、BatchNormなし)
    • maxxvit_rmlp_nano_rw_256 - 83.0 @ 256、83.7 @ 320 (G) (ConvNeXtのconvブロックを使用、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)
    • NOTE: 公式の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) と、2 つの 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 の timm 実装は、元のモデルの定義が maxxvit.py に含まれており、元の論文の範囲外となる多数の実験が含まれています。MaxVit の著者による未完成の Tensorflow 版は https://github.com/google-research/maxvit で確認できます。
    • 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 は、第3ステージのブロックが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から適応、ライセンス上の理由によりコードはtimmによる100%書き換え)
  • MViT-V2(マルチスケール ViT、https://github.com/facebookresearch/mvit に基づいて適応)
  • EfficientFormer(https://github.com/snap-research/EfficientFormerから適応)
  • PyramidVisionTransformer-V2(https://github.com/whai362/PVTから適応)
  • AMP環境下でfloat32へのアップキャストを回避するLayerNormおよびGroupNormの‘Fast Norm’サポート(利用可能な場合はAPEX LNを使用し、さらなる性能向上を実現)

2022年8月15日

  • ConvNeXt atto の重みが追加されました
    • convnext_atto - 75.7 @ 224, 77.0 @ 288
    • convnext_atto_ols - 75.9 @ 224, 77.2 @ 288

2022年8月5日

  • 重み付きのより小さいカスタム ConvNeXt モデル定義
    • convnext_femto - 77.5 @ 224, 78.7 @ 288
    • convnext_femto_ols - 77.9 @ 224, 78.9 @ 288
    • convnext_pico - 79.5 @ 224, 80.4 @ 288
    • convnext_pico_ols - 79.5 @ 224, 80.5 @ 288
    • convnext_nano_ols - 80.9 @ 224, 81.6 @ 288
  • ONNXエクスポートの改善、新しいベースバリアントの追加、およびオリジナル(https://github.com/mmaaz60/EdgeNeXt)からの重みの追加により、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 @ 288
    • convnext_nano - 80.8 @ 224, 81.5 @ 288
    • cs3sedarknet_l - 81.2 @ 256, 81.8 @ 288
    • cs3darknet_x - 81.8 @ 256, 82.2 @ 288
    • cs3sedarknet_x - 82.2 @ 256, 82.7 @ 288
    • cs3edgenet_x - 82.2 @ 256, 82.7 @ 288
    • cs3se_edgenet_x - 82.8 @ 256, 83.5 @ 320
  • cs3* の重みはすべて、bits_and_tpu ブランチを使用して TPU で学習されています。TRC プログラムに感謝します!
  • ConvNeXt に output_stride=8 および 16 のサポートを追加(dilation)
  • deit3モデルでpos_embのリサイズができない問題が修正されました
  • Version 0.6.7 PyPiリリース(0.6.5以降の上記のバグ修正と新しい重みを含む)

2022年7月8日

より多くのモデル、より多くの修正

  • 公式リサーチモデル(重み付き)が追加されました:
  • 自分のモデル:
    • リクエストに応じて、basicおよびbottleneckの両方で1ブロックの繰り返しを持つ小さなResNet定義(resnet10およびresnet14)を追加しました
    • CspNetはdataclass設定でリファクタリングされ、CrossStage3(cs3)オプションが簡素化されました。これらはYOLO-v5+のbackbone定義に近づいています。
    • 相対位置のViTのさらなる調整。2つのsrelpos(共有相対位置)モデルを訓練し、クラストークン付きのミディアムサイズモデルも作成しました。
    • EdgeNeXtに代替のダウンサンプルモードを追加し、smallモデルを学習します。元のsmallモデルよりも性能が向上していますが、彼らの新しいUSI学習済み重みには及びません。
  • 独自のモデル重みの結果(すべて ImageNet-1k での学習)
    • resnet10t - 66.5 @ 176, 68.3 @ 224
    • resnet14t - 71.3 @ 176, 72.3 @ 224
    • resnetaa50 - 80.6 @ 224 , 81.6 @ 288
    • darknet53 - 80.0 @ 256, 80.5 @ 288
    • cs3darknet_m - 77.0 @ 256, 77.6 @ 288
    • cs3darknet_focus_m - 76.7 @ 256, 77.3 @ 288
    • cs3darknet_l - 80.4 @ 256, 80.9 @ 288
    • cs3darknet_focus_l - 80.3 @ 256, 80.9 @ 288
    • vit_srelpos_small_patch16_224 - 81.1 @ 224, 82.1 @ 320
    • vit_srelpos_medium_patch16_224 - 82.3 @ 224, 83.1 @ 320
    • vit_relpos_small_patch16_cls_224 - 82.6 @ 224, 83.6 @ 320
    • edgnext_small_rw - 79.6 @ 224, 80.4 @ 320
  • cs3、darknet、およびvit_*relposの重みはすべて、TRCプログラムのおかげでTPU上で学習されました。残りは発熱するGPUで学習されました。
  • Hugging Face Hub 対応の修正が確認済み、デモノートブックは近日公開予定
  • 事前学習済み重み/設定は、ヘッドの適応をサポートしながら、外部(ローカルディスクなど)から読み込むことができます。
  • timm のデータセット/リーダーがスキャンする画像の拡張子を変更する機能を追加しました。詳細は (https://github.com/rwightman/pytorch-image-models/pull/1274#issuecomment-1178303103) を参照してください。
  • 使用するデフォルトの ConvNeXt LayerNorm 実装 F.layer_norm(x.permute(0, 2, 3, 1), ...).permute(0, 3, 1, 2) を介して LayerNorm2d すべてのケースで。一部のハードウェア(CL 付き Ampere など)では以前の独自実装よりやや遅いが、より幅広いハードウェア / PyTorch バージョンの範囲全体で見ると、リグレッションが少なくなる。以前の实装は models/layers/norm.py に LayerNormExp2d として存在する。
    • 一部のハードウェア(CL付きAmpereなど)では以前の独自実装よりやや遅くなりますが、より幅広いハードウェアおよびPyTorchバージョンの範囲全体で見ると、全体的にリグレッションが少なくなっています。
    • 以前の実装はmodels/layers/norm.pyにLayerNormExp2dとして存在します
  • 多数のバグ修正
  • 現在、まもなくリリース予定のPyPi 0.6.x版のテストを行っています
  • LeViTの大規模モデルの事前学習はまだWIP(作業中)であり、蒸留なしではうまく/容易に学習できません。ついに蒸留のサポートを追加する時期が来たのではないでしょうか?
  • ImageNet-22kでの重み学習とファインチューニングは進行中です。マルチウェイト対応の作業も(ゆっくりとですが)進んでいます(重みが非常に多く、ため息が出ます…)。

2022年5月13日

  • (https://github.com/microsoft/Swin-Transformer) から公式の Swin-V2 モデルと重みを追加しました。torchscript に対応するため、整理を行いました。
  • 既存のtimm Swin-V2-CR実装のいくつかのリファクタリングを行います。公式実装に近づけるため、さらにいくつかの部分を調整し、一部の側面をマージするかどうかを判断する予定です。
  • Vision Transformer の相対位置 / 残差 post-norm に関する追加の実験(TRC プログラムのおかげで、すべて TPU で学習)
    • vit_relpos_small_patch16_224 - 81.5 @ 224, 82.5 @ 320 — rel pos, layer scale, no class token, avg pool
    • vit_relpos_medium_patch16_rpn_224 - 82.3 @ 224, 83.1 @ 320 — rel pos + res-post-norm、クラストークンなし、avg pool
    • vit_relpos_medium_patch16_224 - 82.5 @ 224, 83.3 @ 320 — rel pos, layer scale, no class token, avg pool
    • vit_relpos_base_patch16_gapcls_224 - 82.8 @ 224, 83.9 @ 320 — rel pos、layer scale、class token、avg pool(誤って使用)
  • 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日

  • 相対位置(Swin-V2 log-coord)を追加した Vision Transformer の実験(vision_transformer_relpos.py) および Residual Post-Norm 分岐(Swin-V2 由来)(vision_transformer*.py)
    • vit_relpos_base_patch32_plus_rpn_256 - 79.5 @ 256, 80.6 @ 320 — 相対位置エンコーディング + 拡張幅 + Residual Post-Norm、クラストークンなし、平均プーリング
    • vit_relpos_base_patch16_224 - 82.5 @ 224, 83.6 @ 320 — 相対位置、レイヤー スケール、クラス トークンなし、平均プーリング
    • vit_base_patch16_rpn_224 - 82.3 @ 224 — 相対位置エンコーディング + 残差接続後の正規化、クラストークンなし、平均プーリング
  • How to Train Your ViTのような新しい事前学習ではほとんど使用されなくなった、初期のViTでのみ使用されていた表現層を削除するためのVision Transformerのリファクタリング
  • vit_* モデルは、クラストークンの削除、グローバル平均プーリングの使用、および fc_norm(BEiT や MAE に準拠)の使用に対応しています。

2022年4月22日

  • timmモデルは、fast.aiで正式にサポートされました。新しいPractical Deep Learningコースに間に合うよう、timmdocsのドキュメントリンクはtimm.fast.aiに更新されています。
  • TPU 学習で追加されたモデルの重みがさらに 2 つ シリーズ. 一部の In22k 事前学習は進行中です。
    • seresnext101d_32x8d - 83.69 @ 224, 84.35 @ 288
    • seresnextaa101d_32x8d(AvgPool2dによるアンチエイリアス処理済み)- 224で83.85、288で84.57

2022年3月23日

  • ParallelBlock と LayerScale オプションをベースの ViT モデルに追加し、Three things everyone should know about ViT のモデル設定をサポート
  • convnext_tiny_hnf(head norm first)の重みは、A2レシピ(に近いもの)で学習されており、top-1精度は82.2%です。エポック数を増やせばさらに向上する可能性があります。

2022年3月21日

  • norm_norm_norm をマージします。重要 この更新は、今後の 0.6.x リリースに伴い、しばらくの間 master ブランチの安定性を損なう可能性があります。安定性が求められる場合は、ブランチ 0.5.x または以前の 0.5.x リリースを使用できます。
  • この リリース
    • regnety_040 - 82.3 @ 224, 82.96 @ 288
    • regnety_064 - 83.0 @ 224, 83.65 @ 288
    • regnety_080 - 83.17 @ 224, 83.86 @ 288
    • regnetv_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 @ 320
    • regnetz_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 @ 299
    • xception65p - 83.14 @ 299 (timm pre-act)
    • resnext101_64x4d - 82.46 @ 224, 83.16 @ 288
    • seresnext101_32x8d - 83.57 @ 224, 84.270 @ 288
    • resnetrs200 - 83.85 @ 256, 84.44 @ 320
  • HuggingFace hubのサポートを修正し、事前学習モデルの定義と重みに対して代替のconfig sourcesを許可するための初期の基盤を整えました(汎用的なローカルファイル/リモート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モデル
  • EvoNorm、FilterResponseNorm、GroupNormなどの非BatchNormの正規化レイヤーを用いた実験的な取り組み
  • EfficientNet/MobileNetV3、RegNet、および整合性のあるXceptionなど、複数のモデルに追加された代替ノルム+活性化(‘NormAct’)レイヤーへのサポートを強化
  • EfficientNetファミリーへのグループ畳み込みサポートを追加
  • group matching API をすべてのモデルに追加し、layer-wise の LR 減衰を適用するためにモデルのパラメータをグループ化できるようにします。LR スケジューラーに lr スケールを追加
  • 多くのモデルにグラデーションチェックポイントのサポートが追加されました
  • forward_head(x, pre_logits=False) は、forward_features と forward_head を個別に呼び出すことを可能にするため、すべてのモデルに追加された関数です。
  • すべての Vision Transformer および Vision MLP モデルは、CNN モデルとの整合性を保つため、forward_features からプーリングされていない / トークン選択が適用されていない特徴を返すように更新されました。トークン選択またはプーリングは、現在 forward_head で適用されます。

2022年2月2日

  • Chris Hughes が昨日、ブログで timm の包括的な解説を公開しました。一読の価値があります。PyTorch Image Models (timm) の入門: 実務者のためのガイド
  • 現在、 norm_norm_norm ブランチを master (ver 0.6.x) にマージする準備を進めており、来週頃に行う予定です。
    • 変更点は通常より広範囲に及んでおり、一部のモデル API の使用を不安定にしたり壊したりする可能性があります(完全な後方互換性を目標としています)。そのため、pip install git+https://github.com/rwightman/pytorch-image-models によるインストールにはご注意ください。
    • 0.5.x のリリースと 0.5.x ブランチは、状況が落ち着くまで数回の cherry pick を含めて安定した状態を維持されます。安定性を重視される場合は、しばらくの間 pypi からのインストールをおすすめします。

2022年1月14日

  • Version 0.5.4 w/ release を pypi に公開します。前回の pypi 更新からしばらく経っており、リスクの高い変更がまもなく main ブランチにマージされる予定です…
  • 公式実装(https://github.com/facebookresearch/ConvNeXt)の重み付きConvNeXTモデルを追加し、いくつかのパフォーマンス調整を行い、timmの機能と互換性を持たせました
  • いくつかの小型(約180万〜300万パラメータ)/ モバイル向けに最適化されたモデルのトレーニングを試みましたが、いくつかは現時点で良好な結果が出ており、さらに多くのモデルが準備中です…
    • mnasnet_small - 65.6 top-1
    • mobilenetv2_050 - 65.9
    • lcnet_100/075/050 - 72.1 / 68.8 / 63.1
    • semnasnet_075 - 73
    • fbnetv3_b/d/g - 79.1 / 79.7 / 82.0
  • rsomani95 によって追加された TinyNet モデル
  • MobileNetV3アーキテクチャによりLCNetが追加されました

2023年1月5日

2022年12月23日 🎄☃

  • FlexiViT モデルと重みを追加 https://github.com/google-research/big_vision (論文はこちら https://arxiv.org/abs/2212.08013)
    • NOTE 現在、リサイズはモデル作成時に静的に行われます。オンザフライの動的なパッチサイズサンプリングは開発中です。
  • HF hub経由でダウンロード可能になった、マルチウェイトに更新されたモデルがさらに多数追加されました(convnext、efficientnet、mobilenet、vision_transformer*、beit)
  • モデルの事前学習タグと調整の追加、一部のモデル名の変更(非推奨化の翻訳作業中、現在はメインブランチのDEVブランチを参照し、安定した利用には0.6.xを使用してください)
  • ImageNet-12k(22k のサブセット)で事前学習されたモデルがさらに登場しています:
    • efficientnet_b5.in12k_ft_in1k - 85.9 @ 448x448
    • vit_medium_patch16_gap_384.in12k_ft_in1k - 85.5 @ 384x384
    • vit_medium_patch16_gap_256.in12k_ft_in1k - 84.5 @ 256x256
    • convnext_nano.in12k_ft_in1k - 82.9 @ 288x288

2022年12月8日

  • 「EVA l」を vision_transformer.py, MAE スタイルの ViT-L/14 MIM 事前学習(EVA-CLIP ターゲットを使用)、ImageNet-1k でのファインチューニング(一部は ImageNet-22k を中間として使用)
modeltop1param_countgmacmactshub
eva_large_patch14_336.in22k_ft_in22k_in1k89.2304.5191.1270.2リンク
eva_large_patch14_336.in22k_ft_in1k88.7304.5191.1270.2リンク
eva_large_patch14_196.in22k_ft_in22k_in1k88.6304.161.663.5リンク
eva_large_patch14_196.in22k_ft_in1k87.9304.161.663.5リンク

2022年12月6日

modeltop1param_countgmacmactshub
eva_giant_patch14_560.m30m_ft_in22k_in1k89.81014.41906.82577.2リンク
eva_giant_patch14_336.m30m_ft_in22k_in1k89.61013620.6550.7リンク
eva_giant_patch14_336.clip_ft_in1k89.41013620.6550.7リンク
eva_giant_patch14_224.clip_ft_in1k89.11012.6267.2192.6リンク

2022年12月5日

  • プレリリース (0.8.0dev0) マルチウェイト対応 (model_arch.pretrained_tag). でインストールします。 pip install --pre timm
    • vision_transformer、maxvit、convnext がサポート対応の最初の3つのモデル実装です
    • この変更によりモデル名が変更されます(以前の _21k などの関数はマージされます)。非推奨の処理方法について調整中です。
    • バグが発生する可能性は高いですが、フィードバックが必要なので、ぜひ試してみてください。
    • 安定性が求められる場合は、0.6.x branchからクローンするか、0.6.x の PyPI リリースを使用してください。
  • train/validate/inference/benchmark に PyTorch 2.0 compile のサポートが追加されました。--torchcompile 引数を使用してください。
  • Inference scriptは出力に対するより詳細な制御を可能にします。kを指定すると上位クラスのインデックスと確率が出力され、出力形式はjson、csv、parquetから選択できます。
  • LAION-2Bと元のOpenAI CLIPモデルの両方から、ファインチューニング済みのCLIP画像タワーの重みの完全なセットを追加します
modeltop1param_countgmacmactshub
vit_huge_patch14_clip_336.laion2b_ft_in12k_in1k88.6632.5391407.5リンク
vit_large_patch14_clip_336.openai_ft_in12k_in1k88.3304.5191.1270.2リンク
vit_huge_patch14_clip_224.laion2b_ft_in12k_in1k88.2632167.4139.4リンク
vit_large_patch14_clip_336.laion2b_ft_in12k_in1k88.2304.5191.1270.2リンク
vit_large_patch14_clip_224.openai_ft_in12k_in1k88.2304.281.188.8リンク
vit_large_patch14_clip_224.laion2b_ft_in12k_in1k87.9304.281.188.8リンク
vit_large_patch14_clip_224.openai_ft_in1k87.9304.281.188.8リンク
vit_large_patch14_clip_336.laion2b_ft_in1k87.9304.5191.1270.2リンク
vit_huge_patch14_clip_224.laion2b_ft_in1k87.6632167.4139.4リンク
vit_large_patch14_clip_224.laion2b_ft_in1k87.3304.281.188.8リンク
vit_base_patch16_clip_384.laion2b_ft_in12k_in1k87.286.955.5101.6リンク
vit_base_patch16_clip_384.openai_ft_in12k_in1k8786.955.5101.6リンク
vit_base_patch16_clip_384.laion2b_ft_in1k86.686.955.5101.6リンク
vit_base_patch16_clip_384.openai_ft_in1k86.286.955.5101.6リンク
vit_base_patch16_clip_224.laion2b_ft_in12k_in1k86.286.617.623.9リンク
vit_base_patch16_clip_224.openai_ft_in12k_in1k85.986.617.623.9リンク
vit_base_patch32_clip_448.laion2b_ft_in12k_in1k85.888.317.923.9リンク
vit_base_patch16_clip_224.laion2b_ft_in1k85.586.617.623.9リンク
vit_base_patch32_clip_384.laion2b_ft_in12k_in1k85.488.313.116.5リンク
vit_base_patch16_clip_224.openai_ft_in1k85.386.617.623.9リンク
vit_base_patch32_clip_384.openai_ft_in12k_in1k85.288.313.116.5リンク
vit_base_patch32_clip_224.laion2b_ft_in12k_in1k83.388.24.45リンク
vit_base_patch32_clip_224.laion2b_ft_in1k82.688.24.45リンク
vit_base_patch32_clip_224.openai_ft_in1k81.988.24.45リンク
  • 公式実装の https://github.com/google-research/maxvit
    • アップスケールされた384/512のin21kファインチューニング重みでは、予想より大きな性能低下が見られ、詳細が欠落している可能性があります。ただし、21k FTは小さな前処理に対して敏感であることが確認されました。
modeltop1param_countgmacmactshub
maxvit_xlarge_tf_512.in21k_ft_in1k88.5475.8534.11413.2リンク
maxvit_xlarge_tf_384.in21k_ft_in1k88.3475.3292.8668.8リンク
maxvit_base_tf_512.in21k_ft_in1k88.2119.9138704リンク
maxvit_large_tf_512.in21k_ft_in1k88212.3244.8942.2リンク
maxvit_large_tf_384.in21k_ft_in1k88212132.6445.8リンク
maxvit_base_tf_384.in21k_ft_in1k87.9119.673.8332.9リンク
maxvit_base_tf_512.in1k86.6119.9138704リンク
maxvit_large_tf_512.in1k86.5212.3244.8942.2リンク
maxvit_base_tf_384.in1k86.3119.673.8332.9リンク
maxvit_large_tf_384.in1k86.2212132.6445.8リンク
maxvit_small_tf_512.in1k86.169.167.3383.8リンク
maxvit_tiny_tf_512.in1k85.73133.5257.6リンク
maxvit_small_tf_384.in1k85.56935.9183.6リンク
maxvit_tiny_tf_384.in1k85.13117.5123.4リンク
maxvit_large_tf_224.in1k84.9211.843.7127.4リンク
maxvit_base_tf_224.in1k84.9119.52495リンク
maxvit_small_tf_224.in1k84.468.911.753.2リンク
maxvit_tiny_tf_224.in1k83.430.95.635.8リンク

2022年10月15日

  • 学習および検証スクリプトの強化
  • GPU以外(つまりCPU)のデバイスサポート
  • trainスクリプトのSLURM互換性
  • HF datasets のサポート(ReaderHfds を通じて)
  • TFDS/WDSのデータローディングの改善(分散利用におけるサンプル数の推定値に対するサンプルのパディング/ラップの修正)
  • スクリプト / ローダーにおける in_chans !=3 のサポート
  • Adanオプティマイザー
  • args を使用して、ステップごとの LR スケジューリングを有効にできます
  • Dataset の ‘parsers’ を ‘readers’ に変更し、目的をより明確に表すようにしました
  • AMPの引数が変更され、--amp-impl apexでAPEXを使用可能になり、--amp-dtype bfloat16でbfloat16がサポートされました
  • mainブランチは0.7.xバージョンに切り替えられ、0.6xはweight only addsの安定版リリース用にフォークされました
  • master -> main ブランチへのリネーム

2022年10月10日

  • より多くの重みを含む maxxvit シリーズ(最初の ConvNeXt ブロックベースを含む) coatnext および maxxvit 実験:
    • coatnext_nano_rw_224 - 82.0 @ 224 (G) — (ConvNeXtのconvブロックを使用、BatchNormなし)
    • maxxvit_rmlp_nano_rw_256 - 83.0 @ 256、83.7 @ 320 (G) (ConvNeXtのconvブロックを使用、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)
    • NOTE: 公式の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) と、2 つの 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 の timm 実装は、元のモデルの定義が maxxvit.py に含まれており、元の論文の範囲外となる多数の実験が含まれています。MaxVit の著者による未完成の Tensorflow 版は https://github.com/google-research/maxvit で確認できます。
    • 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 は、第3ステージのブロックが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から適応、ライセンス上の理由によりコードはtimmによる100%書き換え)
  • MViT-V2(マルチスケール ViT、https://github.com/facebookresearch/mvit に基づいて適応)
  • EfficientFormer(https://github.com/snap-research/EfficientFormerから適応)
  • PyramidVisionTransformer-V2(https://github.com/whai362/PVTから適応)
  • AMP環境下でfloat32へのアップキャストを回避するLayerNormおよびGroupNormの‘Fast Norm’サポート(利用可能な場合はAPEX LNを使用し、さらなる性能向上を実現)

2022年8月15日

  • ConvNeXt atto の重みが追加されました
    • convnext_atto - 75.7 @ 224, 77.0 @ 288
    • convnext_atto_ols - 75.9 @ 224, 77.2 @ 288

2022年8月5日

  • 重み付きのより小さいカスタム ConvNeXt モデル定義
    • convnext_femto - 77.5 @ 224, 78.7 @ 288
    • convnext_femto_ols - 77.9 @ 224, 78.9 @ 288
    • convnext_pico - 79.5 @ 224, 80.4 @ 288
    • convnext_pico_ols - 79.5 @ 224, 80.5 @ 288
    • convnext_nano_ols - 80.9 @ 224, 81.6 @ 288
  • ONNXエクスポートの改善、新しいベースバリアントの追加、およびオリジナル(https://github.com/mmaaz60/EdgeNeXt)からの重みの追加により、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 @ 288
    • convnext_nano - 80.8 @ 224, 81.5 @ 288
    • cs3sedarknet_l - 81.2 @ 256, 81.8 @ 288
    • cs3darknet_x - 81.8 @ 256, 82.2 @ 288
    • cs3sedarknet_x - 82.2 @ 256, 82.7 @ 288
    • cs3edgenet_x - 82.2 @ 256, 82.7 @ 288
    • cs3se_edgenet_x - 82.8 @ 256, 83.5 @ 320
  • cs3* の重みはすべて、bits_and_tpu ブランチを使用して TPU で学習されています。TRC プログラムに感謝します!
  • ConvNeXt に output_stride=8 および 16 のサポートを追加(dilation)
  • deit3モデルでpos_embのリサイズができない問題が修正されました
  • Version 0.6.7 PyPiリリース(0.6.5以降の上記のバグ修正と新しい重みを含む)

2022年7月8日

より多くのモデル、より多くの修正

  • 公式リサーチモデル(重み付き)が追加されました:
  • 自分のモデル:
    • リクエストに応じて、basicおよびbottleneckの両方で1ブロックの繰り返しを持つ小さなResNet定義(resnet10およびresnet14)を追加しました
    • CspNetはdataclass設定でリファクタリングされ、CrossStage3(cs3)オプションが簡素化されました。これらはYOLO-v5+のbackbone定義に近づいています。
    • 相対位置のViTのさらなる調整。2つのsrelpos(共有相対位置)モデルを訓練し、クラストークン付きのミディアムサイズモデルも作成しました。
    • EdgeNeXtに代替のダウンサンプルモードを追加し、smallモデルを学習します。元のsmallモデルよりも性能が向上していますが、彼らの新しいUSI学習済み重みには及びません。
  • 独自のモデル重みの結果(すべて ImageNet-1k での学習)
    • resnet10t - 66.5 @ 176, 68.3 @ 224
    • resnet14t - 71.3 @ 176, 72.3 @ 224
    • resnetaa50 - 80.6 @ 224 , 81.6 @ 288
    • darknet53 - 80.0 @ 256, 80.5 @ 288
    • cs3darknet_m - 77.0 @ 256, 77.6 @ 288
    • cs3darknet_focus_m - 76.7 @ 256, 77.3 @ 288
    • cs3darknet_l - 80.4 @ 256, 80.9 @ 288
    • cs3darknet_focus_l - 80.3 @ 256, 80.9 @ 288
    • vit_srelpos_small_patch16_224 - 81.1 @ 224, 82.1 @ 320
    • vit_srelpos_medium_patch16_224 - 82.3 @ 224, 83.1 @ 320
    • vit_relpos_small_patch16_cls_224 - 82.6 @ 224, 83.6 @ 320
    • edgnext_small_rw - 79.6 @ 224, 80.4 @ 320
  • cs3、darknet、およびvit_*relposの重みはすべて、TRCプログラムのおかげでTPU上で学習されました。残りは発熱するGPUで学習されました。
  • Hugging Face Hub 対応の修正が確認済み、デモノートブックは近日公開予定
  • 事前学習済み重み/設定は、ヘッドの適応をサポートしながら、外部(ローカルディスクなど)から読み込むことができます。
  • timm のデータセット/パーサーがスキャンする画像の拡張子を変更する機能を追加しました。詳細は (https://github.com/rwightman/pytorch-image-models/pull/1274#issuecomment-1178303103) を参照してください。
  • 使用するデフォルトの ConvNeXt LayerNorm 実装 F.layer_norm(x.permute(0, 2, 3, 1), ...).permute(0, 3, 1, 2) を介して LayerNorm2d すべてのケースで。一部のハードウェア(CL 付き Ampere など)では以前の独自実装よりやや遅いが、より幅広いハードウェア / PyTorch バージョンの範囲全体で見ると、リグレッションが少なくなる。以前の实装は models/layers/norm.py に LayerNormExp2d として存在する。
    • 一部のハードウェア(CL付きAmpereなど)では以前の独自実装よりやや遅くなりますが、より幅広いハードウェアおよびPyTorchバージョンの範囲全体で見ると、全体的にリグレッションが少なくなっています。
    • 以前の実装はmodels/layers/norm.pyにLayerNormExp2dとして存在します
  • 多数のバグ修正
  • 現在、まもなくリリース予定のPyPi 0.6.x版のテストを行っています
  • LeViTの大規模モデルの事前学習はまだWIP(作業中)であり、蒸留なしではうまく/容易に学習できません。ついに蒸留のサポートを追加する時期が来たのではないでしょうか?
  • ImageNet-22kでの重み学習とファインチューニングは進行中です。マルチウェイト対応の作業も(ゆっくりとですが)進んでいます(重みが非常に多く、ため息が出ます…)。

2022年5月13日

  • (https://github.com/microsoft/Swin-Transformer) から公式の Swin-V2 モデルと重みを追加しました。torchscript に対応するため、整理を行いました。
  • 既存のtimm Swin-V2-CR実装のいくつかのリファクタリングを行います。公式実装に近づけるため、さらにいくつかの部分を調整し、一部の側面をマージするかどうかを判断する予定です。
  • Vision Transformer の相対位置 / 残差 post-norm に関する追加の実験(TRC プログラムのおかげで、すべて TPU で学習)
    • vit_relpos_small_patch16_224 - 81.5 @ 224, 82.5 @ 320 — rel pos, layer scale, no class token, avg pool
    • vit_relpos_medium_patch16_rpn_224 - 82.3 @ 224, 83.1 @ 320 — rel pos + res-post-norm、クラストークンなし、avg pool
    • vit_relpos_medium_patch16_224 - 82.5 @ 224, 83.3 @ 320 — rel pos, layer scale, no class token, avg pool
    • vit_relpos_base_patch16_gapcls_224 - 82.8 @ 224, 83.9 @ 320 — rel pos、layer scale、class token、avg pool(誤って使用)
  • 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日

  • 相対位置(Swin-V2 log-coord)を追加した Vision Transformer の実験(vision_transformer_relpos.py) および Residual Post-Norm 分岐(Swin-V2 由来)(vision_transformer*.py)
    • vit_relpos_base_patch32_plus_rpn_256 - 79.5 @ 256, 80.6 @ 320 — 相対位置エンコーディング + 拡張幅 + Residual Post-Norm、クラストークンなし、平均プーリング
    • vit_relpos_base_patch16_224 - 82.5 @ 224, 83.6 @ 320 — 相対位置、レイヤー スケール、クラス トークンなし、平均プーリング
    • vit_base_patch16_rpn_224 - 82.3 @ 224 — 相対位置エンコーディング + 残差接続後の正規化、クラストークンなし、平均プーリング
  • How to Train Your ViTのような新しい事前学習ではほとんど使用されなくなった、初期のViTでのみ使用されていた表現層を削除するためのVision Transformerのリファクタリング
  • vit_* モデルは、クラストークンの削除、グローバル平均プーリングの使用、および fc_norm(BEiT や MAE に準拠)の使用に対応しています。

2022年4月22日

  • timmモデルは、fast.aiで正式にサポートされました。新しいPractical Deep Learningコースに間に合うよう、timmdocsのドキュメントリンクはtimm.fast.aiに更新されています。
  • TPU 学習で追加されたモデルの重みがさらに 2 つ シリーズ. 一部の In22k 事前学習は進行中です。
    • seresnext101d_32x8d - 83.69 @ 224, 84.35 @ 288
    • seresnextaa101d_32x8d(AvgPool2dによるアンチエイリアス処理済み)- 224で83.85、288で84.57

2022年3月23日

  • ParallelBlock と LayerScale オプションをベースの ViT モデルに追加し、Three things everyone should know about ViT のモデル設定をサポート
  • convnext_tiny_hnf(head norm first)の重みは、A2レシピ(に近いもの)で学習されており、top-1精度は82.2%です。エポック数を増やせばさらに向上する可能性があります。

2022年3月21日

  • norm_norm_norm をマージします。重要 この更新は、今後の 0.6.x リリースに伴い、しばらくの間 master ブランチの安定性を損なう可能性があります。安定性が求められる場合は、ブランチ 0.5.x または以前の 0.5.x リリースを使用できます。
  • この リリース
    • regnety_040 - 82.3 @ 224, 82.96 @ 288
    • regnety_064 - 83.0 @ 224, 83.65 @ 288
    • regnety_080 - 83.17 @ 224, 83.86 @ 288
    • regnetv_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 @ 320
    • regnetz_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 @ 299
    • xception65p - 83.14 @ 299 (timm pre-act)
    • resnext101_64x4d - 82.46 @ 224, 83.16 @ 288
    • seresnext101_32x8d - 83.57 @ 224, 84.270 @ 288
    • resnetrs200 - 83.85 @ 256, 84.44 @ 320
  • HuggingFace hubのサポートを修正し、事前学習モデルの定義と重みに対して代替のconfig sourcesを許可するための初期の基盤を整えました(汎用的なローカルファイル/リモート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モデル
  • EvoNorm、FilterResponseNorm、GroupNormなどの非BatchNormの正規化レイヤーを用いた実験的な取り組み
  • EfficientNet/MobileNetV3、RegNet、および整合性のあるXceptionなど、複数のモデルに追加された代替ノルム+活性化(‘NormAct’)レイヤーへのサポートを強化
  • EfficientNetファミリーへのグループ畳み込みサポートを追加
  • group matching API をすべてのモデルに追加し、layer-wise の LR 減衰を適用するためにモデルのパラメータをグループ化できるようにします。LR スケジューラーに lr スケールを追加
  • 多くのモデルにグラデーションチェックポイントのサポートが追加されました
  • forward_head(x, pre_logits=False) は、forward_features と forward_head を個別に呼び出すことを可能にするため、すべてのモデルに追加された関数です。
  • すべての Vision Transformer および Vision MLP モデルは、CNN モデルとの整合性を保つため、forward_features からプーリングされていない / トークン選択が適用されていない特徴を返すように更新されました。トークン選択またはプーリングは、現在 forward_head で適用されます。

2022年2月2日

  • Chris Hughes が昨日、ブログで timm の包括的な解説を公開しました。一読の価値があります。PyTorch Image Models (timm) の入門: 実務者のためのガイド
  • 現在、 norm_norm_norm ブランチを master (ver 0.6.x) にマージする準備を進めており、来週頃に行う予定です。
    • 変更点は通常より広範囲に及んでおり、一部のモデル API の使用を不安定にしたり壊したりする可能性があります(完全な後方互換性を目標としています)。そのため、pip install git+https://github.com/rwightman/pytorch-image-models によるインストールにはご注意ください。
    • 0.5.x のリリースと 0.5.x ブランチは、状況が落ち着くまで数回の cherry pick を含めて安定した状態を維持されます。安定性を重視される場合は、しばらくの間 pypi からのインストールをおすすめします。

2022年1月14日

  • Version 0.5.4 w/ release を pypi に公開します。前回の pypi 更新からしばらく経っており、リスクの高い変更がまもなく main ブランチにマージされる予定です…
  • 公式実装(https://github.com/facebookresearch/ConvNeXt)の重み付きConvNeXTモデルを追加し、いくつかのパフォーマンス調整を行い、timmの機能と互換性を持たせました
  • いくつかの小型(約180万〜300万パラメータ)/ モバイル向けに最適化されたモデルのトレーニングを試みましたが、いくつかは現時点で良好な結果が出ており、さらに多くのモデルが準備中です…
    • mnasnet_small - 65.6 top-1
    • mobilenetv2_050 - 65.9
    • lcnet_100/075/050 - 72.1 / 68.8 / 63.1
    • semnasnet_075 - 73
    • fbnetv3_b/d/g - 79.1 / 79.7 / 82.0
  • rsomani95 によって追加された TinyNet モデル
  • MobileNetV3アーキテクチャによりLCNetが追加されました
Update on GitHub