timm documentation

モデル

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

モデル

このページには、timm モデルの作成と発見、その事前学習済み設定、チェックポイント / Hub ヘルパーの API リファレンスドキュメント、および timm モデルで共有されるインターフェースの概要が含まれています。個々のアーキテクチャについては、モデル概要およびモデルごとのページで説明しています。

使用方法

モデルはcreate_modelによって名前を指定して作成されます。この名前はtimmに登録されているアーキテクチャを選択し、.の後に事前学習タグを付与することもできます(resnet50.a1_in1k)。また、ソースプレフィックスを指定することで、Hugging Face Hub上のモデルやローカルフォルダ内のモデルを選択することもできます。create_model自体が使用しないキーワード引数は、モデルのエントリポイント関数を通じてモデルクラスのコンストラクタに渡されるため、モデル固有の引数を任意に設定できます。

import torch
import timm

# Random init (pretrained=False is the default). The tag selects the pretrained cfg, and the weights loaded with
# pretrained=True. Without a tag the architecture's default tag is used.
model = timm.create_model('vit_tiny_patch16_224.augreg_in21k_ft_in1k')
print(model.pretrained_cfg['mean'], model.pretrained_cfg['crop_pct'])  # (0.5, 0.5, 0.5) 0.9

# Model arguments pass through to the model class, a 10 class head, single channel input and regularization.
model = timm.create_model('resnet50', num_classes=10, in_chans=1, drop_rate=0.2, drop_path_rate=0.05)

# Discover models, filters are fnmatch wildcards.
timm.list_models('convnext*')  # architecture names
timm.list_pretrained('resnet50.*')  # architecture.tag names w/ pretrained weights
timm.list_models(module='vision_transformer', pretrained=True)

# Image preprocessing to match the model's pretrained cfg (input size, interpolation, crop, mean / std).
model = timm.create_model('vit_tiny_patch16_224.augreg_in21k_ft_in1k')
data_config = timm.data.resolve_model_data_config(model)
transform = timm.data.create_transform(**data_config, is_training=False)

x = torch.randn(2, 3, 224, 224)
features = model.forward_features(x)  # unpooled features, (2, 197, 192)
pre_logits = model.forward_head(features, pre_logits=True)  # pooled features, (2, 192)
logits = model.forward_head(features)  # same as model(x), (2, 1000)

model.reset_classifier(5)  # replace the classifier w/ a new 5 class one
model.set_input_size(img_size=(384, 384))  # resample the position embedding for a new resolution
logits = model(torch.randn(2, 3, 384, 384))  # (2, 5)

学習スクリプト(train.py)は、これらのフラグを通じて一般的な引数を公開しています:

  • --model はモデルを選択します。
  • --pretrained は事前学習済み重みをロードします。
  • --num-classes は、分類器のサイズ(num_classes)を設定します。
  • --in-chans は入力チャネル数 (in_chans) を設定します。
  • --gp は、グローバルプーリングの種類(global_pool)を設定します。
  • --drop は分類器のドロップアウト率(drop_rate)を設定します。
  • --drop-path は、stochastic depth(drop_path_rate)を設定します。
  • --pretrained-path は、分類器 / 入力畳み込みの適応を伴うローカルファイルから事前学習済み重みを読み込みます(pretrained_cfg_overlay=dict(file=...))。
  • --initial-checkpoint は、モデルの作成後に適応なしでチェックポイントを読み込みます(checkpoint_path)。
  • --model-kwargs key=value ... は、その他のモデル引数を渡します。

入門については、クイックスタートを参照してください。

モデル名

名前ソース
resnet50timm レジストリ内のアーキテクチャ、およびそのデフォルトの事前学習設定(ここではa1_in1k)
resnet50.a1_in1kArchitecture + pretrained タグ、不明なタグはエラーを発生させます
hf-hub:timm/resnet50.a1_in1kHugging Face Hubのリポジトリでは、アーキテクチャ、事前学習済みcfg、モデル引数はconfig.jsonから取得され、@revisionでリビジョンを選択します
local-dir:/path/to/folderLocal folder w/ a config.json and weights, as written by save_for_hf

Hubおよびローカルソースはpretrained=Falseの場合でも設定を読み取りますが、重みの読み込みはpretrained=Trueの場合のみ行われます。 ソースプレフィックスを含まず、/、\、または:を含む名前は、同名のレジストリモデルにフォールバックする代わりにValueErrorを発生させます。hf_hub:はhf-hub:の非推奨エイリアスです。

共通の引数

  • pretrained は、設定されている場合は state_dict または file から、それ以外の場合は huggingface_hub がインストールされている場合に Hub (hf_hub_id) から、または url から、事前学習済み cfg の重みをロードします。以下の分類器 / 入力畳み込みの適応により、1回の呼び出しでファインチューニング用の事前学習済みモデルを作成できます。
  • num_classesは分類器のサイズを設定し、0にすると分類器を削除します。デフォルト値は事前学習済みcfgから取得されます。 事前学習済み重みを読み込む際、クラス数が異なる場合は分類器の重みが破棄されます(ランダム初期化のままになります)。
  • global_pool はプーリングの種類を設定します。オプションはモデルによって異なります(例: ほとんどの convnet では avg、max、avgmax、catavgmax、ViT では token、avg、map)。'' を指定するとプーリングが無効になります。
  • in_chansは入力チャネル数を設定します。デフォルト値は事前学習済みcfgから取得されます。事前学習済み重みをロードする際、この値がソースチェックポイントのチャネル数(事前学習済みcfgのinput_size[0])と異なる場合、サポートされている範囲で最初のconvの重みが適応されます。
  • drop_rateは、分類器のドロップアウト率を設定します。ほとんどのモデルでサポートされています。
  • drop_path_rateは、ほとんどのモデルでサポートされているstochastic depthを設定します。
  • img_size は、ViT スタイルや固定の入力サイズを持つ他のモデルの引数です。設定されていない場合、事前学習の input_size が使用されます。
  • ViTおよびEVAファミリーのdynamic_img_size=Trueは、各フォワードパスで位置埋め込みを入力サイズに再サンプリングします。
  • features_only (out_indices、output_stride、feature_cls を使用) は、モデルを特徴量バックボーンとしてラップし、特徴量マップを返します。特徴量抽出を参照してください。
  • pretrained_cfg は、事前学習済み cfg(タグ、dict、または PretrainedCfg)を置き換えます。
  • pretrained_cfg_overlay は一部のフィールドを上書きします。例えば、pretrained_cfg_overlay=dict(file='weights.pth') を使用すると、上記の分類器 / 入力畳み込みの適応を伴い、pretrained=True の重みをローカルファイルから読み込みます(train.py における --pretrained-path と同じ動作です)。
  • モデルが作成された後、checkpoint_path は load_checkpoint を使用してチェックポイントをロードします。これは適応なしの厳密なロードであり、チェックポイントに EMA 重みが含まれている場合はそれらが使用されます。
  • cache_dirは、事前学習済み重みとHub設定のダウンロードキャッシュを上書きします。
  • device はモデルクラスに渡され、パラメータはデバイス上で直接作成されます。device='meta' を使用すると、重みのメモリを割り当てずにモデルを作成できます。
  • dtype はモデルクラスに渡され、パラメータはそのままの dtype で作成されます。
  • scriptableは、TorchScriptのスクリプティング用にレイヤー設定フラグを設定します。
  • exportableは、エクスポート/トレース用のレイヤー設定フラグを設定します。
  • no_jit は、jit スクリプト化されたレイヤーを無効にするためにレイヤー設定フラグを設定します。

Noneに設定された引数はモデルに到達する前に破棄されるため、モデルのデフォルト値が適用されます。モデルクラスが受け付けない引数は、ほとんどのモデルでTypeErrorを発生させますが、一部のモデルでは未知の引数を無視します。

事前学習済み設定

アーキテクチャには、タグごとに1つずつ、モデルに登録された1つ以上の事前学習済みcfgがあります。cfgは、重みの情報(場所、ライセンス、出所)と、モデルがどのように学習され、それらの重みでどのように評価されるべきかを記述します。create_modelによって作成されたモデルでは、cfgがmodel.pretrained_cfg(model.default_cfgはエイリアス)内の辞書として保持され、レジストリ上のバージョンはget_pretrained_cfgによってPretrainedCfgインスタンスとして返されます。

フィールド説明
architecture, tagモデルアーキテクチャと事前学習済みタグ
hf_hub_id, url, file, state_dict重みのソース(上記のpretrainedを参照)
input_size, test_input_size, fixed_input_sizeTrain(およびデフォルトのeval)の入力サイズ、use_test_size=Trueの場合に使用されるevalサイズ(異なる場合)、モデルが固定の入力サイズ(img_size引数)を持つか
interpolation, crop_pct, test_crop_pct, crop_modeEvalのresize補間、crop fraction(デフォルトのcenter cropモードでは、画像はinput_size / crop_pctにresizeされた後、中央からcropされます)、およびcropモード
mean, std入力正規化
num_classes, label_names, label_descriptions分類器のサイズとラベル(既知の場合)
classifier, first_conv読み込み時に重みを適応させるために使用される、分類器と最初の conv のモジュール名
license, origin_url, paper_ids, paper_name, notes重みのメタデータ

入力フィールドは、resolve_data_config / resolve_model_data_config がデータセットの transforms および loader に対して解決するデータ設定です。cfg はソースのチェックポイントを記述しており、モデルが作成されたり、異なる方法で変更されたりした場合(num_classes、in_chans、img_size、set_input_size())には更新されません。モデルの現在の入力チャネル数、サイズ、および固定サイズ制約は別途追跡されます。get_model_input_config がこれらを返し、resolve_input_data_config がこれらに対してデータ設定を解決します(学習、検証、推論のスクリプトがそうするように)。get_model_args は、現在のモデルを再構築するための引数を返し、save_for_hf がエクスポートされた設定に書き出します。詳細については、モデルの適応とエクスポートを参照してください。

モデルインターフェース

timmモデルは、forward()以外にも共通のインターフェースを備えています。具体的には、forward_features() / forward_head()の分離、分類器のリセット、中間特徴量、入力のリサイズ、および勾配チェックポイントやパラメータグループ化などの学習フックです。どのモデルファミリーがどの部分をサポートしているかを含む詳細は、timmのモデルAPIに記載されています。

チェックポイントとハブ

  • load_checkpoint は、チェックポイントファイル(PyTorch または .safetensors)をモデルに読み込みます。
  • load_state_dict はチェックポイントファイルを読み取り、そのステートディクショナリを返します。
  • resume_checkpoint は、train.py のチェックポイントからモデル、オプティマイザー、ロススケーラーの状態を復元し、再開するエポックを返します。

load_checkpoint と load_state_dict は、デフォルトで train.py のチェックポイントの EMA 重みを取得します(use_ema)。 また、module.(DDP)および _orig_mod.(torch.compile)というキーのプレフィックスを削除します。

  • save_for_hf は、重みとconfig.json(アーキテクチャ、事前学習設定、model_args、label_names)をフォルダに書き出します。
  • push_to_hf_hub は、リポジトリにモデルカードがない場合、生成されたモデルカードとともに、重みと設定を Hub リポジトリにアップロードします。

その後、モデルはhf-hub:またはlocal-dir:を使用して作成されます。モデルの共有と読み込みを参照してください。

import timm
from timm.models import save_for_hf

model = timm.create_model('resnet18', num_classes=4)
# ... fine-tune
save_for_hf(model, 'my_resnet18', model_config=dict(label_names=['a', 'b', 'c', 'd']), safe_serialization=True)
model = timm.create_model('local-dir:my_resnet18', pretrained=True)  # 4 classes, weights and labels restored
print(model.pretrained_cfg['label_names'])

カスタムモデル

register_model でデコレートされたモデルのエントリポイント関数がレジストリに追加されるため、create_model で作成し、list_models で検索できます。timm 内のエントリポイントは、事前学習済み cfg、事前学習済み重みの読み込み、および features_only を処理する build_model_with_cfg を使用してモデルを構築します。

API

モデルの作成

timm.create_model

< >

( model_name: strpretrained: bool = Falsepretrained_cfg: typing.Union[str, typing.Dict[str, typing.Any], timm.models._pretrained.PretrainedCfg, NoneType] = Nonepretrained_cfg_overlay: typing.Optional[typing.Dict[str, typing.Any]] = Nonecheckpoint_path: typing.Union[str, pathlib.Path, NoneType] = Nonecache_dir: typing.Union[str, pathlib.Path, NoneType] = Nonescriptable: typing.Optional[bool] = Noneexportable: typing.Optional[bool] = Noneno_jit: typing.Optional[bool] = None**kwargs: typing.Any )

パラメータ

  • model_name — インスタンス化対象のモデル名。
  • pretrained — Trueに設定すると、事前学習済みのImageNet-1k重みをロードします。
  • pretrained_cfg — モデル用の外部のpretrained_cfgを渡します。
  • pretrained_cfg_overlay — 基本の pretrained_cfg のキーと値をこれらで置き換えます。
  • checkpoint_path — モデルの初期化後に読み込むチェックポイントのパス
  • cache_dir — Hugging Face Hub と Torch チェックポイントのモデルキャッシュディレクトリを上書きします。
  • scriptable — モデルを JIT スクリプト可能にするようレイヤー設定を設定します(すべてのモデルで動作するわけではありません)。
  • exportable — モデルをトレース可能 / ONNX エクスポート可能にするようレイヤー設定を設定します(まだ完全に実装・反映されていません)。
  • no_jit — モデルがjitスクリプト化されたレイヤーを使用しないようにレイヤー設定を設定します(現時点ではアクティベーションのみ)。

モデルを作成します。

モデルのエントリポイント関数を参照し、関連する引数を渡して新しいモデルを作成します。

Tip: **kwargs はエントリポイント関数から timm.models.build_model_with_cfg() へ、さらにモデルクラスの init() へ渡されます。None に設定された kwargs の値は、渡す前に削除されます。

Keyword Args: drop_rate (float): 学習用の分類器の dropout rate。 drop_path_rate (float): 学習用の Stochastic depth の drop rate。 global_pool (str): 分類器の global pooling の種類。

例:

>>> from timm import create_model

>>> # Create a MobileNetV3-Large model with no pretrained weights.
>>> model = create_model('mobilenetv3_large_100')

>>> # Create a MobileNetV3-Large model with pretrained weights.
>>> model = create_model('mobilenetv3_large_100', pretrained=True)
>>> model.num_classes
1000

>>> # Create a MobileNetV3-Large model with pretrained weights and a new head with 10 classes.
>>> model = create_model('mobilenetv3_large_100', pretrained=True, num_classes=10)
>>> model.num_classes
10

>>> # Create a Dinov2 small model with pretrained weights and save weights in a custom directory.
>>> model = create_model('vit_small_patch14_dinov2.lvd142m', pretrained=True, cache_dir="/data/my-models")
>>> # Data will be stored at */data/my-models/models--timm--vit_small_patch14_dinov2.lvd142m/*

モデルの発見

timm.list_models

< >

( filter: typing.Union[str, typing.Iterable[str]] = ''module: typing.Union[str, typing.Iterable[str]] = ''pretrained: bool = Falseexclude_filters: typing.Union[str, typing.Iterable[str]] = ''name_matches_cfg: bool = Falseinclude_tags: typing.Optional[bool] = None )

パラメータ

  • filter — fnmatch で動作するワイルドカードフィルター。
  • module — モデルの選択を特定のサブモジュール(例: ‘vision_transformer’)に限定します。
  • pretrained — True の場合、有効な事前学習済み重みを持つモデルのみを含みます。
  • exclude_filters — filterでモデルを含めた後、それらを除外するためのワイルドカードフィルター。
  • name_matches_cfg — Include only models w/ model_name matching default_cfg name (excludes some aliases).
  • include_tags — モデル名に事前学習済みタグ(model.tag)を含めるかどうか。None の場合、pretrained の値が設定されます。

利用可能なモデル名のリストを、自然な順序でソートして返します。

例: list_models(‘gluon_resnet’) — ‘gluon_resnet’で始まるすべてのモデルを返します list_models(’resnext*’, ‘resnet’) — ‘resnet’モジュール内に‘resnext’を含むすべてのモデルを返します

timm.list_pretrained

< >

( filter: typing.Union[str, typing.Iterable[str]] = ''exclude_filters: typing.Union[str, typing.Iterable[str]] = '' )

パラメータ

  • filter — fnmatch で動作するワイルドカードフィルター。
  • exclude_filters — filterでモデルを含めた後、それらを除外するためのワイルドカードフィルター。

…

timm.list_modules

< >

( )

モデルのエントリポイントを含むモジュール名のソート済みリストを返します。

timm.is_model

< >

( model_name: str )

モデルアーキテクチャが登録されているかを確認します。事前学習タグは無視されます。

timm.is_model_pretrained

< >

( model_name: str )

モデル名(タグ付きまたはタグなし)に事前学習済み重みが登録されているか確認します。

timm.model_entrypoint

< >

( model_name: strmodule_filter: typing.Optional[str] = None )

パラメータ

  • model_name — プリトレーニングタグの有無を問わず、モデル名。
  • module_filter — 設定されている場合、モデルがこのサブモジュールに存在しない場合は例外を発生させます。

pretrainedタグを無視して、モデル名に対応するモデルのエントリポイント関数(fn)を取得します。

事前学習済み設定

timm.get_pretrained_cfg

< >

( model_name: strallow_unregistered: bool = True )

パラメータ

  • model_name — プリトレーニングタグの有無を問わず、モデル名。
  • allow_unregistered — アーキテクチャに事前学習済み cfgs が存在しない場合、例外を送出する代わりに None を返します。

例外

RuntimeError

  • RuntimeError — アーキテクチャに対してタグが無効な場合、または cfgs が存在せず allow_unregistered が False の場合。

モデル名を指定して事前学習済みcfgのコピーを取得します。タグが指定されていない場合は、デフォルトのタグが使用されます。

timm.get_pretrained_cfg_value

< >

( model_name: strcfg_key: str )

例外

RuntimeError

  • RuntimeError — モデルに事前学習済み cfg が登録されていない場合、またはタグが無効な場合に発生します。

モデル名を指定して、特定の事前学習済みcfgの値をキーで取得します。キーが存在しない場合はNoneを返します。

timm.models.get_arch_pretrained_cfgs

< >

( model_name: str )

パラメータ

  • model_name — モデル名。事前学習済みのタグは無視されます。

モデルアーキテクチャのすべての事前学習済みcfgのコピーを取得します。

class timm.models.PretrainedCfg

< >

( url: typing.Union[str, typing.Tuple[str, str], NoneType] = Nonefile: typing.Optional[str] = Nonestate_dict: typing.Optional[typing.Dict[str, typing.Any]] = Nonehf_hub_id: typing.Optional[str] = Nonehf_hub_filename: typing.Optional[str] = Nonesource: typing.Optional[str] = Nonearchitecture: typing.Optional[str] = Nonetag: typing.Optional[str] = Nonecustom_load: bool = Falseinput_size: typing.Tuple[int, int, int] = (3, 224, 224)test_input_size: typing.Optional[typing.Tuple[int, int, int]] = Nonemin_input_size: typing.Optional[typing.Tuple[int, int, int]] = Nonefixed_input_size: bool = Falseinterpolation: str = 'bicubic'crop_pct: float = 0.875test_crop_pct: typing.Optional[float] = Nonecrop_mode: str = 'center'mean: typing.Tuple[float, ...] = (0.485, 0.456, 0.406)std: typing.Tuple[float, ...] = (0.229, 0.224, 0.225)num_classes: int = 1000label_offset: typing.Optional[int] = Nonelabel_names: typing.Optional[typing.Tuple[str]] = Nonelabel_descriptions: typing.Optional[typing.Dict[str, str]] = Nonepool_size: typing.Optional[typing.Tuple[int, ...]] = Nonetest_pool_size: typing.Optional[typing.Tuple[int, ...]] = Nonefirst_conv: typing.Optional[str] = Noneclassifier: typing.Optional[str] = Nonelicense: typing.Optional[str] = Nonedescription: typing.Optional[str] = Noneorigin_url: typing.Optional[str] = Nonepaper_name: typing.Optional[str] = Nonepaper_ids: typing.Union[str, typing.Tuple[str], NoneType] = Nonenotes: typing.Optional[typing.Tuple[str]] = None )

現在のモデルのインポートとエクスポート

timm.models.get_model_input_config

< >

( model: Module )

現在の画像チャネル、公称サイズ、固定サイズ制約を返します。

ノミナルサイズは、フレキシブルなモデルに対する推奨値です。ソースチェックポイントのメタデータはmodel.pretrained_cfgに保持され、ここでは変更されません。

timm.models.get_model_traits

< >

( model: Module )

モデルの特性のコピーを、現在のチャネル数とクラス数を追加した形で返します。

既存のin_chansおよびnum_classes属性が引き続き権威ある情報源となります。 これらは保存された特性に重複して記述されるのではなく、ここで読み取られます。 フィーチャーラッパーに存在しない属性は省略されます。

timm.models.get_model_args

< >

( model: Moduleoverrides: typing.Optional[typing.Dict[str, typing.Any]] = None )

構築後に適用されたサポート対象の変更を含む、再構築引数を返します。

ランタイム引数はファクトリによって除外されます。ドロップレートは、オーバーライドで明示的に指定されない限り省略されます。シリアライズできないアーキテクチャ引数は、エクスポート時に明示的なシリアライズ可能な代替が必要です。

timm.models.resolve_model_input_args

< >

( model_name: strargs: typing.Optional[typing.Dict[str, typing.Any]] = None**model_kwargs )

スクリプトの入力要求をcreate_modelの引数に解決します。

保存されたモデルの引数はデフォルト値です。チャネルやサイズを明示的に指定すると、ソースチェックポイントを説明するメタデータを上書きせずに、対象を選択します。

timm.models.adapt_input_conv

< >

( in_chans: intconv_weight: Tensorbase_chans: int = 3 )

パラメータ

  • in_chans — ターゲットモデルの入力チャネル数。
  • conv_weight — OIHWレイアウトの事前学習済みConv2d重み。
  • base_chans — 事前学習に使用される物理的な入力チャネル数。space-to-depthステムの場合、重みの入力次元とは異なる場合があります。

例外

ValueError または NotImplementedError

  • ValueError — チャンネル数が正でない場合。
  • NotImplementedError — 重みの形式を適応できない場合。

Adapt pretrained input convolution weights to a different channel count.

チェックポイントとHub

timm.models.load_checkpoint

< >

( model: Modulecheckpoint_path: struse_ema: bool = Truedevice: typing.Union[str, torch.device] = 'cpu'strict: bool = Trueremap: bool = Falsefilter_fn: typing.Optional[typing.Callable] = Noneweights_only: bool = True )

パラメータ

  • model — チェックポイントをロードするモデル。
  • checkpoint_path — チェックポイントファイルへのパス。
  • use_ema — 利用可能な場合、EMA重みを使用するかどうか。
  • device — チェックポイントをロードするデバイス。
  • strict — state_dict のキーが一致していることを厳密に強制するかどうか。
  • remap — 順序に従って state dict のキーをリマップするかどうか。
  • filter_fn — state dict をフィルタリングするための任意の関数。
  • weights_only — 重みのみをロードするかどうか(torch.loadのパラメータ)。

モデルにチェックポイントをロードします。

Native PyTorch checkpoints are loaded as state dictionaries. NumPy .npz/.npy` checkpoints are foreign, model-specific formats and are delegated to the model's `load_pretrained helper.

timm.models.load_state_dict

< >

( checkpoint_path: struse_ema: bool = Truedevice: typing.Union[str, torch.device] = 'cpu'weights_only: bool = True )

パラメータ

  • checkpoint_path — チェックポイントファイルへのパス。
  • use_ema — 利用可能な場合、EMA重みを使用するかどうか。
  • device — チェックポイントをロードするデバイス。
  • weights_only — 重みのみをロードするかどうか(torch.loadのパラメータ)。

チェックポイントファイルから状態辞書を読み込みます。

timm.models.resume_checkpoint

< >

( model: Modulecheckpoint_path: stroptimizer: typing.Optional[torch.optim.Optimizer] = Noneloss_scaler: typing.Optional[typing.Any] = Nonelog_info: bool = Trueweights_only: bool = True )

パラメータ

  • model — チェックポイントをロードするモデル。
  • checkpoint_path — チェックポイントファイルへのパス。
  • optimizer — 状態を復元するための任意のオプティマイザー。
  • loss_scaler — 状態を復元するためのオプションの AMP loss scaler。
  • log_info — 読み込み情報をログに記録するかどうか。
  • weights_only — torch.loadで重みのみをロードするかどうか。

チェックポイントからトレーニングを再開します。

timm.models.save_for_hf

< >

( model: Modulesave_directory: strmodel_config: typing.Optional[dict] = Nonemodel_args: typing.Optional[dict] = Nonesafe_serialization: typing.Union[bool, typing.Literal['both']] = Falsedata_config: typing.Optional[dict] = None )

ネイティブの重みと、現在のモデルおよび前処理の設定を保存します。

timm.models.push_to_hf_hub

< >

( model: Modulerepo_id: strcommit_message: str = 'Add model'token: typing.Optional[str] = Nonerevision: typing.Optional[str] = Noneprivate: bool = Falsecreate_pr: bool = Falsemodel_config: typing.Optional[dict] = Nonemodel_card: typing.Optional[dict] = Nonemodel_args: typing.Optional[dict] = Nonetask_name: str = 'image-classification'safe_serialization: typing.Union[bool, typing.Literal['both']] = 'both'data_config: typing.Optional[dict] = None )

パラメータ

  • (…) —
  • model_args — ファクトリによって記録された引数を補完するための、明示的な再構築引数。
  • data_config — エクスポートされたチェックポイントで使用される前処理。入力サイズや正規化を含みます。
  • safe_serialization (bool または "both"、省略可能、デフォルトは False) — safetensors を使用してモデルを保存するか、従来の PyTorch の方法(pickle を使用)で保存するかどうかを指定します。 "both" に設定すると、安全な重みと安全でない重みの両方をプッシュできます。

カスタムモデル

timm.models.register_model

< >

( fn: typing.Callable[..., typing.Any] )

パラメータ

  • fn — モデルのエントリポイント関数 fn。その name で登録されています。

モジュールのdefault_cfgsにモデルのエントリポイント関数fnと事前学習済み設定を登録するデコレーターです。

既存の名前を登録すると、以前の登録とその事前学習済みcfgが上書きされます。

timm.models.build_model_with_cfg

< >

( model_cls: typing.Union[typing.Type[~ModelT], typing.Callable[..., ~ModelT]]variant: strpretrained: boolpretrained_cfg: typing.Optional[typing.Dict] = Nonepretrained_cfg_overlay: typing.Optional[typing.Dict] = Nonemodel_cfg: typing.Optional[typing.Any] = Nonefeature_cfg: typing.Optional[typing.Dict] = Nonepretrained_strict: bool = Truepretrained_filter_fn: typing.Optional[typing.Callable] = Nonecache_dir: typing.Union[str, pathlib.Path, NoneType] = Nonekwargs_filter: typing.Optional[typing.Tuple[str]] = Nonepretrained_model_args: typing.Optional[typing.Dict] = None**kwargs )

パラメータ

  • model_cls — モデルクラス
  • variant — モデルのバリアント名
  • pretrained — 事前学習済み重みの読み込み
  • pretrained_cfg — モデルの事前学習済み重み/タスク設定
  • pretrained_cfg_overlay — pretrained_cfg のエントリを上書きするエントリ
  • model_cfg — モデルのアーキテクチャ設定
  • feature_cfg — 特徴抽出アダプタの設定
  • pretrained_strict — 事前学習済み重みを厳密に読み込みます
  • pretrained_filter_fn — 事前学習済み重みのためのフィルタリング用コールバック
  • cache_dir — Hugging Face HubおよびTorchチェックポイントのモデルキャッシュディレクトリを上書きします
  • kwargs_filter — モデルに渡す前にフィルタ(削除)する Kwargs のキー
  • pretrained_model_args — ソースチェックポイントを説明する再構成引数。
  • **kwargs — モデルの init に渡されるモデル引数

指定されたdefault_cfgと任意のmodel_cfgを使用してモデルを構築します

このヘルパー関数は、以下の要素を含むモデルの構築を支援します:

  • デフォルトのdefault_cfgおよび関連する事前学習済み重みの読み込みの処理
  • config ベースのアーキテクチャ仕様を持つモデルに対して、任意の model_cfg を渡す
  • features_only モデルの適応
  • pruning config / model adaptation
Update on GitHub