Transformers documentation

LW-DETR

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Este modelo foi publicado no HF papers em 2024-07-24 e contribuído para o Hugging Face Transformers em 2026-01-12.

LW-DETR

LW-DETR propõe uma arquitetura leve de Detection Transformer (DETR) projetada para competir com e superar a série dominante YOLO em detecção de objetos em tempo real. Ela atinge um novo estado da arte no equilíbrio entre velocidade (latência) e precisão (mAP) ao combinar avanços recentes em transformers com escolhas de design eficientes.

A arquitetura LW-DETR é caracterizada por sua estrutura simples e eficiente: um Encoder ViT simples, um Projector e um Decoder DETR raso. Ela aprimora a arquitetura DETR para eficiência e velocidade usando as seguintes modificações principais:

  1. Encoder ViT eficiente: utiliza um ViT simples com atenção janela/global intercalada e uma organização baseada em janelas para reduzir drasticamente a complexidade e a latência da atenção.
  2. Entrada mais rica: agrega recursos de múltiplos níveis do codificador e usa um Projetor C2f (YOLOv8) para transmitir recursos de duas escalas ($1/8$ e $1/32$).
  3. Decoder mais rápido: Utiliza um decoder DETR raso de 3 camadas com atenção cruzada deformável para menor latência e convergência mais rápida.
  4. Consultas Otimizadas: Utiliza um esquema de consultas mistas que combina consultas de conteúdo aprendíveis e consultas espaciais geradas.

Você pode encontrar todos os checkpoints disponíveis do LW DETR na organização AnnaZhang. O código original pode ser encontrado aqui.

Este modelo foi contribuído por stevenbucaille.

Clique nos modelos LW-DETR na barra lateral à direita para ver mais exemplos de como aplicar o LW-DETR a diferentes tarefas de detecção de objetos.

O exemplo abaixo demonstra como realizar detecção de objetos com o Pipeline e a classe AutoModel.

Pipeline
AutoModel

from transformers import pipeline


pipeline = pipeline(
    "object-detection",
    model="AnnaZhang/lwdetr_small_60e_coco",
    device_map=0
)

pipeline("http://images.cocodataset.org/val2017/000000039769.jpg")

Recursos

Uma lista de recursos oficiais da Hugging Face e da comunidade (indicados por 🌎) para ajudar você a começar com o LwDetr.

Object Detection

LwDetrConfig

classe transformers.LwDetrConfig

< >

( 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 = Nonebackbone_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Noneprojector_scale_factors: list[float] | tuple[float, ...] = ()hidden_expansion: float = 0.5c2f_num_blocks: int = 3activation_function: str = 'silu'batch_norm_eps: float = 1e-05dropout: float | int = 0.0decoder_ffn_dim: int = 2048decoder_n_points: int = 4decoder_layers: int = 3decoder_self_attention_heads: int = 8decoder_cross_attention_heads: int = 16decoder_activation_function: str = 'relu'num_queries: int = 300attention_bias: bool = Trueattention_dropout: float | int = 0.0activation_dropout: float | int = 0.0group_detr: int = 13init_std: float = 0.02disable_custom_kernels: bool = Trueclass_cost: int | float = 2bbox_cost: int | float = 5giou_cost: int | float = 2class_loss_coefficient: int | float = 1dice_loss_coefficient: int | float = 1bbox_loss_coefficient: int | float = 5giou_loss_coefficient: int | float = 2eos_coefficient: float = 0.1focal_alpha: float = 0.25auxiliary_loss: bool = Trued_model: int = 256 )

Parâmetros

  • backbone_config (Union[dict, ~configuration_utils.PreTrainedConfig], opcional) — A configuração do modelo backbone.
  • projector_scale_factors (list[float], opcional, padrão []) — Fatores de escala para a rede de pirâmide de recursos. Cada fator de escala determina a resolução dos recursos em diferentes níveis. Os valores suportados são 0.5, 1.0 e 2.0.
  • hidden_expansion (float, opcional, padrão 0.5) — Fator de expansão para as dimensões ocultas nas camadas do projetor.
  • c2f_num_blocks (int, opcional, padrão 3) — Número de blocos na camada C2F.
  • activation_function (str, opcional, padrão "silu") — A função de ativação não linear no projetor. Os valores suportados são "silu", "relu", "gelu".
  • batch_norm_eps (float, opcional, padrão 1e-05) — O valor de epsilon para as camadas de normalização de lote.
  • dropout (Union[float, int], opcional, padrão 0.0) — A proporção para todas as camadas de dropout.
  • decoder_ffn_dim (int, opcional, padrão 2048) — Dimensão da camada “intermediária” (frequentemente chamada de feed-forward) no decoder.
  • decoder_n_points (int, opcional, padrão 4) — O número de chaves amostradas em cada nível de recurso para cada cabeça de atenção no decoder.
  • decoder_layers (int, opcional, padrão 3) — Número de camadas ocultas no decodificador do Transformer. Se não for definido, usará o mesmo valor de num_layers.
  • decoder_self_attention_heads (int, opcional, padrão 8) — Número de cabeças de atenção para cada camada de atenção na autoatenção do decoder.
  • decoder_cross_attention_heads (int, opcional, padrão 16) — Número de cabeças de atenção para cada camada de atenção na cross-attention do decoder.
  • decoder_activation_function (str, opcional, padrão "relu") — A função de ativação não linear no decodificador. Os valores suportados são "relu", "silu", "gelu".
  • num_queries (int, opcional, padrão 300) — Número de consultas de objeto, ou seja, slots de detecção. Este é o número máximo de objetos que o LwDetrModel pode detectar em uma única imagem.
  • attention_bias (bool, opcional, padrão True) — Se deve usar um viés nas camadas de projeção de query, key, value e output durante a autoatenção.
  • attention_dropout (Union[float, int], opcional, padrão 0.0) — A taxa de dropout para as probabilidades de atenção.
  • activation_dropout (Union[float, int], opcional, padrão 0.0) — A taxa de dropout para as ativações dentro da camada totalmente conectada.
  • group_detr (int, opcional, padrão 13) — Número de grupos para o mecanismo de atenção Group DETR, que ajuda a reduzir a complexidade computacional.
  • init_std (float, opcional, padrão 0.02) — O desvio padrão do truncated_normal_initializer para inicializar todas as matrizes de pesos.
  • disable_custom_kernels (bool, opcional, padrão True) — Desativa o uso de kernels CUDA e CPU personalizados. Essa opção é necessária para a exportação ONNX, pois os kernels personalizados não são suportados pela exportação ONNX do PyTorch.
  • class_cost (Union[int, float], opcional, padrão 2) — Peso relativo do erro de classificação no custo de correspondência húngara.
  • bbox_cost (Union[int, float], opcional, padrão 5) — Peso relativo do erro de caixa delimitadora L1 no custo de correspondência húngara.
  • giou_cost (Union[int, float], opcional, padrão 2) — Peso relativo da perda de IoU generalizada no custo de correspondência húngara.
  • class_loss_coefficient (float, opcional, padrão 1) — Peso relativo da perda de classificação no custo de correspondência húngara.
  • dice_loss_coefficient (Union[int, float], opcional, padrão 1) — Peso relativo da perda dice na perda de segmentação panótica.
  • bbox_loss_coefficient (Union[int, float], opcional, padrão 5) — Peso relativo da perda L1 da caixa delimitadora na perda de segmentação panótica.
  • giou_loss_coefficient (Union[int, float], opcional, padrão 2) — Peso relativo da perda de IoU generalizada na perda de segmentação panótica.
  • eos_coefficient (float, opcional, padrão 0.1) — Peso de classificação relativo da classe 'no-object' na perda de detecção de objetos.
  • focal_alpha (float, opcional, padrão 0.25) — Parâmetro alpha na focal loss.
  • auxiliary_loss (bool, opcional, padrão True) — Se as perdas de decodificação auxiliares (perdas em cada camada do decodificador) devem ser usadas.
  • d_model (int, opcional, padrão 256) — Tamanho das camadas do codificador e da camada pooler.

Esta é a classe de configuração para armazenar a configuração de um LwDetrModel. Ela é usada para instanciar um modelo Lw Detr 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 AnnaZhang/lwdetr_small_60e_coco

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.

Exemplos:

>>> from transformers import LwDetrConfig, LwDetrModel

>>> # Initializing a LW-DETR AnnaZhang/lwdetr_small_60e_coco style configuration
>>> configuration = LwDetrConfig()

>>> # Initializing a model (with random weights) from the AnnaZhang/lwdetr_small_60e_coco style configuration
>>> model = LwDetrModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config

LwDetrViTConfig

classe transformers.LwDetrViTConfig

< >

( 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 = 768num_hidden_layers: int = 12num_attention_heads: int = 12mlp_ratio: int = 4hidden_act: str = 'gelu'dropout_prob: float | int = 0.0initializer_range: float = 0.02layer_norm_eps: float = 1e-06image_size: int | list[int] | tuple[int, int] = 256pretrain_image_size: int | list[int] | tuple[int, int] = 224patch_size: int | list[int] | tuple[int, int] = 16num_channels: int = 3qkv_bias: bool = Truewindow_block_indices: list[int] | tuple[int, ...] = ()use_absolute_position_embeddings: bool = True_out_features: list[str] | None = None_out_indices: list[int] | None = Nonecae_init_values: float = 0.1num_windows: int = 16 )

Parâmetros

  • hidden_size (int, opcional, padrão 768) — Dimensão das representações ocultas.
  • num_hidden_layers (int, opcional, padrão 12) — Número de camadas ocultas no decodificador do Transformer.
  • num_attention_heads (int, opcional, padrão 12) — Número de cabeças de atenção para cada camada de atenção no decodificador do Transformer.
  • mlp_ratio (int, opcional, padrão 4) — Proporção entre a dimensão oculta do MLP e a dimensão de incorporação.
  • hidden_act (str, opcional, padrão gelu) — A função de ativação não linear (função ou string) no decodificador. Por exemplo, "gelu", "relu", "silu", etc.
  • dropout_prob (Union[float, int], opcional, padrão 0.0) — A proporção para todas as camadas de dropout.
  • initializer_range (float, opcional, padrão 0.02) — O desvio padrão do truncated_normal_initializer para inicializar todas as matrizes de pesos.
  • layer_norm_eps (float, opcional, padrão 1e-06) — O epsilon usado pelas camadas de normalização de camada.
  • image_size (Union[int, list[int], tuple[int, int]], opcional, padrão 256) — O tamanho (resolução) de cada imagem.
  • pretrain_image_size (int, opcional, padrão 224) — O tamanho (resolução) de cada imagem durante o pré-treinamento.
  • patch_size (Union[int, list[int], tuple[int, int]], opcional, padrão 16) — O tamanho (resolução) de cada patch.
  • num_channels (int, opcional, padrão 3) — O número de canais de entrada.
  • qkv_bias (bool, opcional, padrão True) — Se deve adicionar um viés às queries, keys e values.
  • window_block_indices (list[int], opcional, padrão []) — Lista de índices dos blocos que devem usar atenção de janela em vez da autoatenção global regular.
  • use_absolute_position_embeddings (bool, opcional, padrão True) — Se deve adicionar embeddings de posição absoluta aos embeddings de patch.
  • cae_init_values (float, opcional, padrão 0.1) — Valor de inicialização para os parâmetros de CAE quando use_cae está habilitado.
  • num_windows (int, opcional, padrão 16) — Número de janelas para a atenção baseada em janelas. Deve ser um quadrado perfeito e o tamanho da imagem deve ser divisível pela raiz quadrada deste valor. Isso permite uma organização eficiente do mapa de recursos em ordem de janela.

Esta é a classe de configuração para armazenar a configuração de um LwDetrModel. Ela é usada para instanciar um modelo Lw Detr 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 AnnaZhang/lwdetr_small_60e_coco

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.

Exemplo:

>>> from transformers import LwDetrViTConfig, LwDetrViTModel

>>> # Initializing a LW-DETR ViT configuration
>>> configuration = LwDetrViTConfig()

>>> # Initializing a model (with random weights) from the configuration
>>> model = LwDetrViTModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config

LwDetrModel

classe transformers.LwDetrModel

< >

( config: LwDetrConfig )

Parâmetros

  • config (LwDetrConfig) — 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 LW Detr básico (composto por um backbone e um Transformer decodificador) que produz estados ocultos brutos, sem nenhum head 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

< >

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

Parâmetros

  • pixel_values (torch.Tensor de forma (batch_size, num_channels, image_size, image_size), opcional) — Os tensores correspondentes às imagens de entrada. Os valores de pixels podem ser obtidos usando DeformableDetrImageProcessor. Consulte DeformableDetrImageProcessor.call() para mais detalhes (processor_class usa DeformableDetrImageProcessor para processar as imagens).
  • pixel_mask (torch.LongTensor de forma (batch_size, height, width), opcional) — Máscara para evitar a execução de atenção em valores de pixels de preenchimento. Valores da máscara selecionados em [0, 1]:
    • 1 para pixels reais (ou seja, não mascarados),
    • 0 para pixels que são padding (ou seja, mascarados).

    O que são máscaras de atenção?

Retorna

LwDetrModelOutput ou tuple(torch.Tensor)

Uma LwDetrModelOutput 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 (LwDetrConfig) e das entradas.

O método forward do LwDetrModel 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 Module em 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.

  • init_reference_points (torch.Tensor de forma (batch_size, num_queries, 4)) — Pontos de referência iniciais enviados através do decodificador do Transformer.

  • last_hidden_state (torch.Tensor de forma (batch_size, sequence_length, hidden_size), opcional) — Sequência de estados ocultos na saída da última camada do modelo.

  • intermediate_hidden_states (torch.Tensor de forma (batch_size, config.decoder_layers, num_queries, hidden_size)) — Estados ocultos intermediários empilhados (saída de cada camada do decodificador).

  • intermediate_reference_points (torch.Tensor de forma (batch_size, config.decoder_layers, num_queries, 4)) — Pontos de referência intermediários empilhados (pontos de referência de cada camada do decodificador).

  • enc_outputs_class (torch.Tensor de forma (batch_size, sequence_length, config.num_labels), opcional, retornado quando config.with_box_refine=True e config.two_stage=True) — Pontuações das caixas delimitadoras previstas, onde as config.two_stage_num_proposals caixas delimitadoras com as maiores pontuações são selecionadas como propostas de região na primeira etapa. Saída da classificação binária de caixas delimitadoras (ou seja, primeiro plano e segundo plano).

  • enc_outputs_coord_logits (torch.Tensor de forma (batch_size, sequence_length, 4), opcional, retornado quando config.with_box_refine=True e config.two_stage=True) — Logits das coordenadas das caixas delimitadoras previstas na primeira etapa.

  • hidden_states (tuple[torch.Tensor, ...], opcional, retornado quando output_hidden_states=True é passado ou quando config.output_hidden_states=True) — Tupla de torch.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 quando output_attentions=True é passado ou quando config.output_attentions=True) — Tupla de torch.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.

  • cross_attentions (tuple[torch.Tensor, ...], opcional, retornado quando output_attentions=True é passado ou quando config.output_attentions=True) — Tupla de torch.Tensor (um para cada camada) com a forma (batch_size, num_heads, sequence_length, sequence_length).

    Pesos de atenção da camada de atenção cruzada do decodificador, após o softmax de atenção, usados para calcular a média ponderada nas cabeças de atenção cruzada.

Exemplos:

>>> from transformers import AutoImageProcessor, DeformableDetrModel
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO

>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))

>>> image_processor = AutoImageProcessor.from_pretrained("AnnaZhang/lwdetr_small_60e_coco")
>>> model = DeformableDetrModel.from_pretrained("AnnaZhang/lwdetr_small_60e_coco")

>>> inputs = image_processor(images=image, return_tensors="pt")

>>> outputs = model(**inputs)

>>> last_hidden_states = outputs.last_hidden_state
>>> list(last_hidden_states.shape)
[1, 300, 256]

LwDetrForObjectDetection

classe transformers.LwDetrForObjectDetection

< >

( config: LwDetrConfig )

Parâmetros

  • config (LwDetrConfig) — 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.

Modelo LW DETR (composto por um backbone e um Transformer decodificador) com cabeças de detecção de objetos no topo, para tarefas como a detecção COCO.

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

< >

( pixel_values: Tensor = Nonepixel_mask: typing.Optional[torch.LongTensor] = Nonelabels: list[dict] | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → LwDetrObjectDetectionOutput or tuple(torch.Tensor)

Parâmetros

  • pixel_values (torch.Tensor de forma (batch_size, num_channels, image_size, image_size), opcional) — Os tensores correspondentes às imagens de entrada. Os valores de pixels podem ser obtidos usando DeformableDetrImageProcessor. Consulte DeformableDetrImageProcessor.call() para mais detalhes (processor_class usa DeformableDetrImageProcessor para processar as imagens).
  • pixel_mask (torch.LongTensor de forma (batch_size, height, width), opcional) — Máscara para evitar a execução de atenção em valores de pixels de preenchimento. Valores da máscara selecionados em [0, 1]:
    • 1 para pixels reais (ou seja, não mascarados),
    • 0 para pixels que são padding (ou seja, mascarados).

    O que são máscaras de atenção?

  • labels (list[Dict] de comprimento (batch_size,), opcional) — Rótulos para o cálculo da perda de correspondência bipartida. Lista de dicionários, em que cada dicionário contém pelo menos as seguintes 2 chaves: ‘class_labels’ e ‘boxes’ (os rótulos de classe e as caixas delimitadoras de uma imagem no lote, respectivamente). Os próprios rótulos de classe devem ser um torch.LongTensor de comprimento (number of bounding boxes in the image,) e as caixas um torch.Tensor de forma (number of bounding boxes in the image, 4).

Retorna

LwDetrObjectDetectionOutput ou tuple(torch.Tensor)

Um LwDetrObjectDetectionOutput 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 (LwDetrConfig) e das entradas.

O método forward de LwDetrForObjectDetection 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 Module em 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.

  • loss (torch.Tensor de forma (1,), opcional, retornado quando labels são fornecidas)) — Perda total como uma combinação linear de uma log-verossimilhança negativa (entropia cruzada) para a previsão de classe e uma perda de caixa delimitadora. Esta última é definida como uma combinação linear da perda L1 e da perda de IoU generalizada e invariante à escala.

  • loss_dict (Dict, opcional) — Um dicionário contendo as perdas individuais. Útil para registro de logs.

  • logits (torch.Tensor de forma (batch_size, num_queries, num_classes + 1)) — Logits de classificação (incluindo no-object) para todas as queries.

  • pred_boxes (torch.Tensor de forma (batch_size, num_queries, 4)) — Coordenadas normalizadas das caixas para todas as consultas, representadas como (center_x, center_y, width, height). Esses valores são normalizados em [0, 1], relativos ao tamanho de cada imagem individual no lote (ignorando possível preenchimento). Você pode usar ~DeformableDetrProcessor.post_process_object_detection para recuperar as caixas delimitadoras não normalizadas.

  • auxiliary_outputs (list[Dict], opcional) — Opcional, retornado apenas quando as perdas auxiliares são ativadas (ou seja, config.auxiliary_loss está definido como True) e os rótulos são fornecidos. É uma lista de dicionários contendo as duas chaves acima (logits e pred_boxes) para cada camada do decodificador.

  • init_reference_points (torch.Tensor de forma (batch_size, num_queries, 4)) — Pontos de referência iniciais enviados através do decodificador do Transformer.

  • last_hidden_state (torch.Tensor de forma (batch_size, sequence_length, hidden_size), opcional) — Sequência de estados ocultos na saída da última camada do modelo.

  • intermediate_hidden_states (torch.Tensor de forma (batch_size, config.decoder_layers, num_queries, hidden_size)) — Estados ocultos intermediários empilhados (saída de cada camada do decodificador).

  • intermediate_reference_points (torch.Tensor de forma (batch_size, config.decoder_layers, num_queries, 4)) — Pontos de referência intermediários empilhados (pontos de referência de cada camada do decodificador).

  • enc_outputs_class (torch.Tensor de forma (batch_size, sequence_length, config.num_labels), opcional, retornado quando config.with_box_refine=True e config.two_stage=True) — Pontuações das caixas delimitadoras previstas, onde as config.two_stage_num_proposals caixas delimitadoras com as maiores pontuações são selecionadas como propostas de região na primeira etapa. Saída da classificação binária de caixas delimitadoras (ou seja, primeiro plano e segundo plano).

  • enc_outputs_coord_logits (torch.Tensor de forma (batch_size, sequence_length, 4), opcional, retornado quando config.with_box_refine=True e config.two_stage=True) — Logits das coordenadas das caixas delimitadoras previstas na primeira etapa.

  • hidden_states (tuple[torch.Tensor, ...], opcional, retornado quando output_hidden_states=True é passado ou quando config.output_hidden_states=True) — Tupla de torch.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 quando output_attentions=True é passado ou quando config.output_attentions=True) — Tupla de torch.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.

  • cross_attentions (tuple[torch.Tensor, ...], opcional, retornado quando output_attentions=True é passado ou quando config.output_attentions=True) — Tupla de torch.Tensor (um para cada camada) com a forma (batch_size, num_heads, sequence_length, sequence_length).

    Pesos de atenção da camada de atenção cruzada do decodificador, após o softmax de atenção, usados para calcular a média ponderada nas cabeças de atenção cruzada.

Exemplos:

>>> from transformers import AutoImageProcessor, LwDetrForObjectDetection
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO

>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))

>>> image_processor = AutoImageProcessor.from_pretrained("AnnaZhang/lwdetr_small_60e_coco")
>>> model = LwDetrForObjectDetection.from_pretrained("AnnaZhang/lwdetr_small_60e_coco")

>>> inputs = image_processor(images=image, return_tensors="pt")
>>> outputs = model(**inputs)

>>> # convert outputs (bounding boxes and class logits) to Pascal VOC format (xmin, ymin, xmax, ymax)
>>> target_sizes = torch.tensor([image.size[::-1]])
>>> results = image_processor.post_process_object_detection(outputs, threshold=0.5, target_sizes=target_sizes)[
...     0
... ]
>>> for score, label, box in zip(results["scores"], results["labels"], results["boxes"]):
...     box = [round(i, 2) for i in box.tolist()]
...     print(
...         f"Detected {model.config.id2label[label.item()]} with confidence "
...         f"{round(score.item(), 3)} at location {box}"
...     )
Detected cat with confidence 0.8 at location [16.5, 52.84, 318.25, 470.78]
Detected cat with confidence 0.789 at location [342.19, 24.3, 640.02, 372.25]
Detected remote with confidence 0.633 at location [40.79, 72.78, 176.76, 117.25]

LwDetrViTBackbone

classe transformers.LwDetrViTBackbone

< >

( config: LwDetrViTConfig )

Parâmetros

  • config (LwDetrViTConfig) — 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 backbone do Lw Detr.

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

< >

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

Parâmetros

Retorna

BackboneOutput ou tuple(torch.Tensor)

Um BackboneOutput 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 (LwDetrConfig) e das entradas.

O método forward de LwDetrViTBackbone 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 Module em 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.

  • feature_maps (tuple(torch.Tensor) de forma (batch_size, num_channels, height, width)) — Mapas de características dos estágios.

  • hidden_states (tuple(torch.Tensor), opcional, retornado quando output_hidden_states=True é passado ou quando config.output_hidden_states=True) — Tupla de torch.Tensor (um para a saída dos embeddings + um para a saída de cada camada) de forma (batch_size, sequence_length, hidden_size) ou (batch_size, num_channels, height, width), dependendo do backbone.

    Estados ocultos do modelo na saída de cada estágio, além das saídas do embedding inicial.

  • attentions (tuple(torch.Tensor), opcional, retornado quando output_attentions=True é passado ou quando config.output_attentions=True) — Tupla de torch.Tensor (um para cada camada) com forma (batch_size, num_heads, sequence_length, sequence_length). Aplicável apenas se o backbone usar atenção.

    Pesos de atenção após o softmax de atenção, usados para calcular a média ponderada nos cabeçalhos de autoatenção.

Exemplos:

>>> from transformers import LwDetrViTConfig, LwDetrViTBackbone
>>> import torch

>>> config = LwDetrViTConfig()
>>> model = LwDetrViTBackbone(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)
[1, 768, 14, 14]
Update on GitHub