Transformers documentation
バックボーン
バックボーン
バックボーンは、オブジェクト検出や画像分類などの上位のコンピュータビジョンタスクにおける特徴抽出に使用されるモデルです。Transformers は、事前学習済みモデルの重みから Transformers のバックボーンを初期化するための AutoBackbone クラスと、2 つのユーティリティクラスを提供しています:
- BackboneMixin は、Transformers または timm からバックボーンを初期化することを可能にし、出力特徴量とインデックスを返す関数を含みます。
- BackboneConfigMixin は、backbone の設定における出力特徴量とインデックスを設定します。
timmモデルは、TimmBackboneクラスとTimmBackboneConfigクラスによって読み込まれます。
Backbonesは、以下のモデルでサポートされています:
- BEiT
- BiT
- ConvNext
- ConvNextV2
- DiNAT
- DINOV2
- FocalNet
- MaskFormer
- ResNet
- Swin Transformer
- Swin Transformer v2
- ViTDet
AutoBackbone
BackboneMixin
post_init をオーバーライドして、キャプチャ用フックを常にインストールするようにします。バックボーンは常に出力をキャプチャするためです。モジュールがすでにインスタンス化されている必要があるため、post_init でこれを行う必要があります。これにより、torch.compile による混乱を回避できます。最初のフックのインストールはグラフのブレイクを必要とする/作成するため、model = torch.compile(model...) のような外部からのユーザー呼び出しと競合する可能性があるためです。
BackboneConfigMixin
バックボーン設定におけるout_featuresおよびout_indices属性の処理をサポートするためのMixinです。
set_output_features_output_indices
< source >( out_features: list | Noneout_indices: list | None )
出力インデックスと特徴量を新しい値に設定し、指定されたstage_namesと整合させます。
入力の一つが指定されていない場合、指定されたstage_namesに対応するout_featuresまたはout_indicesを特定します。
このインスタンスをPythonの辞書にシリアライズします。PreTrainedConfigのデフォルトのto_dict()をオーバーライドし、out_featuresおよびout_indices属性を含めるようにします。
指定された stage_names に対して、out_indices と out_features が有効であることを確認します。
TimmBackbone
timm モデルをバックボーンとして使用するためのラッパークラスです。これにより、ライブラリ内の他のモデルと同一の API を保ちながら、timm モデルを相互に交換して使用できます。
TimmBackboneConfig
クラス transformers.TimmBackboneConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonebackbone: str | None = Nonenum_channels: int = 3features_only: bool = True_out_indices: list[int] | None = Nonefreeze_batch_norm_2d: bool = Falseoutput_stride: int | None = None )
パラメータ
- backbone (
str, 省略可) — 読み込むtimmのチェックポイント。 - num_channels (
int、任意、デフォルトは3) — 入力チャネル数。 - features_only (
bool、任意、デフォルトはTrue) — features のみを出力するか、logits も出力するかどうかを指定します。 - freeze_batch_norm_2d (
bool、省略可、デフォルトはFalse) — 指定されたモジュールのすべてのBatchNorm2dおよびSyncBatchNormレイヤーをFrozenBatchNorm2dに変換します。 - output_stride (
int、省略可) — 入力特徴マップと出力特徴マップの空間解像度の比率です。
これは TimmBackbone の設定を保存するための設定クラスです。指定された引数に基づいて Timm Backbone モデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、 と同様の設定が得られます。
設定オブジェクトはPreTrainedConfigを継承し、モデルの出力を制御するために使用できます。詳細については、PreTrainedConfigのドキュメントを参照してください。
例:
>>> from transformers import TimmBackboneConfig, TimmBackbone
>>> # Initializing a timm backbone
>>> configuration = TimmBackboneConfig("resnet50")
>>> # Initializing a model from the configuration
>>> model = TimmBackbone(configuration)
>>> # Accessing the model configuration
>>> configuration = model.config