timm documentation
変更履歴
変更履歴
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 グラフの修正。 - 使用法、命名規則、およびファミリーを網羅した新しいオプティマイザーのドキュメント。
- RMSpropTF、LaProp、LAMB、LARS、AdaBelief 用の Foreach (multi-tensor) 実装。Foreach ステップはデバイスの L2 キャッシュサイズでチャンク化されます (
- 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日
- モデル定義と事前学習済み重みを追加:
- 並列処理能力が低いデバイス向けの効率的なビジョンバックボーンであるCPUBone。
- PP-LCNetV2。
- LingBot-Vision。
- 非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日
- NAdaMuon による学習でより高性能な
dpwee,dwee,dlittle((微分)ViT を追加し、以前のランよりわずかに性能を向上させました - 約21Mパラメータの
timmCSATv2モデルのバリアントを512x512および640x640で追加- https://huggingface.co/timm/csatv2_21m.sw_r640_in1k(トップ1精度83.13%)
- https://huggingface.co/timm/csatv2_21m.sw_r512_in1k (top-1 82.58%)
__init__から非永続パラメータの初期化を切り出し、メタデバイス初期化後にinit_non_persistent_buffers()経由で外部から呼び出せる共通メソッドとして分離します。
2025年12月12日
- CSATV2モデルを追加(https://github.com/gusdlf93に感謝)— DCT stemとspatial attentionを備えた軽量かつ高解像度のモデルです。https://huggingface.co/Hyunil/CSATv2
- 既存の
timmMuon実装にAdaMuonとNAdaMuonオプティマイザーのサポートを追加しました。画像タスクにおいて、慣れ親しんだハイパーパラメータ設定でAdamWと比較してより競争力があることが示唆されています。 - 年末のPR整理、長期間オープンになっていた複数のPRの各側面をマージ
- 差分注意機構(
DiffAttention), に対応するDiffParallelScalingBlock((ViT用)を追加し、小型の ViT をいくつか学習する - いくつかのプーリングモジュール、
LsePlusとSimPoolを追加しました - クリーンアップおよび
DropBlock2dの最適化(ByobNetベースのモデルへのサポートも追加)
- 差分注意機構(
- ユニットテストの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日
- DINOv3 (https://arxiv.org/abs/2508.10104) ConvNeXt と ViT モデルが追加されました。ConvNeXt モデルは既存の
timmモデルにマッピングされました。ViT のサポートは、EVA ベースモデルと、DINOv3 固有の RoPE 実装に合わせるための新しいRotaryEmbeddingDinoV3によって実現されました - MobileCLIP-2 (https://arxiv.org/abs/2508.20691) のビジョンエンコーダー。新しい MCI3/MCI4 FastViT 変種が追加され、重みが既存の FastViT および B、L/14 ViT にマッピングされました。
- MetaCLIP-2 Worldwide (https://arxiv.org/abs/2507.22062)のViTエンコーダーの重みが追加されました。
- SigLIP-2 (https://arxiv.org/abs/2502.14786) timm NaFlexViT モデル経由で追加された NaFlex ViT エンコーダーの重み。
- その他の修正と貢献
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、timmSBB 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 に公開
| model | img_size | top1 | top5 | param_count |
|---|---|---|---|---|
| vit_large_patch16_rope_mixed_ape_224.naver_in1k | 224 | 84.84 | 97.122 | 304.4 |
| vit_large_patch16_rope_mixed_224.naver_in1k | 224 | 84.828 | 97.116 | 304.2 |
| vit_large_patch16_rope_ape_224.naver_in1k | 224 | 84.65 | 97.154 | 304.37 |
| vit_large_patch16_rope_224.naver_in1k | 224 | 84.648 | 97.122 | 304.17 |
| vit_base_patch16_rope_mixed_ape_224.naver_in1k | 224 | 83.894 | 96.754 | 86.59 |
| vit_base_patch16_rope_mixed_224.naver_in1k | 224 | 83.804 | 96.712 | 86.44 |
| vit_base_patch16_rope_ape_224.naver_in1k | 224 | 83.782 | 96.61 | 86.59 |
| vit_base_patch16_rope_224.naver_in1k | 224 | 83.718 | 96.672 | 86.43 |
| vit_small_patch16_rope_224.naver_in1k | 224 | 81.23 | 95.022 | 21.98 |
| vit_small_patch16_rope_mixed_224.naver_in1k | 224 | 81.216 | 95.022 | 21.99 |
| vit_small_patch16_rope_ape_224.naver_in1k | 224 | 81.004 | 95.016 | 22.06 |
| vit_small_patch16_rope_mixed_ape_224.naver_in1k | 224 | 80.986 | 94.976 | 22.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_in1k 83.67 96.45 86.63 576 naflexvit_base_patch16_parfac_gap.e300_s576_in1k 83.63 96.41 86.46 576 naflexvit_base_patch16_gap.e300_s576_in1k 83.50 96.46 86.63 576 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 です:
- 単一のモジュールに埋め込みと位置エンコーディングをカプセル化
- nn.Linearパッチ埋め込みの、事前パッチ化済み(辞書形式)入力へのサポート
- NaFlexの可変アスペクト比、可変解像度へのサポート(SigLip-2: https://arxiv.org/abs/2502.14786)
- FlexiViTの可変パッチサイズへのサポート(https://arxiv.org/abs/2212.08013)
- 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日
- おかげで、小型で高速なモデルを多数追加しました https://github.com/brianhou0208
- SwiftFormer - (ICCV2023) SwiftFormer: Efficient Additive Attention for Transformer-based Real-time Mobile Vision Applications
- FasterNet - (CVPR2023) Run, Don’t Walk: Chasing Higher FLOPS for Faster Neural Networks
- SHViT - (CVPR2024) SHViT: メモリ効率に優れたシングルヘッドビジョントランスフォーマー
- StarNet - (CVPR2024) Rewrite the Stars
- GhostNet-V3 GhostNetV3: コンパクトモデルのための学習戦略の探求
- EVA ViT(最も近い一致)を更新し、Perception Encoder モデル(https://arxiv.org/abs/2504.13181) )の Meta 版をサポートし、Hub の重みをロードできるようにします。ただし、専用の
timm重みをプッシュする必要があります- ROPEの実装に柔軟性を追加
- 対応するモデル数が大幅に増加しました
forward_intermediates()また、 https://github.com/brianhou0208- DaViT, EdgeNeXt, EfficientFormerV2, EfficientViT(MIT), EfficientViT(MSRA), FocalNet, GCViT, HGNet /V2, InceptionNeXt, Inception-V4, MambaOut, MetaFormer, NesT, Next-ViT, PiT, PVT V2, RepGhostNet, RepViT, ResNetV2, ReXNet, TinyViT, TResNet, VoV
- 新しい重みでTNTモデルを更新しました。https://github.com/brianhou0208 による
forward_intermediates() local-dir:プリトレーニングスキーマを追加しました。モデル名としてlocal-dir:/path/to/model/folderを使用することで、ローカルフォルダーから Hugging Face Hub のモデル(config.json + 重みファイル)のモデル / プリトレーニング設定および重みを取得できます。- ONNXエクスポートの修正と改善
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日
- Kron Optimizer(Kronecker 分解事前条件付き PSGD)を追加
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_nano384x384 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日
- その他のオプティマイザー
- MARSオプティマイザーを追加(https://arxiv.org/abs/2411.10438、https://github.com/AGI-Arena/MARS)
- LaPropオプティマイザーを追加(https://arxiv.org/abs/2002.04839、https://github.com/Z-T-WANG/LaProp-Optimizer)
- Adafactor、Adafactor Big Vision、AdamW (legacy)、Adopt、Lamb、LaProp、Lion、NadamW、RMSPropTF、SGDW に、‘Cautious Optimizers’ (https://arxiv.org/abs/2411.16085、https://github.com/kyleliang919/C-Optim) からのマスキングを追加しました。
- オプティマイザーとファクトリに関するドキュメント文字列と型アノテーションの整理
- in12kで事前学習し、384x384でin1kにファインチューニングされたMobileNet-V4 Conv Mediumモデルを追加
- 高速性に優れた小型の cs3darknet を追加しました
2024年11月12日
- オプティマイザーファクトリのリファクタリング
- 新しいファクトリーは、いくつかの重要な特性を持つOptimInfoデータクラスを使用してオプティマイザーを登録することで動作します
create_optimizer_v2関数の再構築に伴い、list_optimizers、get_optimizer_class、get_optimizer_infoを追加し、オプティマイザーの探索、情報取得、クラス取得を可能にしましたoptim.optim_factoryを非推奨にし、関数をoptim/_optim_factory.pyとoptim/_param_groups.pyに移動し、timm.optim経由でのインポートを推奨する
- Adopt(https://github.com/iShohei220/adopt)オプティマイザーを追加
- 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)です。元の重みとカスタムの変種および重みの組み合わせです。
- SigLIP SO400M ViT を ImageNet-1k @ 378x378 でファインチューニングし、既存の SigLIP 384x384 モデルに 378x378 オプションを追加しました
- vit_so400m_patch14_siglip_378.webli_ft_in1k - 89.42 top-1
- vit_so400m_patch14_siglip_gap_378.webli_ft_in1k - 89.03
- 最近の多言語(i18n)バリアントのSigLIP SO400M ViTエンコーダー、patch16 @ 256x256(https://huggingface.co/timm/ViT-SO400M-16-SigLIP-i18n-256)。OpenCLIPの更新は保留中です。
- ConvNeXt「Zepto」モデルと重みを2つ追加しました(overlapped stem 付きと patch stem 付きの各1つ)。RMSNorm を使用し、以前の「Atto」よりも小さく、パラメータ数は 2.2M です。
- convnext_zepto_rms_ols.ra4_e3600_r224_in1k - 73.20 top-1 @ 224
- convnext_zepto_rms.ra4_e3600_r224_in1k - 72.81 @ 224
2024年9月
- ユニットテストの改善や、リソースが限られたニッチなアプリケーション向けに、小型のテストモデルのスイートを追加しました(https://huggingface.co/blog/rwightman/timm-tiny-test)
- MobileNetV4-Conv-Small (0.5x) モデルを追加 (https://huggingface.co/posts/rwightman/793053396198664)
- mobilenetv4_conv_small_050.e3000_r224_in1k - 65.81 top-1 @ 256, 64.76 @ 224
- MNV4 Small レシピで学習した MobileNetV3-Large のバリアントを追加
- mobilenetv3_large_150d.ra4_e3600_r256_in1k - 81.81 @ 320, 80.94 @ 256
- mobilenetv3_large_100.ra4_e3600_r224_in1k - 77.16 @ 256, 76.31 @ 224
2024年8月21日
- ImageNet-12kで学習し、ImageNet-1kでファインチューニングされた更新版のSBB ViTモデルは、より大きくて遅い多くのモデルに挑戦しています
| model | top1 | top5 | 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 |
- MobileNet-V1 1.25、EfficientNet-B1、およびMNV4ベースラインチャレンジレシピを用いたResNet50-Dの重み
| model | top1 | top5 | param_count | img_size |
|---|---|---|---|---|
| resnet50d.ra4_e3600_r224_in1k | 81.838 | 95.922 | 25.58 | 288 |
| efficientnet_b1.ra4_e3600_r240_in1k | 81.440 | 95.700 | 7.79 | 288 |
| resnet50d.ra4_e3600_r224_in1k | 80.952 | 95.384 | 25.58 | 224 |
| efficientnet_b1.ra4_e3600_r240_in1k | 80.406 | 95.152 | 7.79 | 240 |
| mobilenetv1_125.ra4_e3600_r224_in1k | 77.600 | 93.804 | 6.27 | 256 |
| mobilenetv1_125.ra4_e3600_r224_in1k | 76.924 | 93.234 | 6.27 | 224 |
- SAM2 (HieraDet) バックボーンアーキテクチャおよび重みの読み込みサポートを追加
- in12kでabswin位置埋め込みを用いて学習し、1kでファインチューニングしたHiera Smallの重みを追加
| model | top1 | top5 | 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 |
2024年8月8日
- RDNet(‘DenseNets Reloaded’、https://arxiv.org/abs/2403.19588)を追加しました。Donghyun Kim さん、ありがとうございます。
2024年7月28日
mobilenet_edgetpu_v2_mの重みに、ra4mnv4-small ベースのレシピを追加しました。top-1 は 224 で 80.1%、256 で 80.7% です。- リリース 1.0.8
2024年7月26日
- MobileNet-v4の追加の重み、ImageNet-12kでの事前学習とファインチューニング、およびアンチエイリアス付きConvLargeモデル
| model | top1 | top1_err | top5 | top5_err | 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)
| model | top1 | top1_err | top5 | top5_err | param_count | img_size |
|---|---|---|---|---|---|---|
| efficientnet_b0.ra4_e3600_r224_in1k | 79.364 | 20.636 | 94.754 | 5.246 | 5.29 | 256 |
| efficientnet_b0.ra4_e3600_r224_in1k | 78.584 | 21.416 | 94.338 | 5.662 | 5.29 | 224 |
| mobilenetv1_100h.ra4_e3600_r224_in1k | 76.596 | 23.404 | 93.272 | 6.728 | 5.28 | 256 |
| mobilenetv1_100.ra4_e3600_r224_in1k | 76.094 | 23.906 | 93.004 | 6.996 | 4.23 | 256 |
| mobilenetv1_100h.ra4_e3600_r224_in1k | 75.662 | 24.338 | 92.504 | 7.496 | 5.28 | 224 |
| mobilenetv1_100.ra4_e3600_r224_in1k | 75.382 | 24.618 | 92.312 | 7.688 | 4.23 | 224 |
- モデル作成後に画像サイズ、パッチサイズ、ウィンドウサイズを変更できるようにするため、
set_input_size()のプロトタイプをvitおよびswin v1/v2モデルに追加しました。 - swin における異なるサイズ処理へのサポートが強化されました。
set_input_sizeに加えて、always_partitionおよびstrict_img_size引数が__init__に追加され、より柔軟な入力サイズの制約を可能にしました。 - 中間のGetterフィーチャーラッパーのインデックス情報が順序通りにない問題を修正し、同様に範囲インデックスまたはチェックアウトインデックスを確認します。
- テスト用に、実際にImageNet-1kで学習された
tiny(パラメータ数0.5M未満)のモデルを複数追加
| model | top1 | top1_err | top5 | top5_err | param_count | img_size | crop_pct |
|---|---|---|---|---|---|---|---|
| test_efficientnet.r160_in1k | 47.156 | 52.844 | 71.726 | 28.274 | 0.36 | 192 | 1.0 |
| test_byobnet.r160_in1k | 46.698 | 53.302 | 71.674 | 28.326 | 0.46 | 192 | 1.0 |
| test_efficientnet.r160_in1k | 46.426 | 53.574 | 70.928 | 29.072 | 0.36 | 160 | 0.875 |
| test_byobnet.r160_in1k | 45.378 | 54.622 | 70.572 | 29.428 | 0.46 | 160 | 0.875 |
| test_vit.r160_in1k | 42.0 | 58.0 | 68.664 | 31.336 | 0.37 | 192 | 1.0 |
| test_vit.r160_in1k | 40.822 | 59.178 | 67.212 | 32.788 | 0.37 | 160 | 0.875 |
- vit reg token の初期化を修正しました。Promisery さん、ありがとうございます。
- その他の修正
2024年6月24日
- 異なるMQA重み初期化スキームを持つMobileNetV4ハイブリッド重みがさらに3つ
| model | top1 | top1_err | top5 | top5_err | 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の重み読み込み
2024年6月12日
- MobileNetV4モデルと、
timmで学習された初期の重みセットが追加されました:
- 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 の間のモデル形状を探索しています。
| model | top1 | top5 | 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 | N/A | N/A | 64.11 | 256 |
| vit_betwixt_patch16_reg4_gap_256.sbb_in12k | N/A | N/A | 60.4 | 256 |
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への最近のtimmImageNetアップロードでテストしました - 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日
- Hugging Face Hub ベースの timm モデルに対して、
model_args設定エントリを介して大幅な柔軟性が追加されました。model_argsは、モデルの作成時に kwargs として渡されます。 - 最新のモデルで、imagenetの評価用およびテストセットのCSVファイルを更新しました
vision_transformer.pyの型付けとドキュメントの整理 by Laureηt- 0.9.11リリース
2023年11月3日
- DFN (Data Filtering Networks)およびMetaCLIPのViT重みが追加されました
- DINOv2の「register」ViTモデルの重みが追加されました(https://huggingface.co/papers/2309.16588、https://huggingface.co/papers/2304.07193)
- OpenAI、DFN、MetaCLIPの重みで使用されている
quickgeluViTバリアントを追加(効率は低い) - Aryan による貢献により、ResNetおよびMobileNet-v3に改善された型付けが追加されました
- ImageNet-12kでファインチューニング済み(LAION-2B CLIPから)
convnext_xxlarge - 0.9.9リリース
2023年10月20日
- SigLIP のイメージタワーの重みが
vision_transformer.py.- ファインチューニングや下流タスクでの機能利用において、大きな可能性を秘めています。
- Vision Transformers Need Registers に従った vit モデルにおける実験的な「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日
- 前回リリース以降、多くの新しいモデルが追加されました
- FastViT - https://arxiv.org/abs/2303.14189
- MobileOne - https://arxiv.org/abs/2206.04040
- InceptionNeXt - https://arxiv.org/abs/2303.16900
- RepGhostNet - https://arxiv.org/abs/2211.06088 (https://github.com/ChengpengChen ありがとうございます)
- GhostNetV2 - https://arxiv.org/abs/2211.12905(https://github.com/yehuitang さん、ありがとうございます)
- EfficientViT (MSRA) - https://arxiv.org/abs/2305.07027 (https://github.com/seefun さん、ありがとうございます)
- EfficientViT (MIT) - https://arxiv.org/abs/2205.14756 (https://github.com/seefun さん、ありがとうございます)
- 追加
--reparam引数をbenchmark.py,onnx_export.py, およびvalidate.pyに追加し、以下のいずれかのreparameterize(),switch_to_deploy()またはfuse()- FastViT、MobileOne、RepGhostNet、EfficientViT (MSRA)、RepViT、RepVGG、LeViT を含む
- 0.9.6「新学期」リリースの準備
2023年8月11日
- Swin、MaxViT、CoAtNet、BEiTモデルは、事前学習済み重みの適応を伴う画像/ウィンドウサイズのリサイズを、作成時にサポートしています
- 非正方形のリサイズでテストするための検証コマンドの例
python validate.py --data-dir /imagenet --model swin_base_patch4_window7_224.ms_in22k_ft_in1k --amp --amp-dtype bfloat16 --input-size 3 256 320 --model-kwargs window_size=8,10 img_size=256,320
2023年8月3日
- HRNet w18_smallおよびw18_small_v2のGluonCV重みを追加しました。SeeFunによって変換されました。
selecsls*モデルの命名に関するリグレッションを修正- ViT/EVA における 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日
timm0.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 @ 288resnetaa101d.sw_in12k_ft_in1k- 83.5 @ 224, 84.1 @ 288seresnextaa101d_32x8d.sw_in12k_ft_in1k- 86.0 @ 224, 86.5 @ 288seresnextaa101d_32x8d.sw_in12k_ft_in1k_288- 86.5 @ 288, 86.7 @ 320
2023年3月31日
- ConvNext-XXLarge CLIP の IN-1k 微調整および convnext-base/large CLIP モデル用の IN-12k 中間微調整を最初に追加しました。
| model | top1 | top5 | img_size | param_count | gmacs | macts |
|---|---|---|---|---|---|---|
| convnext_xxlarge.clip_laion2b_soup_ft_in1k | 88.612 | 98.704 | 256 | 846.47 | 198.09 | 124.45 |
| convnext_large_mlp.clip_laion2b_soup_ft_in12k_in1k_384 | 88.312 | 98.578 | 384 | 200.13 | 101.11 | 126.74 |
| convnext_large_mlp.clip_laion2b_soup_ft_in12k_in1k_320 | 87.968 | 98.47 | 320 | 200.13 | 70.21 | 88.02 |
| convnext_base.clip_laion2b_augreg_ft_in12k_in1k_384 | 87.138 | 98.212 | 384 | 88.59 | 45.21 | 84.49 |
| convnext_base.clip_laion2b_augreg_ft_in12k_in1k | 86.344 | 97.97 | 256 | 88.59 | 20.09 | 37.55 |
- EVA-02 MIMの事前学習済みおよびファインチューニング済み重みを追加し、HFハブにプッシュして、すべてのEVAモデルのモデルカードを更新しました。トップ1精度が90%を超える最初のモデル(トップ5精度99%)です!MIMとCLIPを多くのモデル、データセット、および学習レシピの調整と組み合わせる彼らの作業の詳細については、元のコードと重みをhttps://github.com/baaivision/EVAでご覧いただけます。
| model | top1 | top5 | param_count | img_size |
|---|---|---|---|---|
| eva02_large_patch14_448.mim_m38m_ft_in22k_in1k | 90.054 | 99.042 | 305.08 | 448 |
| eva02_large_patch14_448.mim_in22k_ft_in22k_in1k | 89.946 | 99.01 | 305.08 | 448 |
| eva_giant_patch14_560.m30m_ft_in22k_in1k | 89.792 | 98.992 | 1014.45 | 560 |
| eva02_large_patch14_448.mim_in22k_ft_in1k | 89.626 | 98.954 | 305.08 | 448 |
| eva02_large_patch14_448.mim_m38m_ft_in1k | 89.57 | 98.918 | 305.08 | 448 |
| eva_giant_patch14_336.m30m_ft_in22k_in1k | 89.56 | 98.956 | 1013.01 | 336 |
| eva_giant_patch14_336.clip_ft_in1k | 89.466 | 98.82 | 1013.01 | 336 |
| eva_large_patch14_336.in22k_ft_in22k_in1k | 89.214 | 98.854 | 304.53 | 336 |
| eva_giant_patch14_224.clip_ft_in1k | 88.882 | 98.678 | 1012.56 | 224 |
| eva02_base_patch14_448.mim_in22k_ft_in22k_in1k | 88.692 | 98.722 | 87.12 | 448 |
| eva_large_patch14_336.in22k_ft_in1k | 88.652 | 98.722 | 304.53 | 336 |
| eva_large_patch14_196.in22k_ft_in22k_in1k | 88.592 | 98.656 | 304.14 | 196 |
| eva02_base_patch14_448.mim_in22k_ft_in1k | 88.23 | 98.564 | 87.12 | 448 |
| eva_large_patch14_196.in22k_ft_in1k | 87.934 | 98.504 | 304.14 | 196 |
| eva02_small_patch14_336.mim_in22k_ft_in1k | 85.74 | 97.614 | 22.13 | 336 |
| eva02_tiny_patch14_336.mim_in22k_ft_in1k | 80.658 | 95.524 | 5.76 | 336 |
- DeiTおよびMLP-Mixerベースのモデル向けのマルチウェイトとHFハブ
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 @ 288rexnetr_300.sw_in12k_ft_in1k- 84.0 @ 224, 84.5 @ 288regnety_120.sw_in12k_ft_in1k- 85.0 @ 224, 85.4 @ 288regnety_160.lion_in12k_ft_in1k- 85.6 @ 224, 86.0 @ 288regnety_160.sw_in12k_ft_in1k- 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% @ 256x256convnext_base.clip_laiona_augreg_ft_in1k_384- 86.5% @ 384x384convnext_large_mlp.clip_laion2b_augreg_ft_in1k- 87.3% @ 256x256convnext_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のサポートを追加しました。重みのリマップが必要です。
- 新しい EfficientFormer-V2 アーキテクチャ。元の (https://github.com/snap-research/EfficientFormer) から大幅にリファクタリングされています。
- ImageNetのメタデータ(synsets、indices)を
/resultsからtimm/data/_infoに移動します。 - に ImageNetInfo / DatasetInfo クラスを追加し、ImageNet クラシファイアのさまざまなレイアウトにラベリングを提供します
timminference.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 @ 384convnext_small.in12k_ft_in1k_384- 86.2 @ 384
すべてのMaxxViTの重みをHFハブにプッシュし、
rwベースのMaxViTおよびCoAtNet 1/2モデル用に、ImageNet-12k -> 1kのファインチューニングを追加します
| model | top1 | top5 | サンプル/秒 | パラメータ数 (M) | GMAC | Act (M) |
|---|---|---|---|---|---|---|
| maxvit_xlarge_tf_512.in21k_ft_in1k | 88.53 | 98.64 | 21.76 | 475.77 | 534.14 | 1413.22 |
| maxvit_xlarge_tf_384.in21k_ft_in1k | 88.32 | 98.54 | 42.53 | 475.32 | 292.78 | 668.76 |
| maxvit_base_tf_512.in21k_ft_in1k | 88.20 | 98.53 | 50.87 | 119.88 | 138.02 | 703.99 |
| maxvit_large_tf_512.in21k_ft_in1k | 88.04 | 98.40 | 36.42 | 212.33 | 244.75 | 942.15 |
| maxvit_large_tf_384.in21k_ft_in1k | 87.98 | 98.56 | 71.75 | 212.03 | 132.55 | 445.84 |
| maxvit_base_tf_384.in21k_ft_in1k | 87.92 | 98.54 | 104.71 | 119.65 | 73.80 | 332.90 |
| maxvit_rmlp_base_rw_384.sw_in12k_ft_in1k | 87.81 | 98.37 | 106.55 | 116.14 | 70.97 | 318.95 |
| maxxvitv2_rmlp_base_rw_384.sw_in12k_ft_in1k | 87.47 | 98.37 | 149.49 | 116.09 | 72.98 | 213.74 |
| coatnet_rmlp_2_rw_384.sw_in12k_ft_in1k | 87.39 | 98.31 | 160.80 | 73.88 | 47.69 | 209.43 |
| maxvit_rmlp_base_rw_224.sw_in12k_ft_in1k | 86.89 | 98.02 | 375.86 | 116.14 | 23.15 | 92.64 |
| maxxvitv2_rmlp_base_rw_224.sw_in12k_ft_in1k | 86.64 | 98.02 | 501.03 | 116.09 | 24.20 | 62.77 |
| maxvit_base_tf_512.in1k | 86.60 | 97.92 | 50.75 | 119.88 | 138.02 | 703.99 |
| coatnet_2_rw_224.sw_in12k_ft_in1k | 86.57 | 97.89 | 631.88 | 73.87 | 15.09 | 49.22 |
| maxvit_large_tf_512.in1k | 86.52 | 97.88 | 36.04 | 212.33 | 244.75 | 942.15 |
| coatnet_rmlp_2_rw_224.sw_in12k_ft_in1k | 86.49 | 97.90 | 620.58 | 73.88 | 15.18 | 54.78 |
| maxvit_base_tf_384.in1k | 86.29 | 97.80 | 101.09 | 119.65 | 73.80 | 332.90 |
| maxvit_large_tf_384.in1k | 86.23 | 97.69 | 70.56 | 212.03 | 132.55 | 445.84 |
| maxvit_small_tf_512.in1k | 86.10 | 97.76 | 88.63 | 69.13 | 67.26 | 383.77 |
| maxvit_tiny_tf_512.in1k | 85.67 | 97.58 | 144.25 | 31.05 | 33.49 | 257.59 |
| maxvit_small_tf_384.in1k | 85.54 | 97.46 | 188.35 | 69.02 | 35.87 | 183.65 |
| maxvit_tiny_tf_384.in1k | 85.11 | 97.38 | 293.46 | 30.98 | 17.53 | 123.42 |
| maxvit_large_tf_224.in1k | 84.93 | 96.97 | 247.71 | 211.79 | 43.68 | 127.35 |
| coatnet_rmlp_1_rw2_224.sw_in12k_ft_in1k | 84.90 | 96.96 | 1025.45 | 41.72 | 8.11 | 40.13 |
| maxvit_base_tf_224.in1k | 84.85 | 96.99 | 358.25 | 119.47 | 24.04 | 95.01 |
| maxxvit_rmlp_small_rw_256.sw_in1k | 84.63 | 97.06 | 575.53 | 66.01 | 14.67 | 58.38 |
| coatnet_rmlp_2_rw_224.sw_in1k | 84.61 | 96.74 | 625.81 | 73.88 | 15.18 | 54.78 |
| maxvit_rmlp_small_rw_224.sw_in1k | 84.49 | 96.76 | 693.82 | 64.90 | 10.75 | 49.30 |
| maxvit_small_tf_224.in1k | 84.43 | 96.83 | 647.96 | 68.93 | 11.66 | 53.17 |
| maxvit_rmlp_tiny_rw_256.sw_in1k | 84.23 | 96.78 | 807.21 | 29.15 | 6.77 | 46.92 |
| coatnet_1_rw_224.sw_in1k | 83.62 | 96.38 | 989.59 | 41.72 | 8.04 | 34.60 |
| maxvit_tiny_rw_224.sw_in1k | 83.50 | 96.50 | 1100.53 | 29.06 | 5.11 | 33.11 |
| maxvit_tiny_tf_224.in1k | 83.41 | 96.59 | 1004.94 | 30.92 | 5.60 | 35.78 |
| coatnet_rmlp_1_rw_224.sw_in1k | 83.36 | 96.45 | 1093.03 | 41.69 | 7.85 | 35.47 |
| maxxvitv2_nano_rw_256.sw_in1k | 83.11 | 96.33 | 1276.88 | 23.70 | 6.26 | 23.05 |
| maxxvit_rmlp_nano_rw_256.sw_in1k | 83.03 | 96.34 | 1341.24 | 16.78 | 4.37 | 26.05 |
| maxvit_rmlp_nano_rw_256.sw_in1k | 82.96 | 96.26 | 1283.24 | 15.50 | 4.47 | 31.92 |
| maxvit_nano_rw_256.sw_in1k | 82.93 | 96.23 | 1218.17 | 15.45 | 4.46 | 30.28 |
| coatnet_bn_0_rw_224.sw_in1k | 82.39 | 96.19 | 1600.14 | 27.44 | 4.67 | 22.04 |
| coatnet_0_rw_224.sw_in1k | 82.39 | 95.84 | 1831.21 | 27.44 | 4.43 | 18.73 |
| coatnet_rmlp_nano_rw_224.sw_in1k | 82.05 | 95.87 | 2109.09 | 15.15 | 2.62 | 20.34 |
| coatnext_nano_rw_224.sw_in1k | 81.95 | 95.92 | 2525.52 | 14.70 | 2.47 | 12.80 |
| coatnet_nano_rw_224.sw_in1k | 81.70 | 95.64 | 2344.52 | 15.14 | 2.41 | 15.41 |
| maxvit_rmlp_pico_rw_256.sw_in1k | 80.53 | 95.21 | 1594.71 | 7.52 | 1.85 | 24.86 |
2023年1月11日
- ConvNeXt ImageNet-12k 事前学習シリーズを更新し、2 つの新しいファインチューニング済み重み(および事前 FT
.in12kタグ)を追加しましたconvnext_nano.in12k_ft_in1k- 82.3 @ 224, 82.9 @ 288 (以前にリリース済み)convnext_tiny.in12k_ft_in1k- 84.2 @ 224, 84.5 @ 288convnext_small.in12k_ft_in1k- 85.2 @ 224, 85.3 @ 288
2023年1月6日
- ついに
--model-kwargsと--opt-kwargsをスクリプトに追加し、コマンドラインからモデルクラスに稀な引数を直接渡せるようにしましたtrain.py --data-dir /imagenet --model resnet50 --amp --model-kwargs output_stride=16 act_layer=silutrain.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日
- 既存の
convnext.py- 論文: ConvNeXt V2: Masked Autoencoders と ConvNets の共同設計とスケーリング
- 参考実装: https://github.com/facebookresearch/ConvNeXt-V2 (注: 重みは現在 CC-BY-NC ライセンスです) @dataclass
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 @ 448x448vit_medium_patch16_gap_384.in12k_ft_in1k- 85.5 @ 384x384vit_medium_patch16_gap_256.in12k_ft_in1k- 84.5 @ 256x256convnext_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 を中間として使用)
| model | top1 | param_count | gmac | macts | hub |
|---|---|---|---|---|---|
| eva_large_patch14_336.in22k_ft_in22k_in1k | 89.2 | 304.5 | 191.1 | 270.2 | リンク |
| eva_large_patch14_336.in22k_ft_in1k | 88.7 | 304.5 | 191.1 | 270.2 | リンク |
| eva_large_patch14_196.in22k_ft_in22k_in1k | 88.6 | 304.1 | 61.6 | 63.5 | リンク |
| eva_large_patch14_196.in22k_ft_in1k | 87.9 | 304.1 | 61.6 | 63.5 | リンク |
2022年12月6日
- 「EVA g」、MIM事前学習とCLIP事前学習の両方を含むBEiTスタイルのViT-g/14モデルの重みを追加
beit.py.
| model | top1 | param_count | gmac | macts | hub |
|---|---|---|---|---|---|
| eva_giant_patch14_560.m30m_ft_in22k_in1k | 89.8 | 1014.4 | 1906.8 | 2577.2 | リンク |
| eva_giant_patch14_336.m30m_ft_in22k_in1k | 89.6 | 1013 | 620.6 | 550.7 | リンク |
| eva_giant_patch14_336.clip_ft_in1k | 89.4 | 1013 | 620.6 | 550.7 | リンク |
| eva_giant_patch14_224.clip_ft_in1k | 89.1 | 1012.6 | 267.2 | 192.6 | リンク |
2022年12月5日
- プレリリース (
0.8.0dev0) マルチウェイト対応 (model_arch.pretrained_tag). でインストールします。pip install --pre timm- vision_transformer、maxvit、convnext がサポート対応の最初の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画像タワーの重みの完全なセットを追加します
| model | top1 | param_count | gmac | macts | hub |
|---|---|---|---|---|---|
| vit_huge_patch14_clip_336.laion2b_ft_in12k_in1k | 88.6 | 632.5 | 391 | 407.5 | リンク |
| vit_large_patch14_clip_336.openai_ft_in12k_in1k | 88.3 | 304.5 | 191.1 | 270.2 | リンク |
| vit_huge_patch14_clip_224.laion2b_ft_in12k_in1k | 88.2 | 632 | 167.4 | 139.4 | リンク |
| vit_large_patch14_clip_336.laion2b_ft_in12k_in1k | 88.2 | 304.5 | 191.1 | 270.2 | リンク |
| vit_large_patch14_clip_224.openai_ft_in12k_in1k | 88.2 | 304.2 | 81.1 | 88.8 | リンク |
| vit_large_patch14_clip_224.laion2b_ft_in12k_in1k | 87.9 | 304.2 | 81.1 | 88.8 | リンク |
| vit_large_patch14_clip_224.openai_ft_in1k | 87.9 | 304.2 | 81.1 | 88.8 | リンク |
| vit_large_patch14_clip_336.laion2b_ft_in1k | 87.9 | 304.5 | 191.1 | 270.2 | リンク |
| vit_huge_patch14_clip_224.laion2b_ft_in1k | 87.6 | 632 | 167.4 | 139.4 | リンク |
| vit_large_patch14_clip_224.laion2b_ft_in1k | 87.3 | 304.2 | 81.1 | 88.8 | リンク |
| vit_base_patch16_clip_384.laion2b_ft_in12k_in1k | 87.2 | 86.9 | 55.5 | 101.6 | リンク |
| vit_base_patch16_clip_384.openai_ft_in12k_in1k | 87 | 86.9 | 55.5 | 101.6 | リンク |
| vit_base_patch16_clip_384.laion2b_ft_in1k | 86.6 | 86.9 | 55.5 | 101.6 | リンク |
| vit_base_patch16_clip_384.openai_ft_in1k | 86.2 | 86.9 | 55.5 | 101.6 | リンク |
| vit_base_patch16_clip_224.laion2b_ft_in12k_in1k | 86.2 | 86.6 | 17.6 | 23.9 | リンク |
| vit_base_patch16_clip_224.openai_ft_in12k_in1k | 85.9 | 86.6 | 17.6 | 23.9 | リンク |
| vit_base_patch32_clip_448.laion2b_ft_in12k_in1k | 85.8 | 88.3 | 17.9 | 23.9 | リンク |
| vit_base_patch16_clip_224.laion2b_ft_in1k | 85.5 | 86.6 | 17.6 | 23.9 | リンク |
| vit_base_patch32_clip_384.laion2b_ft_in12k_in1k | 85.4 | 88.3 | 13.1 | 16.5 | リンク |
| vit_base_patch16_clip_224.openai_ft_in1k | 85.3 | 86.6 | 17.6 | 23.9 | リンク |
| vit_base_patch32_clip_384.openai_ft_in12k_in1k | 85.2 | 88.3 | 13.1 | 16.5 | リンク |
| vit_base_patch32_clip_224.laion2b_ft_in12k_in1k | 83.3 | 88.2 | 4.4 | 5 | リンク |
| vit_base_patch32_clip_224.laion2b_ft_in1k | 82.6 | 88.2 | 4.4 | 5 | リンク |
| vit_base_patch32_clip_224.openai_ft_in1k | 81.9 | 88.2 | 4.4 | 5 | リンク |
- 公式実装の https://github.com/google-research/maxvit
- アップスケールされた384/512のin21kファインチューニング重みでは、予想より大きな性能低下が見られ、詳細が欠落している可能性があります。ただし、21k FTは小さな前処理に対して敏感であることが確認されました。
| model | top1 | param_count | gmac | macts | hub |
|---|---|---|---|---|---|
| maxvit_xlarge_tf_512.in21k_ft_in1k | 88.5 | 475.8 | 534.1 | 1413.2 | リンク |
| maxvit_xlarge_tf_384.in21k_ft_in1k | 88.3 | 475.3 | 292.8 | 668.8 | リンク |
| maxvit_base_tf_512.in21k_ft_in1k | 88.2 | 119.9 | 138 | 704 | リンク |
| maxvit_large_tf_512.in21k_ft_in1k | 88 | 212.3 | 244.8 | 942.2 | リンク |
| maxvit_large_tf_384.in21k_ft_in1k | 88 | 212 | 132.6 | 445.8 | リンク |
| maxvit_base_tf_384.in21k_ft_in1k | 87.9 | 119.6 | 73.8 | 332.9 | リンク |
| maxvit_base_tf_512.in1k | 86.6 | 119.9 | 138 | 704 | リンク |
| maxvit_large_tf_512.in1k | 86.5 | 212.3 | 244.8 | 942.2 | リンク |
| maxvit_base_tf_384.in1k | 86.3 | 119.6 | 73.8 | 332.9 | リンク |
| maxvit_large_tf_384.in1k | 86.2 | 212 | 132.6 | 445.8 | リンク |
| maxvit_small_tf_512.in1k | 86.1 | 69.1 | 67.3 | 383.8 | リンク |
| maxvit_tiny_tf_512.in1k | 85.7 | 31 | 33.5 | 257.6 | リンク |
| maxvit_small_tf_384.in1k | 85.5 | 69 | 35.9 | 183.6 | リンク |
| maxvit_tiny_tf_384.in1k | 85.1 | 31 | 17.5 | 123.4 | リンク |
| maxvit_large_tf_224.in1k | 84.9 | 211.8 | 43.7 | 127.4 | リンク |
| maxvit_base_tf_224.in1k | 84.9 | 119.5 | 24 | 95 | リンク |
| maxvit_small_tf_224.in1k | 84.4 | 68.9 | 11.7 | 53.2 | リンク |
| maxvit_tiny_tf_224.in1k | 83.4 | 30.9 | 5.6 | 35.8 | リンク |
2022年10月15日
- 学習および検証スクリプトの強化
- GPU以外(つまりCPU)のデバイスサポート
- 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 @ 288convnext_atto_ols- 75.9 @ 224, 77.2 @ 288
2022年8月5日
- 重み付きのより小さいカスタム ConvNeXt モデル定義
convnext_femto- 77.5 @ 224, 78.7 @ 288convnext_femto_ols- 77.9 @ 224, 78.9 @ 288convnext_pico- 79.5 @ 224, 80.4 @ 288convnext_pico_ols- 79.5 @ 224, 80.5 @ 288convnext_nano_ols- 80.9 @ 224, 81.6 @ 288
- 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 @ 288convnext_nano- 80.8 @ 224, 81.5 @ 288cs3sedarknet_l- 81.2 @ 256, 81.8 @ 288cs3darknet_x- 81.8 @ 256, 82.2 @ 288cs3sedarknet_x- 82.2 @ 256, 82.7 @ 288cs3edgenet_x- 82.2 @ 256, 82.7 @ 288cs3se_edgenet_x- 82.8 @ 256, 83.5 @ 320
cs3*の重みはすべて、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日
より多くのモデル、より多くの修正
- 公式リサーチモデル(重み付き)が追加されました:
- (https://github.com/mmaaz60/EdgeNeXt)のEdgeNeXt
- (https://github.com/apple/ml-cvnets) からの MobileViT-V2
- DeiT III (Revenge of the ViT) from (https://github.com/facebookresearch/deit)
- 自分のモデル:
- リクエストに応じて、basicおよびbottleneckの両方で1ブロックの繰り返しを持つ小さな
ResNet定義(resnet10およびresnet14)を追加しました CspNetはdataclass設定でリファクタリングされ、CrossStage3(cs3)オプションが簡素化されました。これらはYOLO-v5+のbackbone定義に近づいています。- 相対位置のViTのさらなる調整。2つの
srelpos(共有相対位置)モデルを訓練し、クラストークン付きのミディアムサイズモデルも作成しました。 - EdgeNeXtに代替のダウンサンプルモードを追加し、
smallモデルを学習します。元のsmallモデルよりも性能が向上していますが、彼らの新しいUSI学習済み重みには及びません。
- リクエストに応じて、basicおよびbottleneckの両方で1ブロックの繰り返しを持つ小さな
- 独自のモデル重みの結果(すべて ImageNet-1k での学習)
resnet10t- 66.5 @ 176, 68.3 @ 224resnet14t- 71.3 @ 176, 72.3 @ 224resnetaa50- 80.6 @ 224 , 81.6 @ 288darknet53- 80.0 @ 256, 80.5 @ 288cs3darknet_m- 77.0 @ 256, 77.6 @ 288cs3darknet_focus_m- 76.7 @ 256, 77.3 @ 288cs3darknet_l- 80.4 @ 256, 80.9 @ 288cs3darknet_focus_l- 80.3 @ 256, 80.9 @ 288vit_srelpos_small_patch16_224- 81.1 @ 224, 82.1 @ 320vit_srelpos_medium_patch16_224- 82.3 @ 224, 83.1 @ 320vit_relpos_small_patch16_cls_224- 82.6 @ 224, 83.6 @ 320edgnext_small_rw- 79.6 @ 224, 80.4 @ 320
cs3、darknet、およびvit_*relposの重みはすべて、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 に対応するため、整理を行いました。
- 既存の
timmSwin-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 poolvit_relpos_medium_patch16_rpn_224- 82.3 @ 224, 83.1 @ 320 — rel pos + res-post-norm、クラストークンなし、avg poolvit_relpos_medium_patch16_224- 82.5 @ 224, 83.3 @ 320 — rel pos, layer scale, no class token, avg poolvit_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 @ 288seresnextaa101d_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 @ 288regnety_064- 83.0 @ 224, 83.65 @ 288regnety_080- 83.17 @ 224, 83.86 @ 288regnetv_040- 82.44 @ 224, 83.18 @ 288 (timm pre-act)regnetv_064- 83.1 @ 224, 83.71 @ 288 (timm pre-act)regnetz_040- 83.67 @ 256, 84.25 @ 320regnetz_040h- 83.77 @ 256, 84.5 @ 320 (ヘッドに追加の fc を使用)resnetv2_50d_gn- 80.8 @ 224, 81.96 @ 288 (pre-act GroupNorm)resnetv2_50d_evos80.77 @ 224、82.04 @ 288 (pre-act EvoNormS)regnetz_c16_evos- 81.9 @ 256、82.64 @ 320 (EvoNormS)regnetz_d8_evos- 83.42 @ 256、84.04 @ 320 (EvoNormS)xception41p- 82 @ 299 (timm pre-act)xception65- 83.17 @ 299xception65p- 83.14 @ 299 (timm pre-act)resnext101_64x4d- 82.46 @ 224, 83.16 @ 288seresnext101_32x8d- 83.57 @ 224, 84.270 @ 288resnetrs200- 83.85 @ 256, 84.44 @ 320
- HuggingFace hubのサポートを修正し、事前学習モデルの定義と重みに対して代替の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 からのインストールをおすすめします。
- 変更点は通常より広範囲に及んでおり、一部のモデル API の使用を不安定にしたり壊したりする可能性があります(完全な後方互換性を目標としています)。そのため、
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-1mobilenetv2_050- 65.9lcnet_100/075/050- 72.1 / 68.8 / 63.1semnasnet_075- 73fbnetv3_b/d/g- 79.1 / 79.7 / 82.0
- rsomani95 によって追加された TinyNet モデル
- MobileNetV3アーキテクチャによりLCNetが追加されました
2023年1月5日
- 既存の
convnext.py- 論文: ConvNeXt V2: Masked Autoencoders と ConvNets の共同設計とスケーリング
- 参考実装: https://github.com/facebookresearch/ConvNeXt-V2 (注: 重みは現在 CC-BY-NC ライセンスです)
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 @ 448x448vit_medium_patch16_gap_384.in12k_ft_in1k- 85.5 @ 384x384vit_medium_patch16_gap_256.in12k_ft_in1k- 84.5 @ 256x256convnext_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 を中間として使用)
| model | top1 | param_count | gmac | macts | hub |
|---|---|---|---|---|---|
| eva_large_patch14_336.in22k_ft_in22k_in1k | 89.2 | 304.5 | 191.1 | 270.2 | リンク |
| eva_large_patch14_336.in22k_ft_in1k | 88.7 | 304.5 | 191.1 | 270.2 | リンク |
| eva_large_patch14_196.in22k_ft_in22k_in1k | 88.6 | 304.1 | 61.6 | 63.5 | リンク |
| eva_large_patch14_196.in22k_ft_in1k | 87.9 | 304.1 | 61.6 | 63.5 | リンク |
2022年12月6日
- 「EVA g」、MIM事前学習とCLIP事前学習の両方を含むBEiTスタイルのViT-g/14モデルの重みを追加
beit.py.
| model | top1 | param_count | gmac | macts | hub |
|---|---|---|---|---|---|
| eva_giant_patch14_560.m30m_ft_in22k_in1k | 89.8 | 1014.4 | 1906.8 | 2577.2 | リンク |
| eva_giant_patch14_336.m30m_ft_in22k_in1k | 89.6 | 1013 | 620.6 | 550.7 | リンク |
| eva_giant_patch14_336.clip_ft_in1k | 89.4 | 1013 | 620.6 | 550.7 | リンク |
| eva_giant_patch14_224.clip_ft_in1k | 89.1 | 1012.6 | 267.2 | 192.6 | リンク |
2022年12月5日
- プレリリース (
0.8.0dev0) マルチウェイト対応 (model_arch.pretrained_tag). でインストールします。pip install --pre timm- vision_transformer、maxvit、convnext がサポート対応の最初の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画像タワーの重みの完全なセットを追加します
| model | top1 | param_count | gmac | macts | hub |
|---|---|---|---|---|---|
| vit_huge_patch14_clip_336.laion2b_ft_in12k_in1k | 88.6 | 632.5 | 391 | 407.5 | リンク |
| vit_large_patch14_clip_336.openai_ft_in12k_in1k | 88.3 | 304.5 | 191.1 | 270.2 | リンク |
| vit_huge_patch14_clip_224.laion2b_ft_in12k_in1k | 88.2 | 632 | 167.4 | 139.4 | リンク |
| vit_large_patch14_clip_336.laion2b_ft_in12k_in1k | 88.2 | 304.5 | 191.1 | 270.2 | リンク |
| vit_large_patch14_clip_224.openai_ft_in12k_in1k | 88.2 | 304.2 | 81.1 | 88.8 | リンク |
| vit_large_patch14_clip_224.laion2b_ft_in12k_in1k | 87.9 | 304.2 | 81.1 | 88.8 | リンク |
| vit_large_patch14_clip_224.openai_ft_in1k | 87.9 | 304.2 | 81.1 | 88.8 | リンク |
| vit_large_patch14_clip_336.laion2b_ft_in1k | 87.9 | 304.5 | 191.1 | 270.2 | リンク |
| vit_huge_patch14_clip_224.laion2b_ft_in1k | 87.6 | 632 | 167.4 | 139.4 | リンク |
| vit_large_patch14_clip_224.laion2b_ft_in1k | 87.3 | 304.2 | 81.1 | 88.8 | リンク |
| vit_base_patch16_clip_384.laion2b_ft_in12k_in1k | 87.2 | 86.9 | 55.5 | 101.6 | リンク |
| vit_base_patch16_clip_384.openai_ft_in12k_in1k | 87 | 86.9 | 55.5 | 101.6 | リンク |
| vit_base_patch16_clip_384.laion2b_ft_in1k | 86.6 | 86.9 | 55.5 | 101.6 | リンク |
| vit_base_patch16_clip_384.openai_ft_in1k | 86.2 | 86.9 | 55.5 | 101.6 | リンク |
| vit_base_patch16_clip_224.laion2b_ft_in12k_in1k | 86.2 | 86.6 | 17.6 | 23.9 | リンク |
| vit_base_patch16_clip_224.openai_ft_in12k_in1k | 85.9 | 86.6 | 17.6 | 23.9 | リンク |
| vit_base_patch32_clip_448.laion2b_ft_in12k_in1k | 85.8 | 88.3 | 17.9 | 23.9 | リンク |
| vit_base_patch16_clip_224.laion2b_ft_in1k | 85.5 | 86.6 | 17.6 | 23.9 | リンク |
| vit_base_patch32_clip_384.laion2b_ft_in12k_in1k | 85.4 | 88.3 | 13.1 | 16.5 | リンク |
| vit_base_patch16_clip_224.openai_ft_in1k | 85.3 | 86.6 | 17.6 | 23.9 | リンク |
| vit_base_patch32_clip_384.openai_ft_in12k_in1k | 85.2 | 88.3 | 13.1 | 16.5 | リンク |
| vit_base_patch32_clip_224.laion2b_ft_in12k_in1k | 83.3 | 88.2 | 4.4 | 5 | リンク |
| vit_base_patch32_clip_224.laion2b_ft_in1k | 82.6 | 88.2 | 4.4 | 5 | リンク |
| vit_base_patch32_clip_224.openai_ft_in1k | 81.9 | 88.2 | 4.4 | 5 | リンク |
- 公式実装の https://github.com/google-research/maxvit
- アップスケールされた384/512のin21kファインチューニング重みでは、予想より大きな性能低下が見られ、詳細が欠落している可能性があります。ただし、21k FTは小さな前処理に対して敏感であることが確認されました。
| model | top1 | param_count | gmac | macts | hub |
|---|---|---|---|---|---|
| maxvit_xlarge_tf_512.in21k_ft_in1k | 88.5 | 475.8 | 534.1 | 1413.2 | リンク |
| maxvit_xlarge_tf_384.in21k_ft_in1k | 88.3 | 475.3 | 292.8 | 668.8 | リンク |
| maxvit_base_tf_512.in21k_ft_in1k | 88.2 | 119.9 | 138 | 704 | リンク |
| maxvit_large_tf_512.in21k_ft_in1k | 88 | 212.3 | 244.8 | 942.2 | リンク |
| maxvit_large_tf_384.in21k_ft_in1k | 88 | 212 | 132.6 | 445.8 | リンク |
| maxvit_base_tf_384.in21k_ft_in1k | 87.9 | 119.6 | 73.8 | 332.9 | リンク |
| maxvit_base_tf_512.in1k | 86.6 | 119.9 | 138 | 704 | リンク |
| maxvit_large_tf_512.in1k | 86.5 | 212.3 | 244.8 | 942.2 | リンク |
| maxvit_base_tf_384.in1k | 86.3 | 119.6 | 73.8 | 332.9 | リンク |
| maxvit_large_tf_384.in1k | 86.2 | 212 | 132.6 | 445.8 | リンク |
| maxvit_small_tf_512.in1k | 86.1 | 69.1 | 67.3 | 383.8 | リンク |
| maxvit_tiny_tf_512.in1k | 85.7 | 31 | 33.5 | 257.6 | リンク |
| maxvit_small_tf_384.in1k | 85.5 | 69 | 35.9 | 183.6 | リンク |
| maxvit_tiny_tf_384.in1k | 85.1 | 31 | 17.5 | 123.4 | リンク |
| maxvit_large_tf_224.in1k | 84.9 | 211.8 | 43.7 | 127.4 | リンク |
| maxvit_base_tf_224.in1k | 84.9 | 119.5 | 24 | 95 | リンク |
| maxvit_small_tf_224.in1k | 84.4 | 68.9 | 11.7 | 53.2 | リンク |
| maxvit_tiny_tf_224.in1k | 83.4 | 30.9 | 5.6 | 35.8 | リンク |
2022年10月15日
- 学習および検証スクリプトの強化
- GPU以外(つまりCPU)のデバイスサポート
- 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 @ 288convnext_atto_ols- 75.9 @ 224, 77.2 @ 288
2022年8月5日
- 重み付きのより小さいカスタム ConvNeXt モデル定義
convnext_femto- 77.5 @ 224, 78.7 @ 288convnext_femto_ols- 77.9 @ 224, 78.9 @ 288convnext_pico- 79.5 @ 224, 80.4 @ 288convnext_pico_ols- 79.5 @ 224, 80.5 @ 288convnext_nano_ols- 80.9 @ 224, 81.6 @ 288
- 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 @ 288convnext_nano- 80.8 @ 224, 81.5 @ 288cs3sedarknet_l- 81.2 @ 256, 81.8 @ 288cs3darknet_x- 81.8 @ 256, 82.2 @ 288cs3sedarknet_x- 82.2 @ 256, 82.7 @ 288cs3edgenet_x- 82.2 @ 256, 82.7 @ 288cs3se_edgenet_x- 82.8 @ 256, 83.5 @ 320
cs3*の重みはすべて、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日
より多くのモデル、より多くの修正
- 公式リサーチモデル(重み付き)が追加されました:
- (https://github.com/mmaaz60/EdgeNeXt)のEdgeNeXt
- (https://github.com/apple/ml-cvnets) からの MobileViT-V2
- DeiT III (Revenge of the ViT) from (https://github.com/facebookresearch/deit)
- 自分のモデル:
- リクエストに応じて、basicおよびbottleneckの両方で1ブロックの繰り返しを持つ小さな
ResNet定義(resnet10およびresnet14)を追加しました CspNetはdataclass設定でリファクタリングされ、CrossStage3(cs3)オプションが簡素化されました。これらはYOLO-v5+のbackbone定義に近づいています。- 相対位置のViTのさらなる調整。2つの
srelpos(共有相対位置)モデルを訓練し、クラストークン付きのミディアムサイズモデルも作成しました。 - EdgeNeXtに代替のダウンサンプルモードを追加し、
smallモデルを学習します。元のsmallモデルよりも性能が向上していますが、彼らの新しいUSI学習済み重みには及びません。
- リクエストに応じて、basicおよびbottleneckの両方で1ブロックの繰り返しを持つ小さな
- 独自のモデル重みの結果(すべて ImageNet-1k での学習)
resnet10t- 66.5 @ 176, 68.3 @ 224resnet14t- 71.3 @ 176, 72.3 @ 224resnetaa50- 80.6 @ 224 , 81.6 @ 288darknet53- 80.0 @ 256, 80.5 @ 288cs3darknet_m- 77.0 @ 256, 77.6 @ 288cs3darknet_focus_m- 76.7 @ 256, 77.3 @ 288cs3darknet_l- 80.4 @ 256, 80.9 @ 288cs3darknet_focus_l- 80.3 @ 256, 80.9 @ 288vit_srelpos_small_patch16_224- 81.1 @ 224, 82.1 @ 320vit_srelpos_medium_patch16_224- 82.3 @ 224, 83.1 @ 320vit_relpos_small_patch16_cls_224- 82.6 @ 224, 83.6 @ 320edgnext_small_rw- 79.6 @ 224, 80.4 @ 320
cs3、darknet、およびvit_*relposの重みはすべて、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 に対応するため、整理を行いました。
- 既存の
timmSwin-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 poolvit_relpos_medium_patch16_rpn_224- 82.3 @ 224, 83.1 @ 320 — rel pos + res-post-norm、クラストークンなし、avg poolvit_relpos_medium_patch16_224- 82.5 @ 224, 83.3 @ 320 — rel pos, layer scale, no class token, avg poolvit_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 @ 288seresnextaa101d_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 @ 288regnety_064- 83.0 @ 224, 83.65 @ 288regnety_080- 83.17 @ 224, 83.86 @ 288regnetv_040- 82.44 @ 224, 83.18 @ 288 (timm pre-act)regnetv_064- 83.1 @ 224, 83.71 @ 288 (timm pre-act)regnetz_040- 83.67 @ 256, 84.25 @ 320regnetz_040h- 83.77 @ 256, 84.5 @ 320 (ヘッドに追加の fc を使用)resnetv2_50d_gn- 80.8 @ 224, 81.96 @ 288 (pre-act GroupNorm)resnetv2_50d_evos80.77 @ 224、82.04 @ 288 (pre-act EvoNormS)regnetz_c16_evos- 81.9 @ 256、82.64 @ 320 (EvoNormS)regnetz_d8_evos- 83.42 @ 256、84.04 @ 320 (EvoNormS)xception41p- 82 @ 299 (timm pre-act)xception65- 83.17 @ 299xception65p- 83.14 @ 299 (timm pre-act)resnext101_64x4d- 82.46 @ 224, 83.16 @ 288seresnext101_32x8d- 83.57 @ 224, 84.270 @ 288resnetrs200- 83.85 @ 256, 84.44 @ 320
- HuggingFace hubのサポートを修正し、事前学習モデルの定義と重みに対して代替の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 からのインストールをおすすめします。
- 変更点は通常より広範囲に及んでおり、一部のモデル API の使用を不安定にしたり壊したりする可能性があります(完全な後方互換性を目標としています)。そのため、
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-1mobilenetv2_050- 65.9lcnet_100/075/050- 72.1 / 68.8 / 63.1semnasnet_075- 73fbnetv3_b/d/g- 79.1 / 79.7 / 82.0
- rsomani95 によって追加された TinyNet モデル
- MobileNetV3アーキテクチャによりLCNetが追加されました