Transformers documentation
RADIO
Эта модель была добавлена в Hugging Face Transformers 30.06.2026.
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
класс 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) — Отношение скрытого размера MLP кhidden_size. - hidden_act (
str, необязательный, по умолчаниюgelu) — Нелинейная функция активации (функция или строка) в декодере. Например,"gelu","relu","silu"и т. д. - layer_norm_eps (
float, необязательный, по умолчанию1e-06) — Значение epsilon, используемое слоями нормализации. - attention_probs_dropout_prob (
float, необязательный, по умолчанию0.0) — Коэффициент dropout для вероятностей внимания. - hidden_dropout_prob (
float, необязательный, по умолчанию0.0) — Вероятность dropout для всех полносвязных слоев в блоках эмбеддингов, энкодера и пулера. - drop_path_rate (
float, необязательный, по умолчанию0.0) — Коэффициент drop path для слияния патчей. - use_swiglu_ffn (
bool, необязательный, по умолчаниюFalse) — Использовать ли SwiGLU feed-forward сеть в слоях энкодера вместо стандартного MLP. - 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, необязательный) — Размер одного патча изображения после сжатия в одномерный вектор. Вычисляется на основеnum_channelsиpatch_size. - video_patch_dim (
int, необязательный) — Размер в развёрнутом виде одного временного видео-патча. Выводится из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
класс transformers.RadioModel
< source >( config: RadioConfig )
Параметры
- config (RadioConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация с помощью файла конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Используйте метод from_pretrained() для загрузки весов модели.
Базовая модель Radio, выводящая необработанные скрытые состояния без какого-либо специализированного слоя наверху.
Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)
Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.
forward
< source >( pixel_values: Tensorimage_grid_hw: typing.Optional[torch.LongTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → RadioModelOutput or tuple(torch.Tensor)
Параметры
- pixel_values (
torch.Tensorформы(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), необязательный) — Сетка патчей(height, width)для каждого изображения в упакованныхpixel_values.
Возвращает
RadioModelOutput или tuple(torch.Tensor)
RadioModelOutput или кортеж из
torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные
элементы в зависимости от конфигурации (RadioConfig) и входных данных.
Метод forward класса RadioModel переопределяет специальный метод __call__.
Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр
Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.
summary (
torch.Tensorформы(batch_size, num_summary_idxs * hidden_size)) — Свёрнутая эмбеддинг-суммаризация, собранная из cls-токенов, выбранных с помощьюconfig.summary_idxs.features (
torch.Tensorформы(batch_size, num_patches, hidden_size)) — Плотные пространственные признаки патчей. Для упакованных входных данных (при заданномimage_grid_hw) признаки патчей всех изображений конкатенированы, форма(total_patches, hidden_size).last_hidden_state (
torch.Tensorформы(batch_size, sequence_length, hidden_size)) — Полная последовательность токенов (префиксные токены + патчи) из последнего слоя кодировщика. Для упакованных входных данных это конкатенированные последовательности всех изображений, формы(total_sequence_length, hidden_size).hidden_states (
tuple[torch.Tensor], необязательный, возвращается при передачеoutput_hidden_states=Trueили когдаconfig.output_hidden_states=True) — Кортеж изtorch.Tensor(один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого слоя) формы(batch_size, sequence_length, hidden_size).Скрытые состояния модели на выходе каждого слоя, а также необязательные выходные значения начального слоя встраивания.
attentions (
tuple[torch.Tensor], необязательный, возвращается при передачеoutput_attentions=Trueили когдаconfig.output_attentions=True) — Кортежtorch.Tensor(по одному на каждый слой) формы(batch_size, num_heads, sequence_length, sequence_length).Веса внимания после softmax в механизме внимания, используемые для вычисления взвешенного среднего в головах само-внимания.