Transformers documentation
RADIO
Este modelo foi contribuído para o Hugging Face Transformers em 30/06/2026.
RADIO
RADIO (Reduce All Domains Into One) é uma família de modelos de visão fundacionais da NVIDIA, treinada por destilação multi-mentor (por exemplo, CLIP, DINOv2, SAM) em um único backbone ViT. Ela produz tanto um embedding de summary no nível da imagem quanto features espaciais densas, e suporta resoluções de entrada variáveis por meio de um gerador de patches Cropped Position Embedding (CPE).
O exemplo abaixo demonstra como extrair recursos de imagem com a classe 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
classe 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 )
Parâmetros
- hidden_size (
int, opcional, padrão1280) — Dimensão das representações ocultas. - num_hidden_layers (
int, opcional, padrão32) — Número de camadas ocultas no decodificador do Transformer. - num_attention_heads (
int, opcional, padrão16) — Número de cabeças de atenção para cada camada de atenção no decodificador do Transformer. - mlp_ratio (
float, opcional, padrão 4.0) — Proporção do tamanho oculto do MLP em relação ahidden_size. - hidden_act (
str, opcional, padrãogelu) — A função de ativação não linear (função ou string) no decodificador. Por exemplo,"gelu","relu","silu", etc. - layer_norm_eps (
float, opcional, padrão1e-06) — O epsilon usado pelas camadas de normalização de camada. - attention_probs_dropout_prob (
float, opcional, padrão0.0) — A taxa de dropout para as probabilidades de atenção. - hidden_dropout_prob (
float, opcional, padrão0.0) — A probabilidade de dropout para todas as camadas totalmente conectadas nos embeddings, no encoder e no pooler. - drop_path_rate (
float, opcional, padrão0.0) — Taxa de drop path para a fusão de patches. - use_swiglu_ffn (
bool, opcional, padrãoFalse) — Se deve usar uma rede feed-forward SwiGLU nas camadas do codificador em vez do MLP padrão. - qkv_bias (
bool, opcional, padrãoTrue) — Se deve adicionar um viés às queries, keys e values. - layerscale_value (
float, opcional, padrão 1.0) — Valor inicial para os parâmetros de LayerScale. O C-RADIO não possui LayerScale; o padrão de1.0torna o LayerScale (herdado) uma operação identidade. - num_channels (
int, opcional, padrão3) — O número de canais de entrada. - patch_size (
int, opcional, padrão16) — O tamanho (resolução) de cada patch. - image_size (
int, opcional, padrão224) — O tamanho (resolução) de cada imagem. - max_img_size (
int, opcional, padrão 2048) — Tamanho máximo de imagem suportado (em pixels) usado para dimensionar a tabela de incorporação de posição do gerador de patches CPE. - num_cls_tokens (
int, opcional, padrão 3) — Número de tokens de classe (resumo) aprendidos adicionados ao início da sequência de patches. - num_registers (
int, opcional, padrão 7) — Número de tokens de registro aprendidos adicionados ao início da sequência de patches. - video_temporal_patch_size (
int, opcional) — Número de frames empilhados temporalmente por patch. Quando definido, o gerador de patches também cria umvideo_patch_projectionpara patches de vídeo empacotados temporalmente;Nonedesativa o caminho de vídeo. - patch_dim (
int, opcional) — Tamanho achatado de um patch de imagem. Derivado denum_channelsepatch_size. - video_patch_dim (
int, opcional) — Tamanho achatado de um patch de vídeo empacotado temporalmente. Derivado devideo_temporal_patch_sizeepatch_dim;Nonepara checkpoints apenas de imagem. - summary_idxs (
list[int], opcional, padrão[0, 1]) — Índices dos tokens de classe a serem reunidos e achatados no embedding de saídasummary. - norm_mean (
tuple[float, float, float], opcional, padrãoOPENAI_CLIP_MEAN) — Média por canal usada pelo condicionador de entrada para normalizar os valores de pixel. - norm_std (
tuple[float, float, float], opcional, padrãoOPENAI_CLIP_STD) — Desvio padrão por canal usado pelo condicionador de entrada para normalizar os valores de pixel. - initializer_range (
float, opcional, padrão0.02) — O desvio padrão do truncated_normal_initializer para inicializar todas as matrizes de pesos.
Esta é a classe de configuração para armazenar a configuração de um RadioModel. Ela é usada para instanciar um modelo Radio de acordo com os argumentos especificados, definindo a arquitetura do modelo. Instanciar uma configuração com os padrões resultará em uma configuração semelhante à do nvidia/C-RADIOv4-H
Os objetos de configuração herdam de PreTrainedConfig e podem ser usados para controlar as saídas do modelo. Consulte a documentação de PreTrainedConfig para mais informações.
RadioModel
classe transformers.RadioModel
< source >( config: RadioConfig )
Parâmetros
- config (RadioConfig) — Classe de configuração do modelo com todos os parâmetros do modelo. A inicialização com um arquivo de configuração não carrega os pesos associados ao modelo, apenas a configuração. Consulte o método from_pretrained() para carregar os pesos do modelo.
O modelo Radio puro, que produz estados ocultos brutos sem nenhum cabeçalho específico no topo.
Este modelo herda de PreTrainedModel. Consulte a documentação da classe pai para os métodos genéricos que a biblioteca implementa para todos os seus modelos (como download ou salvamento, redimensionamento dos embeddings de entrada, poda de cabeças, etc.)
Este modelo também é uma subclasse de torch.nn.Module do PyTorch. Use-o como um Módulo PyTorch regular e consulte a documentação do PyTorch para todos os assuntos relacionados ao uso geral e ao comportamento.
forward
< source >( pixel_values: Tensorimage_grid_hw: typing.Optional[torch.LongTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → RadioModelOutput or tuple(torch.Tensor)
Parâmetros
- pixel_values (
torch.Tensorde forma(batch_size, num_channels, height, width)ou(total_patches, num_channels * patch_size**2)) — Imagens de um mesmo tamanho ou, comimage_grid_hw, os patches achatados de imagens de tamanhos diferentes concatenados. Cada patch é organizado com prioridade para o canal, ou seja,(num_channels, patch_size, patch_size). - image_grid_hw (
torch.LongTensorde forma(num_images, 2), opcional) — Grade de patches(height, width)de cada imagem empixel_valuesempacotados.
Retorna
RadioModelOutput ou tuple(torch.Tensor)
Um RadioModelOutput ou uma tupla de
torch.Tensor (se return_dict=False for passado ou quando config.return_dict=False) contendo vários
elementos, dependendo da configuração (RadioConfig) e das entradas.
O método forward da RadioModel substitui o método especial __call__.
Embora a receita para a passagem direta precise ser definida dentro desta função, deve-se chamar a instância de
Moduleem seguida, em vez desta, pois a primeira cuida da execução das etapas de pré e pós-processamento, enquanto a segunda as ignora silenciosamente.
resumo (
torch.Tensorde forma(batch_size, num_summary_idxs * hidden_size)) — Embedding de resumo achatado, coletado dos tokens cls selecionados porconfig.summary_idxs.features (
torch.Tensorde forma(batch_size, num_patches, hidden_size)) — Características espaciais densas dos patches. Para entradas empacotadas (comimage_grid_hwfornecido), as características dos patches de todas as imagens concatenadas, de forma(total_patches, hidden_size).last_hidden_state (
torch.Tensorde forma(batch_size, sequence_length, hidden_size)) — Sequência completa de tokens (tokens de prefixo + patches) da camada final do codificador. Para entradas empacotadas, as sequências de todas as imagens concatenadas, de forma(total_sequence_length, hidden_size).hidden_states (
tuple[torch.Tensor], opcional, retornado quandooutput_hidden_states=Trueé passado ou quandoconfig.output_hidden_states=True) — Tupla detorch.Tensor(um para a saída dos embeddings, se o modelo tiver uma camada de embedding, + um para a saída de cada camada) de forma(batch_size, sequence_length, hidden_size).Estados ocultos do modelo na saída de cada camada, além das saídas opcionais do embedding inicial.
attentions (
tuple[torch.Tensor], opcional, retornado quandooutput_attentions=Trueé passado ou quandoconfig.output_attentions=True) — Tupla detorch.Tensor(um para cada camada) com forma(batch_size, num_heads, sequence_length, sequence_length).Pesos de atenção após o softmax de atenção, usados para calcular a média ponderada nos cabeçalhos de autoatenção.