Transformers documentation

RADIO

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

このモデルは2026年6月30日にHugging Face Transformersに貢献されました。

FlashAttention SDPA

RADIO

RADIO(Reduce All Domains Into One)は、NVIDIA によるビジョン・ファウンデーションモデルのファミリーです。複数の教師モデル(CLIP、DINOv2、SAM など)からのマルチティーチャー蒸留によって、単一の ViT バックボーンに学習されます。画像レベルのsummary埋め込みと、高密度な空間的featuresの両方を生成し、Cropped Position Embedding(CPE)パッチジェネレーターを通じて可変の入力解像度をサポートします。

以下の例では、RadioModel クラスを使用して画像特徴を抽出する方法を示しています。

RadioModel
import requests
import torch
from PIL import Image

from transformers import CLIPImageProcessor, RadioModel


hf_repo = "nvidia/C-RADIOv4-H"

device = torch.accelerator.current_accelerator().type if torch.accelerator.is_available() else "cpu"

model = RadioModel.from_pretrained(hf_repo)
model.eval().to(device)

image_processor = CLIPImageProcessor(
    size={"height": 224, "width": 224}, do_resize=True, do_center_crop=False, do_normalize=False
)

url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"
image = Image.open(requests.get(url, stream=True).raw).convert("RGB")
pixel_values = image_processor(images=image, return_tensors="pt").pixel_values
pixel_values = pixel_values.to(device)

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

summary = outputs.summary    # (1, 2560) image-level embedding
features = outputs.features   # (1, 196, 1280) dense spatial features

RadioConfig

class transformers.RadioConfig

< >

( 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 = Nonehidden_size: int = 1280num_hidden_layers: int = 32num_attention_heads: int = 16mlp_ratio: float = 4.0hidden_act: str = 'gelu'layer_norm_eps: float = 1e-06attention_probs_dropout_prob: float = 0.0hidden_dropout_prob: float = 0.0drop_path_rate: float = 0.0use_swiglu_ffn: bool = Falseqkv_bias: bool = Truelayerscale_value: float = 1.0num_channels: int = 3patch_size: int = 16image_size: int = 224max_img_size: int = 2048num_cls_tokens: int = 3num_registers: int = 7video_temporal_patch_size: int | None = Nonepatch_dim: int | None = Nonevideo_patch_dim: int | None = Nonesummary_idxs: list[int] | None = Nonenorm_mean: list[float] | tuple[float, float, float] = (0.48145466, 0.4578275, 0.40821073)norm_std: list[float] | tuple[float, float, float] = (0.26862954, 0.26130258, 0.27577711)initializer_range: float = 0.02 )

パラメータ

  • hidden_size (int、任意、デフォルトは 1280) — 隠れ表現の次元数です。
  • num_hidden_layers (int、任意、デフォルトは 32) — Transformer デコーダーの隠れ層の数。
  • num_attention_heads (int、任意、デフォルトは 16) — Transformer デコーダーの各アテンション層におけるアテンションヘッドの数。
  • mlp_ratio (float、任意、デフォルト値は 4.0) — hidden_sizeに対する MLP の隠れ層サイズ(hidden size)の比率です。
  • hidden_act (str、任意、デフォルトは gelu) — デコーダーで使用する非線形活性化関数(関数または文字列)。例えば、"gelu"、 "relu"、"silu" など。
  • layer_norm_eps (float、任意、デフォルトは 1e-06) — レイヤーノーマル層で使用する epsilon です。
  • attention_probs_dropout_prob (float、任意、デフォルトは 0.0) — アテンション確率のドロップアウト率です。
  • hidden_dropout_prob (float、任意、デフォルト値は 0.0) — embeddings、encoder、pooler 内のすべての全結合層における dropout の確率。
  • drop_path_rate (float、任意、デフォルトは 0.0) — パッチ融合におけるドロップパス率。
  • use_swiglu_ffn (bool、任意、デフォルトは False) — エンコーダ層で標準の MLP の代わりに SwiGLU フィードフォワードネットワークを使用するかどうか。
  • qkv_bias (bool、省略可、デフォルトは True) — クエリ、キー、バリューにバイアスを追加するかどうか。
  • layerscale_value (float、任意、デフォルト値は 1.0)— LayerScale パラメータの初期値です。C-RADIO には LayerScale が存在しないため、デフォルト値の 1.0 により、(継承された) LayerScale は恒等操作となります。
  • num_channels (int、任意、デフォルトは3) — 入力チャネル数。
  • patch_size (int、任意、デフォルトは 16) — 各パッチのサイズ(解像度)。
  • image_size (int、任意、デフォルトは224) — 各画像のサイズ(解像度)です。
  • max_img_size (int, 任意、デフォルト値は 2048) — CPE パッチ生成器の位置埋め込みテーブルのサイズを決定するために使用される、サポートされる最大画像サイズ(ピクセル単位)。
  • num_cls_tokens (int、任意、デフォルトは 3)— パッチシーケンスの先頭に付加される、学習されるクラス(サマリー)トークンの数。
  • num_registers (int、任意、デフォルトは 7) — パッチシーケンスの先頭に付加される、学習されたレジスタトークンの数。
  • video_temporal_patch_size (int, 省略可) — パッチごとに時間方向にスタックされるフレーム数です。設定すると、パッチジェネレーターは時間方向にパックされた動画パッチ用の video_patch_projection も構築します。None を指定すると、動画処理のパスが無効になります。
  • patch_dim (int, 省略可) — 1つの画像パッチのフラット化されたサイズ。num_channels と patch_size から導出されます。
  • video_patch_dim (int, 省略可) — 時間方向にパックされた1つの動画パッチのフラット化されたサイズ。video_temporal_patch_size と patch_dim から導出されます。画像専用のチェックポイントでは None です。
  • summary_idxs (list[int]、任意、デフォルトは [0, 1]) — summary 出力埋め込みに集約してフラット化するためのクラストークンのインデックス。
  • norm_mean (tuple[float, float, float]、任意、デフォルトは OPENAI_CLIP_MEAN) — 入力コンディショナーがピクセル値の正規化に使用する、チャネルごとの平均値。
  • norm_std (tuple[float, float, float]、任意、デフォルトは OPENAI_CLIP_STD) — 入力コンディショナーがピクセル値の正規化に使用する、チャネルごとの標準偏差。
  • initializer_range (float、任意、デフォルトは 0.02) — すべての重み行列を初期化するための truncated_normal_initializer の標準偏差です。

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

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

RadioModel

class transformers.RadioModel

< >

( config: RadioConfig )

パラメータ

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

特定のヘッドを付加せず、生のhidden-statesを出力する素のRadio Model。

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

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

forward

< >

( pixel_values: Tensorimage_grid_hw: typing.Optional[torch.LongTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → RadioModelOutput or tuple(torch.FloatTensor)

パラメータ

  • pixel_values (torch.Tensor、shape (batch_size, num_channels, height, width) または (total_patches, num_channels * patch_size**2)) — 同一サイズの画像、または image_grid_hw を使用する場合、異なるサイズの画像のフラット化されたパッチが連結されたもの。各パッチはチャネル優先で配置されており、つまり (num_channels, patch_size, patch_size) となります。
  • image_grid_hw (torch.LongTensor、形状 (num_images, 2)、任意) — パックされた pixel_values 内の各画像のパッチグリッド (height, width)。

戻り値

RadioModelOutput または tuple(torch.FloatTensor)

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

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

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

  • summary (torch.FloatTensor、shape (batch_size, num_summary_idxs * hidden_size)) — config.summary_idxs によって選択された cls トークンから収集された、フラット化された summary embedding です。

  • features (torch.FloatTensor、shape (batch_size, num_patches, hidden_size)) — 高密度な空間パッチ特徴量です。パックされた入力(image_grid_hw が指定されている場合)では、すべての画像のパッチ特徴量が連結され、shape は (total_patches, hidden_size) になります。

  • last_hidden_state (torch.FloatTensor、shape (batch_size, sequence_length, hidden_size)) — 最終エンコーダ層からの完全なトークンシーケンス(プレフィックストークン + パッチ)。パックされた入力の場合、すべての画像のシーケンスが連結されたもので、shape は (total_sequence_length, hidden_size) です。

  • hidden_states (tuple[torch.FloatTensor]、optional、output_hidden_states=True が渡された場合または config.output_hidden_states=True の場合に返される) — torch.FloatTensor のタプル(埋め込み層を持つモデルの場合、埋め込みの出力用が 1 つ、各層の出力用が 1 つずつ)で、形状は (batch_size, sequence_length, hidden_size) です。

    各層の出力におけるモデルのHidden-states、および任意の初期埋め込み出力。

  • attentions (tuple[torch.FloatTensor]、optional、output_attentions=True が渡された場合または config.output_attentions=True の場合に返されます) — torch.FloatTensor のタプル(各レイヤーごとに1つ)、形状は (batch_size, num_heads, sequence_length, sequence_length)。

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

Update on GitHub