Transformers documentation

LW-DETR

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

Ce modèle a été publié dans HF papers le 2024-07-24 et contribué à Hugging Face Transformers le 2026-01-12.

LW-DETR

LW-DETR propose une architecture de Detection Transformer (DETR) légère, conçue pour rivaliser avec et dépasser la série dominante YOLO pour la détection d'objets en temps réel. Elle atteint un nouvel équilibre de pointe entre la vitesse (latence) et la précision (mAP) en combinant les avancées récentes des transformers avec des choix de conception efficaces.

L'architecture LW-DETR se caractérise par sa structure simple et efficace : un encodeur ViT simple, un projecteur et un décodeur DETR peu profond. Elle améliore l'architecture DETR en termes d'efficacité et de vitesse grâce aux modifications fondamentales suivantes :

  1. Encodeur ViT efficace : utilise un ViT simple avec une attention fenêtre/global alternée et une organisation par fenêtre principale pour réduire considérablement la complexité et la latence de l'attention.
  2. Entrée plus riche : agrège des caractéristiques multi-niveaux issues de l'encodeur et utilise un projecteur C2f (YOLOv8) pour transmettre des caractéristiques à deux échelles ($1/8$ et $1/32$).
  3. Décodeur plus rapide : Utilise un décodeur DETR peu profond de 3 couches avec une attention croisée déformable pour une latence réduite et une convergence plus rapide.
  4. Requêtes optimisées : utilise un schéma de requêtes mixtes combinant des requêtes de contenu apprenables et des requêtes spatiales générées.

Vous pouvez trouver tous les points de contrôle LW DETR disponibles sous l’organisation AnnaZhang. Le code d’origine est disponible ici.

Ce modèle a été contribué par stevenbucaille.

Cliquez sur les modèles LW-DETR dans la barre latérale droite pour plus d’exemples sur la façon d’appliquer LW-DETR à différentes tâches de détection d’objets.

L'exemple ci-dessous montre comment effectuer la détection d'objets avec le Pipeline et la 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")

Ressources

Une liste de ressources officielles Hugging Face et de la communauté (indiquées par 🌎) pour vous aider à démarrer avec 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 )

Paramètres

  • backbone_config (Union[dict, ~configuration_utils.PreTrainedConfig], facultatif) — La configuration du modèle backbone.
  • projector_scale_factors (list[float], facultatif, par défaut []) — Facteurs d'échelle pour le réseau de pyramide de caractéristiques. Chaque facteur d'échelle détermine la résolution des caractéristiques aux différents niveaux. Les valeurs prises en charge sont 0.5, 1.0 et 2.0.
  • hidden_expansion (float, facultatif, valeur par défaut 0.5) — Facteur d'expansion des dimensions cachées dans les couches projecteur.
  • c2f_num_blocks (int, facultatif, valeur par défaut 3) — Nombre de blocs dans la couche C2F.
  • activation_function (str, facultatif, par défaut "silu") — La fonction d'activation non linéaire du projecteur. Les valeurs prises en charge sont "silu", "relu", "gelu".
  • batch_norm_eps (float, facultatif, valeur par défaut 1e-05) — La valeur epsilon pour les couches de normalisation par lot.
  • dropout (Union[float, int], facultatif, par défaut 0.0) — Le taux appliqué à toutes les couches de dropout.
  • decoder_ffn_dim (int, facultatif, valeur par défaut 2048) — Dimension de la couche « intermédiaire » (souvent appelée couche feed-forward) du décodeur.
  • decoder_n_points (int, facultatif, valeur par défaut 4) — Le nombre de clés échantillonnées à chaque niveau de fonctionnalités pour chaque tête d’attention du décodeur.
  • decoder_layers (int, facultatif, valeur par défaut 3) — Nombre de couches cachées dans le décodeur Transformer. Utilise la même valeur que num_layers si non défini.
  • decoder_self_attention_heads (int, facultatif, valeur par défaut : 8) — Nombre de têtes d'attention pour chaque couche d'attention dans l'auto-attention du décodeur.
  • decoder_cross_attention_heads (int, facultatif, valeur par défaut 16) — Nombre de têtes d'attention pour chaque couche d'attention dans l'attention croisée du décodeur.
  • decoder_activation_function (str, facultatif, par défaut "relu") — La fonction d'activation non linéaire du décodeur. Les valeurs prises en charge sont "relu", "silu", "gelu".
  • num_queries (int, facultatif, valeur par défaut 300) — Nombre de requêtes d’objets, c’est-à-dire de slots de détection. C’est le nombre maximal d’objets que LwDetrModel peut détecter dans une image unique.
  • attention_bias (bool, facultatif, par défaut True) — Indique s'il faut utiliser un biais dans les couches de projection des requêtes, des clés, des valeurs et de la sortie lors de l'auto-attention.
  • attention_dropout (Union[float, int], facultatif, valeur par défaut 0.0) — Le taux de dropout appliqué aux probabilités d'attention.
  • activation_dropout (Union[float, int], facultatif, valeur par défaut 0.0) — Le taux de dropout appliqué aux activations à l'intérieur de la couche entièrement connectée.
  • group_detr (int, facultatif, valeur par défaut 13) — Nombre de groupes pour le mécanisme d'attention Group DETR, qui aide à réduire la complexité computationnelle.
  • init_std (float, facultatif, valeur par défaut 0.02) — L'écart-type de la truncated_normal_initializer utilisé pour initialiser toutes les matrices de poids.
  • disable_custom_kernels (bool, facultatif, valeur par défaut True) — Désactive l'utilisation des noyaux CUDA et CPU personnalisés. Cette option est nécessaire pour l'export ONNX, car les noyaux personnalisés ne sont pas pris en charge par l'export ONNX de PyTorch.
  • class_cost (Union[int, float], facultatif, par défaut 2) — Poids relatif de l'erreur de classification dans le coût d'appariement hongrois.
  • bbox_cost (Union[int, float], facultatif, par défaut 5) — Poids relatif de l'erreur de boîte englobante L1 dans le coût d'appariement hongrois.
  • giou_cost (Union[int, float], facultatif, par défaut 2) — Poids relatif de la perte d'IoU généralisée dans le coût d'appariement hongrois.
  • class_loss_coefficient (float, facultatif, valeur par défaut 1) — Poids relatif de la perte de classification dans le coût d’appariement hongrois.
  • dice_loss_coefficient (Union[int, float], facultatif, par défaut 1) — Poids relatif de la perte dice dans la perte de segmentation panoptique.
  • bbox_loss_coefficient (Union[int, float], facultatif, par défaut 5) — Poids relatif de la perte de boîte englobante L1 dans la perte de segmentation panoptique.
  • giou_loss_coefficient (Union[int, float], facultatif, par défaut 2) — Poids relatif de la perte d'IoU généralisée dans la perte de segmentation panoptique.
  • eos_coefficient (float, facultatif, par défaut 0.1) — Poids de classification relatif de la classe « no-object » dans la perte de détection d’objets.
  • focal_alpha (float, facultatif, valeur par défaut 0.25) — Paramètre alpha de la focal loss.
  • auxiliary_loss (bool, facultatif, par défaut True) — Indique si les pertes de décodage auxiliaires (pertes à chaque couche du décodeur) doivent être utilisées.
  • d_model (int, facultatif, par défaut 256) — Taille des couches encodeur et de la couche pooler.

Ceci est la classe de configuration destinée à stocker la configuration d'un LwDetrModel. Elle est utilisée pour instancier un modèle Lw Detr en fonction des arguments spécifiés, définissant ainsi l'architecture du modèle. L'instanciation d'une configuration avec les valeurs par défaut produira une configuration similaire à celle de AnnaZhang/lwdetr_small_60e_coco

Les objets de configuration héritent de PreTrainedConfig et peuvent être utilisés pour contrôler les sorties du modèle. Consultez la documentation de PreTrainedConfig pour plus d’informations.

Exemples :

>>> 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 )

Paramètres

  • hidden_size (int, facultatif, par défaut 768) — Dimension des représentations cachées.
  • num_hidden_layers (int, facultatif, par défaut 12) — Nombre de couches cachées dans le décodeur Transformer.
  • num_attention_heads (int, facultatif, valeur par défaut 12) — Nombre de têtes d'attention pour chaque couche d'attention du décodeur Transformer.
  • mlp_ratio (int, facultatif, par défaut 4) — Ratio de la dimension cachée du MLP par rapport à la dimension d'embedding.
  • hidden_act (str, facultatif, par défaut gelu) — La fonction d'activation non linéaire (fonction ou chaîne de caractères) du décodeur. Par exemple, "gelu", "relu", "silu", etc.
  • dropout_prob (Union[float, int], facultatif, par défaut 0.0) — Le taux appliqué à toutes les couches de dropout.
  • initializer_range (float, facultatif, par défaut 0.02) — L'écart-type de la truncated_normal_initializer utilisé pour initialiser toutes les matrices de poids.
  • layer_norm_eps (float, facultatif, valeur par défaut 1e-06) — L'épsilon utilisé par les couches de normalisation de couche.
  • image_size (Union[int, list[int], tuple[int, int]], facultatif, par défaut 256) — La taille (résolution) de chaque image.
  • pretrain_image_size (int, facultatif, valeur par défaut 224) — La taille (résolution) de chaque image lors de la préformation.
  • patch_size (Union[int, list[int], tuple[int, int]], facultatif, par défaut 16) — La taille (résolution) de chaque patch.
  • num_channels (int, facultatif, par défaut 3) — Le nombre de canaux d'entrée.
  • qkv_bias (bool, facultatif, par défaut True) — Indique s'il faut ajouter un biais aux requêtes, clés et valeurs.
  • window_block_indices (list[int], facultatif, par défaut []) — Liste des indices des blocs qui doivent utiliser l'attention par fenêtre au lieu de l'auto-attention globale régulière.
  • use_absolute_position_embeddings (bool, facultatif, par défaut True) — Indique s'il faut ajouter des embeddings de position absolus aux embeddings de patch.
  • cae_init_values (float, facultatif, valeur par défaut 0.1) — Valeur d'initialisation des paramètres CAE lorsque use_cae est activé.
  • num_windows (int, facultatif, par défaut 16) — Nombre de fenêtres pour l'attention basée sur les fenêtres. Doit être un carré parfait et la taille de l'image doit être divisible par la racine carrée de cette valeur. Cela permet une organisation efficace des cartes de caractéristiques par fenêtre.

Ceci est la classe de configuration destinée à stocker la configuration d'un LwDetrModel. Elle est utilisée pour instancier un modèle Lw Detr en fonction des arguments spécifiés, définissant ainsi l'architecture du modèle. L'instanciation d'une configuration avec les valeurs par défaut produira une configuration similaire à celle de AnnaZhang/lwdetr_small_60e_coco

Les objets de configuration héritent de PreTrainedConfig et peuvent être utilisés pour contrôler les sorties du modèle. Consultez la documentation de PreTrainedConfig pour plus d’informations.

Exemple :

>>> 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 )

Paramètres

  • config (LwDetrConfig) — Classe de configuration du modèle contenant tous les paramètres du modèle. L’initialisation à partir d’un fichier de configuration ne charge pas les poids associés au modèle, uniquement la configuration. Consultez la méthode from_pretrained() pour charger les poids du modèle.

Le modèle LW Detr brut (composé d'un backbone et d'un Transformer décodeur) qui produit des états cachés bruts sans aucune tête spécifique au sommet.

Ce modèle hérite de PreTrainedModel. Consultez la documentation de la classe parente pour les méthodes génériques que la bibliothèque implémente pour tous ses modèles (tels que le téléchargement ou l'enregistrement, le redimensionnement des embeddings d'entrée, la taille des têtes, etc.)

Ce modèle est également une sous-classe de torch.nn.Module de PyTorch. Utilisez-le comme un module PyTorch standard et consultez la documentation de PyTorch pour tout ce qui concerne l'utilisation et le comportement généraux.

forward

< >

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

Paramètres

  • pixel_values (torch.Tensor de forme (batch_size, num_channels, image_size, image_size), facultatif) — Les tenseurs correspondant aux images d’entrée. Les valeurs de pixels peuvent être obtenues à l’aide de DeformableDetrImageProcessor. Voir DeformableDetrImageProcessor.call() pour plus de détails (processor_class utilise DeformableDetrImageProcessor pour le traitement des images).
  • pixel_mask (torch.LongTensor de forme (batch_size, height, width), facultatif) — Masque pour éviter d'appliquer l'attention aux valeurs de pixels de bourrage. Les valeurs du masque sont sélectionnées dans [0, 1]:
    • 1 pour les pixels réels (c.-à-d. non masqués),
    • 0 pour les pixels qui sont du bourrage (c.-à-d. masqués).

    Qu'est-ce que les masques d'attention ?

Retourne

LwDetrModelOutput ou tuple(torch.Tensor)

Un LwDetrModelOutput ou un tuple de torch.Tensor (si return_dict=False est passé ou lorsque config.return_dict=False) comprenant divers éléments en fonction de la configuration (LwDetrConfig) et des entrées.

La méthode forward du modèle LwDetrModel redéfinit la méthode spéciale __call__.

Bien que la recette de la passe avant doive être définie dans cette fonction, il faut ensuite appeler l'instance Module plutôt que celle-ci, car la première gère l'exécution des étapes de prétraitement et de post-traitement, tandis que la seconde les ignore silencieusement.

  • init_reference_points (torch.Tensor de forme (batch_size, num_queries, 4)) — Points de référence initiaux transmis au décodeur du Transformer.

  • last_hidden_state (torch.Tensor de forme (batch_size, sequence_length, hidden_size), facultatif) — Séquence d'états cachés à la sortie de la dernière couche du modèle.

  • intermediate_hidden_states (torch.Tensor de forme (batch_size, config.decoder_layers, num_queries, hidden_size)) — États cachés intermédiaires empilés (sortie de chaque couche du décodeur).

  • intermediate_reference_points (torch.Tensor de forme (batch_size, config.decoder_layers, num_queries, 4)) — Points de référence intermédiaires empilés (points de référence de chaque couche du décodeur).

  • enc_outputs_class (torch.Tensor de forme (batch_size, sequence_length, config.num_labels), facultatif, renvoyé lorsque config.with_box_refine=True et config.two_stage=True) — Scores des boîtes englobantes prédites, où les config.two_stage_num_proposals boîtes englobantes ayant les scores les plus élevés sont sélectionnées comme propositions de régions dans la première étape. Sortie de la classification binaire des boîtes englobantes (c.-à-d. premier plan et arrière-plan).

  • enc_outputs_coord_logits (torch.Tensor de forme (batch_size, sequence_length, 4), facultatif, renvoyé lorsque config.with_box_refine=True et config.two_stage=True) — Logits des coordonnées des boîtes englobantes prédites à la première étape.

  • hidden_states (tuple[torch.Tensor, ...], facultatif, renvoyé lorsque output_hidden_states=True est passé ou lorsque config.output_hidden_states=True) — Tuple de torch.Tensor (un pour la sortie des embeddings, si le modèle possède une couche d’embedding, + un pour la sortie de chaque couche) de forme (batch_size, sequence_length, hidden_size).

    États cachés du modèle à la sortie de chaque couche, ainsi que les sorties d'incorporation initiales facultatives.

  • attentions (tuple[torch.Tensor, ...], facultatif, renvoyé lorsque output_attentions=True est passé ou lorsque config.output_attentions=True) — Tuple de torch.Tensor (un par couche) de forme (batch_size, num_heads, sequence_length, sequence_length).

    Poids des attentions après le softmax d'attention, utilisés pour calculer la moyenne pondérée dans les têtes d'auto-attention.

  • cross_attentions (tuple[torch.Tensor, ...], facultatif, renvoyé lorsque output_attentions=True est passé ou lorsque config.output_attentions=True) — Tuple de torch.Tensor (un par couche) de forme (batch_size, num_heads, sequence_length, sequence_length).

    Poids d'attention de la couche d'attention croisée du décodeur, après le softmax d'attention, utilisés pour calculer la moyenne pondérée dans les têtes d'attention croisée.

Exemples :

>>> 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 )

Paramètres

  • config (LwDetrConfig) — Classe de configuration du modèle contenant tous les paramètres du modèle. L’initialisation à partir d’un fichier de configuration ne charge pas les poids associés au modèle, uniquement la configuration. Consultez la méthode from_pretrained() pour charger les poids du modèle.

Modèle LW DETR (composé d'un backbone et d'un Transformer décodeur) avec des têtes de détection d'objets au sommet, pour des tâches telles que la détection COCO.

Ce modèle hérite de PreTrainedModel. Consultez la documentation de la classe parente pour les méthodes génériques que la bibliothèque implémente pour tous ses modèles (tels que le téléchargement ou l'enregistrement, le redimensionnement des embeddings d'entrée, la taille des têtes, etc.)

Ce modèle est également une sous-classe de torch.nn.Module de PyTorch. Utilisez-le comme un module PyTorch standard et consultez la documentation de PyTorch pour tout ce qui concerne l'utilisation et le comportement généraux.

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)

Paramètres

  • pixel_values (torch.Tensor de forme (batch_size, num_channels, image_size, image_size), facultatif) — Les tenseurs correspondant aux images d’entrée. Les valeurs de pixels peuvent être obtenues à l’aide de DeformableDetrImageProcessor. Voir DeformableDetrImageProcessor.call() pour plus de détails (processor_class utilise DeformableDetrImageProcessor pour le traitement des images).
  • pixel_mask (torch.LongTensor de forme (batch_size, height, width), facultatif) — Masque pour éviter d'appliquer l'attention aux valeurs de pixels de bourrage. Les valeurs du masque sont sélectionnées dans [0, 1]:
    • 1 pour les pixels réels (c.-à-d. non masqués),
    • 0 pour les pixels qui sont du bourrage (c.-à-d. masqués).

    Qu'est-ce que les masques d'attention ?

  • labels (list[Dict] de longueur (batch_size,), facultatif) — Étiquettes pour le calcul de la perte de correspondance bipartite. Liste de dictionnaires, chaque dictionnaire contenant au moins les 2 clés suivantes : ‘class_labels’ et ‘boxes’ (les étiquettes de classes et les boîtes englobantes d’une image du lot, respectivement). Les étiquettes de classes elles-mêmes doivent être un torch.LongTensor de longueur (number of bounding boxes in the image,) et les boîtes un torch.Tensor de forme (number of bounding boxes in the image, 4).

Retourne

LwDetrObjectDetectionOutput ou tuple(torch.Tensor)

Un LwDetrObjectDetectionOutput ou un tuple de torch.Tensor (si return_dict=False est passé ou lorsque config.return_dict=False) comprenant divers éléments en fonction de la configuration (LwDetrConfig) et des entrées.

La méthode forward de LwDetrForObjectDetection redéfinit la méthode spéciale __call__.

Bien que la recette de la passe avant doive être définie dans cette fonction, il faut ensuite appeler l'instance Module plutôt que celle-ci, car la première gère l'exécution des étapes de prétraitement et de post-traitement, tandis que la seconde les ignore silencieusement.

  • loss (torch.Tensor de forme (1,), facultatif, renvoyé lorsque labels est fourni)) — Perte totale en tant que combinaison linéaire d'une négative log-vraisemblance (entropie croisée) pour la prédiction de classe et d'une perte de boîte englobante. Cette dernière est définie comme une combinaison linéaire de la perte L1 et de la perte d'IoU généralisée insensible à l'échelle.

  • loss_dict (Dict, facultatif) — Un dictionnaire contenant les pertes individuelles. Utile pour la journalisation.

  • logits (torch.Tensor de forme (batch_size, num_queries, num_classes + 1)) — Logits de classification (y compris no-object) pour toutes les requêtes.

  • pred_boxes (torch.Tensor de forme (batch_size, num_queries, 4)) — Coordonnées des boîtes normalisées pour toutes les requêtes, représentées sous la forme (center_x, center_y, width, height). Ces valeurs sont normalisées dans [0, 1], par rapport à la taille de chaque image individuelle du lot (en ignorant le padding éventuel). Vous pouvez utiliser ~DeformableDetrProcessor.post_process_object_detection pour récupérer les boîtes englobantes non normalisées.

  • auxiliary_outputs (list[Dict], facultatif) — Facultatif, renvoyé uniquement lorsque les pertes auxiliaires sont activées (c.-à-d. config.auxiliary_loss est défini sur True) et que des étiquettes sont fournies. C'est une liste de dictionnaires contenant les deux clés ci-dessus (logits et pred_boxes) pour chaque couche du décodeur.

  • init_reference_points (torch.Tensor de forme (batch_size, num_queries, 4)) — Points de référence initiaux transmis au décodeur du Transformer.

  • last_hidden_state (torch.Tensor de forme (batch_size, sequence_length, hidden_size), facultatif) — Séquence d'états cachés à la sortie de la dernière couche du modèle.

  • intermediate_hidden_states (torch.Tensor de forme (batch_size, config.decoder_layers, num_queries, hidden_size)) — États cachés intermédiaires empilés (sortie de chaque couche du décodeur).

  • intermediate_reference_points (torch.Tensor de forme (batch_size, config.decoder_layers, num_queries, 4)) — Points de référence intermédiaires empilés (points de référence de chaque couche du décodeur).

  • enc_outputs_class (torch.Tensor de forme (batch_size, sequence_length, config.num_labels), facultatif, renvoyé lorsque config.with_box_refine=True et config.two_stage=True) — Scores des boîtes englobantes prédites, où les config.two_stage_num_proposals boîtes englobantes ayant les scores les plus élevés sont sélectionnées comme propositions de régions dans la première étape. Sortie de la classification binaire des boîtes englobantes (c.-à-d. premier plan et arrière-plan).

  • enc_outputs_coord_logits (torch.Tensor de forme (batch_size, sequence_length, 4), facultatif, renvoyé lorsque config.with_box_refine=True et config.two_stage=True) — Logits des coordonnées des boîtes englobantes prédites à la première étape.

  • hidden_states (tuple[torch.Tensor, ...], facultatif, renvoyé lorsque output_hidden_states=True est passé ou lorsque config.output_hidden_states=True) — Tuple de torch.Tensor (un pour la sortie des embeddings, si le modèle possède une couche d’embedding, + un pour la sortie de chaque couche) de forme (batch_size, sequence_length, hidden_size).

    États cachés du modèle à la sortie de chaque couche, ainsi que les sorties d'incorporation initiales facultatives.

  • attentions (tuple[torch.Tensor, ...], facultatif, renvoyé lorsque output_attentions=True est passé ou lorsque config.output_attentions=True) — Tuple de torch.Tensor (un par couche) de forme (batch_size, num_heads, sequence_length, sequence_length).

    Poids des attentions après le softmax d'attention, utilisés pour calculer la moyenne pondérée dans les têtes d'auto-attention.

  • cross_attentions (tuple[torch.Tensor, ...], facultatif, renvoyé lorsque output_attentions=True est passé ou lorsque config.output_attentions=True) — Tuple de torch.Tensor (un par couche) de forme (batch_size, num_heads, sequence_length, sequence_length).

    Poids d'attention de la couche d'attention croisée du décodeur, après le softmax d'attention, utilisés pour calculer la moyenne pondérée dans les têtes d'attention croisée.

Exemples :

>>> 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 )

Paramètres

  • config (LwDetrViTConfig) — Classe de configuration du modèle contenant tous les paramètres du modèle. L’initialisation à partir d’un fichier de configuration ne charge pas les poids associés au modèle, uniquement la configuration. Consultez la méthode from_pretrained() pour charger les poids du modèle.

Le backbone de Lw Detr.

Ce modèle hérite de PreTrainedModel. Consultez la documentation de la classe parente pour les méthodes génériques que la bibliothèque implémente pour tous ses modèles (tels que le téléchargement ou l'enregistrement, le redimensionnement des embeddings d'entrée, la taille des têtes, etc.)

Ce modèle est également une sous-classe de torch.nn.Module de PyTorch. Utilisez-le comme un module PyTorch standard et consultez la documentation de PyTorch pour tout ce qui concerne l'utilisation et le comportement généraux.

forward

< >

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

Paramètres

Retourne

BackboneOutput ou tuple(torch.Tensor)

Un BackboneOutput ou un tuple de torch.Tensor (si return_dict=False est passé ou lorsque config.return_dict=False) comprenant divers éléments en fonction de la configuration (LwDetrConfig) et des entrées.

La méthode forward de LwDetrViTBackbone redéfinit la méthode spéciale __call__.

Bien que la recette de la passe avant doive être définie dans cette fonction, il faut ensuite appeler l'instance Module plutôt que celle-ci, car la première gère l'exécution des étapes de prétraitement et de post-traitement, tandis que la seconde les ignore silencieusement.

  • feature_maps (tuple(torch.Tensor) de forme (batch_size, num_channels, height, width)) — Cartes de caractéristiques des étapes.

  • hidden_states (tuple(torch.Tensor), facultatif, renvoyé lorsque output_hidden_states=True est passé ou lorsque config.output_hidden_states=True) — Tuple de torch.Tensor (un pour la sortie des embeddings + un pour la sortie de chaque couche) de forme (batch_size, sequence_length, hidden_size) ou (batch_size, num_channels, height, width), selon le backbone.

    États cachés du modèle à la sortie de chaque étape, ainsi que les sorties des embeddings initiaux.

  • attentions (tuple(torch.Tensor), facultatif, renvoyé lorsque output_attentions=True est passé ou lorsque config.output_attentions=True) — Tuple de torch.Tensor (un par couche) de forme (batch_size, num_heads, sequence_length, sequence_length). Applicable uniquement si le backbone utilise l'attention.

    Poids des attentions après le softmax d'attention, utilisés pour calculer la moyenne pondérée dans les têtes d'auto-attention.

Exemples :

>>> 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