Transformers documentation

PPLCNetV3

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

このモデルは2021年9月17日にHF papersで公開され、2026年3月13日にHugging Face Transformersに貢献されました。

PPLCNetV3

PPLCNetV3は、効率的な画像分類および下流のビジョンタスク向けに設計された、軽量でCPU最適化された畳み込みバックボーンです。PP-LCNetアーキテクチャを基盤とし、CPUハードウェア上で精度とレイテンシのトレードオフを改善するために、トレーニング戦略の向上と構造の改良を加えています。

注記

  • PPLCNetV3はバックボーンネットワークとしてのみ提供されています。事前学習済みの画像分類チェックポイントは正式にリリースされていません。

PPLCNetV3Config

クラス transformers.PPLCNetV3Config

< >

( 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 = Nonescale: float | int = 1.0block_configs: list | None = Nonestem_channels: int = 16stem_stride: int = 2reduction: int = 4divisor: int = 8hidden_act: str = 'hardswish'_out_features: list[str] | None = None_out_indices: list[int] | None = Noneconv_symmetric_num: int = 4 )

パラメータ

  • scale (float、任意、デフォルトは 1.0) — モデルのチャネル次元に対するスケーリング係数です。全体のアーキテクチャを変更せずに、モデルサイズと計算コストを調整するために使用されます(例: 0.25、0.5、1.0、1.5)。
  • block_configs (list[list[tuple]]、任意、デフォルトは None) — 各ステージの各ブロックの設定です。各タプルには、(kernel_size, in_channels, out_channels, stride, use_squeeze_excitation) が含まれます。 None の場合、デフォルトの PP-LCNet 設定が使用されます。
  • stem_channels (int、任意、デフォルトは 16) — stem レイヤーの出力チャネル数です。
  • stem_stride (int、任意、デフォルトは 2) — ステム畳み込み層のストライドです。
  • reduction (int、任意、デフォルトは 4) — squeeze-and-excitation (SE) ブロックにおける特徴チャネル次元の縮小係数です。特徴の表現力を維持しつつ、モデルのパラメータ数と計算複雑度を低減するために使用されます。
  • divisor (int、任意、デフォルト値は 8) — モデルの各種パラメータ(チャネル次元やカーネルサイズなど)がこの値の倍数であることを保証するために使用される除数です。これにより、モデルの実装とリソースの効率的な利用が促進されます。
  • hidden_act (str、任意、デフォルトは hardswish) — デコーダーで使用する非線形活性化関数(関数または文字列)。例えば、"gelu"、"relu"、"silu" など。
  • conv_symmetric_num (int、任意、デフォルト値は 4) — 学習可能な再パラメータ化レイヤーにおける kxk 畳み込みブランチの数です。学習時にはマルチブランチアーキテクチャを通じて特徴抽出能力を強化し、推論時には構造再パラメータ化により効率的な推論を可能にします。

これは、PpLcnetV3Model の設定を保存するための設定クラスです。指定された引数に基づいて PpLcnetV3 モデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、PaddlePaddle/Not_yet_released と同様の設定が得られます。

設定オブジェクトはPreTrainedConfigを継承し、モデルの出力を制御するために使用できます。詳細については、PreTrainedConfigのドキュメントを参照してください。

PPLCNetV3Backbone

クラス transformers.PPLCNetV3Backbone

< >

( config: PPLCNetV3Config )

パラメータ

  • config (PPLCNetV3Config) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。

特徴量抽出用のPPLCNetV3バックボーンモデル。

このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。

このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。

forward

< >

( pixel_values: Tensor**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BackboneOutput or tuple(torch.Tensor)

パラメータ

  • pixel_values (torch.Tensor、形状 (batch_size, num_channels, image_size, image_size)) — 入力画像に対応するテンソルです。ピクセル値は image_processor_class を使用して取得できます。詳細は image_processor_class.__call__ を参照してください(processor_class は画像の処理に image_processor_class を使用します)。

戻り値

BackboneOutput または tuple(torch.Tensor)

BackboneOutput、またはtorch.Tensorのタプル(return_dict=Falseが渡された場合、またはconfig.return_dict=Falseの場合)。設定(PPLCNetV3Config)と入力に応じて、さまざまな要素で構成されます。

PPLCNetV3Backboneのforwardメソッドは、__call__特殊メソッドをオーバーライドします。

この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなくModuleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。

  • feature_maps (tuple(torch.Tensor)、形状 (batch_size, num_channels, height, width)) — 各ステージのフィーチャマップ。

  • hidden_states (tuple(torch.Tensor)、optional、output_hidden_states=True が渡された場合または config.output_hidden_states=True の場合に返されます) — torch.Tensor のタプル(埋め込みの出力用 1 つ + 各レイヤーの出力用 1 つ)。形状は (batch_size, sequence_length, hidden_size) または (batch_size, num_channels, height, width) で、バックボーンによって異なります。

    各ステージの出力におけるモデルのHidden-states、および初期の埋め込み出力。

  • attentions (tuple(torch.Tensor)、optional、output_attentions=True が渡された場合または config.output_attentions=True の場合に返されます) — torch.Tensor のタプル(レイヤーごとに1つ)、形状は (batch_size, num_heads, sequence_length, sequence_length)。バックボーンがアテンションを使用する場合にのみ適用されます。

    アテンションのsoftmax後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。

例:

>>> from transformers import PPLCNetV3Config, PPLCNetV3Backbone
>>> import torch

>>> config = PPLCNetV3Config()
>>> model = PPLCNetV3Backbone(config)

>>> pixel_values = torch.randn(1, 3, 224, 224)

>>> with torch.no_grad():
...     outputs = model(pixel_values)

>>> feature_maps = outputs.feature_maps
>>> list(feature_maps[-1].shape)
Update on GitHub