Transformers documentation
RADIO
このモデルは2026年6月30日にHugging Face Transformersに貢献されました。
RADIO
RADIO(Reduce All Domains Into One)は、NVIDIA によるビジョン・ファウンデーションモデルのファミリーです。複数の教師モデル(CLIP、DINOv2、SAM など)からのマルチティーチャー蒸留によって、単一の ViT バックボーンに学習されます。画像レベルのsummary埋め込みと、高密度な空間的featuresの両方を生成し、Cropped Position Embedding(CPE)パッチジェネレーターを通じて可変の入力解像度をサポートします。
以下の例では、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 featuresRadioConfig
class transformers.RadioConfig
< 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 = 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
< source >( config: RadioConfig )
パラメータ
- config (RadioConfig) — モデルのすべてのパラメータを含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連付けられた重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
特定のヘッドを付加せず、生のhidden-statesを出力する素のRadio Model。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
forward
< source >( 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後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。