# DETR condicional

## Resumen

El modelo Conditional DETR fue propuesto en [Conditional DETR for Fast Training Convergence](https://huggingface.co/papers/2108.06152) por Depu Meng, Xiaokang Chen, Zejia Fan, Gang Zeng, Houqiang Li, Yuhui Yuan, Lei Sun, Jingdong Wang. Conditional DETR presenta un mecanismo de atención cruzada condicional para un entrenamiento rápido de DETR. Conditional DETR converge de 6,7× a 10× más rápido que DETR.

El resumen del artículo es el siguiente:

*El enfoque DETR, desarrollado recientemente, aplica la arquitectura de codificador y decodificador de los transformers a la detección de objetos y logra un rendimiento prometedor. En este artículo, abordamos el problema crítico de la lenta convergencia del entrenamiento y presentamos un mecanismo de atención cruzada condicional para el entrenamiento rápido de DETR. Nuestro enfoque se basa en que la atención cruzada en DETR depende en gran medida de las incrustaciones de contenido para localizar las cuatro extremidades y predecir la caja, lo que aumenta la necesidad de incrustaciones de contenido de alta calidad y, por tanto, la dificultad del entrenamiento. Nuestro enfoque, denominado conditional DETR, aprende una consulta espacial condicional a partir de la incrustación del decodificador para la atención cruzada multi-cabeza del decodificador. La ventaja es que, a través de la consulta espacial condicional, cada cabeza de atención cruzada puede prestar atención a una banda que contiene una región distinta, por ejemplo, una extremidad del objeto o una región dentro de la caja del objeto. Esto reduce el rango espacial para localizar las regiones distintas para la clasificación de objetos y la regresión de cajas, lo que relaja la dependencia de las incrustaciones de contenido y facilita el entrenamiento. Los resultados empíricos muestran que conditional DETR converge 6,7 veces más rápido para los backbones R50 y R101 y 10 veces más rápido para backbones más potentes como DC5-R50 y DC5-R101. El código está disponible en https://github.com/Atten4Vis/ConditionalDETR.*

<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/model_doc/conditional_detr_curve.jpg"
alt="drawing" width="600"/>

 Conditional DETR muestra una convergencia mucho más rápida en comparación con el DETR original. Tomado del artículo original.

Este modelo fue aportado por [DepuMeng](https://huggingface.co/DepuMeng). El código original se puede encontrar [aquí](https://github.com/Atten4Vis/ConditionalDETR).

## Recursos

- Véase también: [Guía de la tarea de detección de objetos](../tasks/object_detection).

## ConditionalDetrConfig[[transformers.ConditionalDetrConfig]]

#### transformers.ConditionalDetrConfig[[transformers.ConditionalDetrConfig]]

```python
transformers.ConditionalDetrConfig(transformers_version: str | None = None, architectures: list[str] | None = None, output_hidden_states: bool | None = False, return_dict: bool | None = True, dtype: str | torch.dtype | None = None, chunk_size_feed_forward: int = 0, id2label: dict[int, str] | dict[str, str] | None = None, label2id: dict[str, int] | dict[str, str] | None = None, problem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = None, is_encoder_decoder: bool = True, backbone_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None, num_channels: int = 3, num_queries: int = 300, encoder_layers: int = 6, encoder_ffn_dim: int = 2048, encoder_attention_heads: int = 8, decoder_layers: int = 6, decoder_ffn_dim: int = 2048, decoder_attention_heads: int = 8, encoder_layerdrop: float | int = 0.0, decoder_layerdrop: float | int = 0.0, activation_function: str = 'relu', d_model: int = 256, dropout: float | int = 0.1, attention_dropout: float | int = 0.0, activation_dropout: float | int = 0.0, init_std: float = 0.02, init_xavier_std: float = 1.0, auxiliary_loss: bool = False, position_embedding_type: str = 'sine', dilation: bool = False, class_cost: int = 2, bbox_cost: int = 5, giou_cost: int = 2, mask_loss_coefficient: int = 1, dice_loss_coefficient: int = 1, cls_loss_coefficient: int = 2, bbox_loss_coefficient: int = 5, giou_loss_coefficient: int = 2, focal_alpha: float = 0.25)
```

[Fuente](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/conditional_detr/configuration_conditional_detr.py#L25)

**Parámetros:**

is_encoder_decoder (`bool`, *opcional*, valor predeterminado `True`) : Indica si el modelo se utiliza como codificador/decodificador o no.

backbone_config (`Union[dict, ~configuration_utils.PreTrainedConfig]`, *opcional*) : La configuración del modelo de base.

num_channels (`int`, *opcional*, valor predeterminado `3`) : El número de canales de entrada.

num_queries (`int`, *opcional*, valor predeterminado 300) : Número de consultas de objetos, es decir, ranuras de detección. Este es el número máximo de objetos que [ConditionalDetrModel](/docs/transformers/v5.23.0/es/model_doc/conditional_detr#transformers.ConditionalDetrModel) puede detectar en una sola imagen. Para COCO, recomendamos 100 consultas.

encoder_layers (`int`, *opcional*, valor predeterminado `6`) : Número de capas ocultas en el codificador Transformer. Usará el mismo valor que `num_layers` si no se establece.

encoder_ffn_dim (`int`, *opcional*, valor predeterminado `2048`) : Dimensionalidad de la capa "intermedia" (a menudo denominada feed-forward) en el codificador.

encoder_attention_heads (`int`, *opcional*, valor predeterminado `8`) : Número de cabezas de atención para cada capa de atención en el codificador Transformer.

decoder_layers (`int`, *opcional*, valor predeterminado `6`) : Número de capas ocultas en el decodificador Transformer. Usará el mismo valor que `num_layers` si no se establece.

decoder_ffn_dim (`int`, *opcional*, valor predeterminado `2048`) : Dimensionalidad de la capa "intermedia" (a menudo denominada feed-forward) en el decodificador.

decoder_attention_heads (`int`, *opcional*, valor predeterminado `8`) : Número de cabezas de atención para cada capa de atención en el decodificador del Transformer.

encoder_layerdrop (`Union[float, int]`, *opcional*, valor predeterminado `0.0`) : La probabilidad de LayerDrop para el codificador. Consulte el [artículo de LayerDrop](see https://huggingface.co/papers/1909.11556) para obtener más detalles.

decoder_layerdrop (`Union[float, int]`, *opcional*, valor predeterminado `0.0`) : La probabilidad de LayerDrop para el decodificador. Consulte el [artículo de LayerDrop](see https://huggingface.co/papers/1909.11556) para obtener más detalles.

activation_function (`str`, *opcional*, valor predeterminado `relu`) : La función de activación no lineal (función o cadena) en el decodificador. Por ejemplo, `"gelu"`, `"relu"`, `"silu"`, etc.

d_model (`int`, *opcional*, valor predeterminado `256`) : Tamaño de las capas del codificador y de la capa pooler.

dropout (`Union[float, int]`, *opcional*, valor predeterminado `0.1`) : La proporción para todas las capas de dropout.

attention_dropout (`Union[float, int]`, *opcional*, valor predeterminado `0.0`) : La proporción de dropout para las probabilidades de atención.

activation_dropout (`Union[float, int]`, *opcional*, valor predeterminado `0.0`) : La proporción de dropout para las activaciones dentro de la capa totalmente conectada.

init_std (`float`, *opcional*, valor predeterminado `0.02`) : La desviación estándar de truncated_normal_initializer para inicializar todas las matrices de pesos.

init_xavier_std (`float`, *opcional*, valor predeterminado `1.0`) : El factor de escala utilizado para la inicialización de Xavier de los pesos de la atención cruzada.

auxiliary_loss (`bool`, *opcional*, valor predeterminado `False`) : Indica si se deben utilizar las pérdidas de decodificación auxiliares (pérdida en cada capa del decodificador).

position_embedding_type (`str`, *opcional*, valor predeterminado `"sine"`) : Tipo de incrustaciones de posición que se utilizará sobre las características de la imagen. Uno de `"sine"` o `"learned"`.

dilation (`bool`, *opcional*, valor predeterminado `False`) : Si se debe reemplazar el stride con la dilatación en el último bloque convolucional (DC5). Solo se admite cuando `use_timm_backbone` = `True`.

class_cost (`int`, *opcional*, valor predeterminado `2`) : Peso relativo del error de clasificación en el coste de correspondencia húngara.

bbox_cost (`int`, *opcional*, valor predeterminado `5`) : Peso relativo del error de la caja delimitadora L1 en el costo de correspondencia húngara.

giou_cost (`int`, *opcional*, valor predeterminado `2`) : Peso relativo de la pérdida de IoU generalizada en el costo de correspondencia húngara.

mask_loss_coefficient (`int`, *opcional*, valor predeterminado `1`) : Peso relativo de la pérdida focal en la pérdida de segmentación panóptica.

dice_loss_coefficient (`int`, *opcional*, valor predeterminado `1`) : Peso relativo de la pérdida dice en la pérdida de segmentación panóptica.

cls_loss_coefficient (`int`, *opcional*, valor predeterminado `2`) : Peso relativo de la pérdida de clasificación en la pérdida de segmentación panóptica.

bbox_loss_coefficient (`int`, *opcional*, valor predeterminado `5`) : Peso relativo de la pérdida de caja delimitadora L1 en la pérdida de segmentación panóptica.

giou_loss_coefficient (`int`, *opcional*, valor predeterminado `2`) : Peso relativo de la pérdida de IoU generalizada en la pérdida de segmentación panóptica.

focal_alpha (`float`, *opcional*, valor predeterminado `0.25`) : Parámetro alfa en la pérdida focal.

Esta es la clase de configuración para almacenar la configuración de un ConditionalDetrModel. Se utiliza para instanciar un modelo Conditional Detr según los argumentos especificados, definiendo la arquitectura del modelo. Instanciar una configuración con los valores predeterminados producirá una configuración similar a la de [microsoft/conditional-detr-resnet-50](https://huggingface.co/microsoft/conditional-detr-resnet-50)

Los objetos de configuración heredan de [PreTrainedConfig](/docs/transformers/v5.23.0/es/main_classes/configuration#transformers.PreTrainedConfig) y se pueden utilizar para controlar las salidas del modelo. Consulte la documentación de [PreTrainedConfig](/docs/transformers/v5.23.0/es/main_classes/configuration#transformers.PreTrainedConfig) para obtener más información.

Ejemplos:

```python
>>> from transformers import ConditionalDetrConfig, ConditionalDetrModel

>>> # Initializing a Conditional DETR microsoft/conditional-detr-resnet-50 style configuration
>>> configuration = ConditionalDetrConfig()

>>> # Initializing a model (with random weights) from the microsoft/conditional-detr-resnet-50 style configuration
>>> model = ConditionalDetrModel(configuration)

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

## ConditionalDetrImageProcessor[[transformers.ConditionalDetrImageProcessor]]

#### transformers.ConditionalDetrImageProcessor[[transformers.ConditionalDetrImageProcessor]]

```python
transformers.ConditionalDetrImageProcessor(**kwargs: *<class 'transformers.models.conditional_detr.image_processing_conditional_detr.ConditionalDetrImageProcessorKwargs'>)
```

[Fuente](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/conditional_detr/image_processing_conditional_detr.py#L428)

**Parámetros:**

do_convert_rgb (`bool`, *kwargs*, *opcional*) : Si se debe convertir la imagen a RGB.

do_resize (`bool`, *kwargs*, *opcional*, valor predeterminado `True`) : Si se debe redimensionar la imagen.

size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*, por defecto `{'shortest_edge' : 800, 'longest_edge': 1333}`): Describe las dimensiones máximas de entrada para el modelo.

default_to_square (`bool`, *kwargs*, *opcional*, valor predeterminado `False`) : Si se debe usar una imagen cuadrada por defecto al redimensionar, cuando size es un int.

crop_size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*) : Tamaño de la imagen de salida tras aplicar `center_crop`.

resample (`Annotated[Union[int, PILImageResampling, NoneType], None]`, *kwargs*, por defecto `2`) : Filtro de remuestreo que se utilizará si se redimensiona la imagen. Puede ser uno de los valores de la enumeración `PILImageResampling`. Solo tiene efecto si `do_resize` está establecido en `True`.

do_rescale (`bool`, *kwargs*, *opcional*, valor predeterminado `True`) : Indica si se debe reescalar la imagen.

rescale_factor (`float`, *kwargs*, *opcional*, valor predeterminado `0.00392156862745098`) : Factor de reescalado para reescalar la imagen si `do_rescale` está establecido en `True`.

do_normalize (`bool`, *kwargs*, *opcional*, valor predeterminado `True`) : Si se debe normalizar la imagen.

image_mean (`Union[float, list[float], tuple[float, ...]]`, *kwargs*, *opcional*, valor predeterminado `[0.485, 0.456, 0.406]`) : Media de la imagen a utilizar para la normalización. Solo tiene efecto si `do_normalize` está establecido en `True`.

image_std (`Union[float, list[float], tuple[float, ...]]`, *kwargs*, *opcional*, valor predeterminado `[0.229, 0.224, 0.225]`) : Desviación estándar de la imagen que se utilizará para la normalización. Solo tiene efecto si `do_normalize` está establecido en `True`.

do_pad (`bool`, *kwargs*, *opcional*, valor predeterminado `True`) : Indica si se debe aplicar relleno a la imagen. El relleno se realiza hasta el mayor tamaño del lote o hasta un tamaño cuadrado fijo por imagen. La estrategia exacta de relleno depende del modelo.

pad_size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*) : El tamaño en `{"height": int, "width" int}` al que se rellenan las imágenes. Debe ser mayor que el tamaño de cualquier imagen proporcionada para el preprocesamiento. Si no se proporciona `pad_size`, las imágenes se rellenarán hasta la mayor altura y anchura del lote. Se aplica solo cuando `do_pad=True.`

do_center_crop (`bool`, *kwargs*, *opcional*) : Si se debe recortar la imagen centrada.

data_format (`Union[str, ~image_utils.ChannelDimension]`, *kwargs*, *opcional*) : Solo se admite `ChannelDimension.FIRST`. Se añadió para garantizar la compatibilidad con los procesadores lentos.

input_data_format (`Union[str, ~image_utils.ChannelDimension]`, *kwargs*, *opcional*) : El formato de la dimensión de canal para la imagen de entrada. Si no se establece, el formato de la dimensión de canal se infiere a partir de la imagen de entrada. Puede ser uno de: - `"channels_first"` o `ChannelDimension.FIRST`: imagen en formato (num_channels, height, width). - `"channels_last"` o `ChannelDimension.LAST`: imagen en formato (height, width, num_channels). - `"none"` o `ChannelDimension.NONE`: imagen en formato (height, width).

device (`Annotated[Union[str, torch.device, NoneType], None]`, *kwargs*) : El dispositivo en el que se procesarán los vídeos. Si no se establece, el dispositivo se infiere a partir de los vídeos de entrada.

return_tensors (`Annotated[str | ~utils.generic.TensorType | None, None]`, *kwargs*) : Devuelve tensores apilados si se establece en `'pt'`; en caso contrario, devuelve una lista de tensores.

disable_grouping (`bool`, *kwargs*, *opcional*) : Si se debe deshabilitar el agrupamiento de imágenes por tamaño para procesarlas de forma individual y no en lotes. Si es None, se establecerá en True si las imágenes están en CPU, y en False en caso contrario. Esta elección se basa en observaciones empíricas, como se detalla aquí: https://github.com/huggingface/transformers/pull/38157

image_seq_length (`int`, *kwargs*, *opcional*) : El número de tokens de imagen que se utilizarán para cada imagen en la entrada. Se añadió por compatibilidad con versiones anteriores, pero en los modelos futuros esto debería configurarse como un atributo del procesador.

format (`str`, *kwargs*, *opcional*, por defecto `AnnotationFormat.COCO_DETECTION`) : Formato de datos de las anotaciones. Uno de "coco_detection" o "coco_panoptic".

do_convert_annotations (`bool`, *kwargs*, *opcional*, valor predeterminado `True`) : Controla si se deben convertir las anotaciones al formato esperado por el modelo CONDITIONAL_DETR. Convierte las cajas delimitadoras al formato `(center_x, center_y, width, height)` y en el rango `[0, 1]`. Se puede anular mediante el parámetro `do_convert_annotations` en el método `preprocess`.

Construye un procesador de imágenes ConditionalDetrImageProcessor.

#### preprocess[[transformers.ConditionalDetrImageProcessor.preprocess]]

```python
preprocess(images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']], annotations: dict[str, int | str | list[dict]] | list[dict[str, int | str | list[dict]]] | None = None, return_segmentation_masks: bool | None = None, masks_path: str | pathlib.Path | None = None, **kwargs: *<class 'transformers.models.conditional_detr.image_processing_conditional_detr.ConditionalDetrImageProcessorKwargs'>)
```

[Fuente](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/conditional_detr/image_processing_conditional_detr.py#L683)

**Parámetros:**

images (`Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]`) : Imagen a preprocesar. Espera una imagen única o un lote de imágenes con valores de píxeles que van de 0 a 255. Si se pasan imágenes con valores de píxeles entre 0 y 1, establezca `do_rescale=False`.

annotations (`AnnotationType` o `list[AnnotationType]`, *opcional*) : Anotaciones que se transformarán según el relleno aplicado a las imágenes.

return_segmentation_masks (`bool`, *opcional*, valor predeterminado `self.return_segmentation_masks`) : Si se deben devolver las máscaras de segmentación.

masks_path (`str` o `pathlib.Path`, *opcional*) : Ruta al directorio que contiene las máscaras de segmentación.

do_convert_rgb (`bool`, *kwargs*, *opcional*) : Si se debe convertir la imagen a RGB.

do_resize (`bool`, *kwargs*, *opcional*) : Si se debe redimensionar la imagen.

size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*) : Describe las dimensiones máximas de entrada del modelo.

default_to_square (`bool`, *kwargs*, *opcional*) : Si el tamaño es un entero, si se debe usar una imagen cuadrada por defecto al redimensionar.

crop_size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*) : Tamaño de la imagen de salida tras aplicar `center_crop`.

resample (`Annotated[Union[int, PILImageResampling, NoneType], None]`, *kwargs*) : Filtro de remuestreo que se utilizará si se redimensiona la imagen. Puede ser uno de los valores de la enumeración `PILImageResampling`. Solo tiene efecto si `do_resize` está establecido en `True`.

do_rescale (`bool`, *kwargs*, *opcional*) : Si se debe reescalar la imagen.

rescale_factor (`float`, *kwargs*, *opcional*) : Factor de reescalado para reescalar la imagen si `do_rescale` está establecido en `True`.

do_normalize (`bool`, *kwargs*, *opcional*) : Si se debe normalizar la imagen.

image_mean (`Union[float, list[float], tuple[float, ...]]`, *kwargs*, *opcional*) : Media de la imagen a utilizar para la normalización. Solo tiene efecto si `do_normalize` está establecido en `True`.

image_std (`Union[float, list[float], tuple[float, ...]]`, *kwargs*, *opcional*) : Desviación estándar de la imagen a utilizar para la normalización. Solo tiene efecto si `do_normalize` está establecido en `True`.

do_pad (`bool`, *kwargs*, *opcional*) : Indica si se debe aplicar relleno a la imagen. El relleno se realiza hasta el tamaño más grande del lote o hasta un tamaño cuadrado fijo por imagen. La estrategia exacta de relleno depende del modelo.

pad_size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*) : El tamaño en `{"height": int, "width" int}` al que se rellenan las imágenes. Debe ser mayor que el tamaño de cualquier imagen proporcionada para el preprocesamiento. Si no se proporciona `pad_size`, las imágenes se rellenarán hasta la mayor altura y anchura del lote. Se aplica solo cuando `do_pad=True.`

do_center_crop (`bool`, *kwargs*, *opcional*) : Si se debe recortar la imagen centrada.

data_format (`Union[str, ~image_utils.ChannelDimension]`, *kwargs*, *opcional*) : Solo se admite `ChannelDimension.FIRST`. Se añadió para garantizar la compatibilidad con los procesadores lentos.

input_data_format (`Union[str, ~image_utils.ChannelDimension]`, *kwargs*, *opcional*) : El formato de la dimensión de canal para la imagen de entrada. Si no se establece, el formato de la dimensión de canal se infiere a partir de la imagen de entrada. Puede ser uno de: - `"channels_first"` o `ChannelDimension.FIRST`: imagen en formato (num_channels, height, width). - `"channels_last"` o `ChannelDimension.LAST`: imagen en formato (height, width, num_channels). - `"none"` o `ChannelDimension.NONE`: imagen en formato (height, width).

device (`Annotated[Union[str, torch.device, NoneType], None]`, *kwargs*) : El dispositivo en el que se procesarán los vídeos. Si no se establece, el dispositivo se infiere a partir de los vídeos de entrada.

return_tensors (`Annotated[str | ~utils.generic.TensorType | None, None]`, *kwargs*) : Devuelve tensores apilados si se establece en `'pt'`; en caso contrario, devuelve una lista de tensores.

disable_grouping (`bool`, *kwargs*, *opcional*) : Si se debe deshabilitar el agrupamiento de imágenes por tamaño para procesarlas de forma individual y no en lotes. Si es None, se establecerá en True si las imágenes están en CPU, y en False en caso contrario. Esta elección se basa en observaciones empíricas, como se detalla aquí: https://github.com/huggingface/transformers/pull/38157

image_seq_length (`int`, *kwargs*, *opcional*) : El número de tokens de imagen que se utilizarán para cada imagen en la entrada. Se añadió por compatibilidad con versiones anteriores, pero en los modelos futuros esto debería configurarse como un atributo del procesador.

format (`str`, *kwargs*, *opcional*, por defecto `AnnotationFormat.COCO_DETECTION`) : Formato de datos de las anotaciones. Uno de "coco_detection" o "coco_panoptic".

do_convert_annotations (`bool`, *kwargs*, *opcional*, valor predeterminado `True`) : Controla si se deben convertir las anotaciones al formato esperado por el modelo CONDITIONAL_DETR. Convierte las cajas delimitadoras al formato `(center_x, center_y, width, height)` y en el rango `[0, 1]`. Se puede anular mediante el parámetro `do_convert_annotations` en el método `preprocess`.

**Devuelve:** `~image_processing_base.BatchFeature`

- **data** (`dict`) -- Diccionario de listas/arrays/tensores devueltos por el método __call__ ('pixel_values', etc.).
- **tensor_type** (`Union[None, str, TensorType]`, *opcional*) -- Puede especificar un tensor_type aquí para convertir las listas de enteros en Tensors de PyTorch/Numpy durante la inicialización.

## ConditionalDetrImageProcessorPil[[transformers.ConditionalDetrImageProcessorPil]]

#### transformers.ConditionalDetrImageProcessorPil[[transformers.ConditionalDetrImageProcessorPil]]

```python
transformers.ConditionalDetrImageProcessorPil(**kwargs: *<class 'transformers.models.conditional_detr.image_processing_pil_conditional_detr.ConditionalDetrImageProcessorKwargs'>)
```

[Fuente](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/conditional_detr/image_processing_pil_conditional_detr.py#L429)

**Parámetros:**

do_convert_rgb (`bool`, *kwargs*, *opcional*) : Si se debe convertir la imagen a RGB.

do_resize (`bool`, *kwargs*, *opcional*, valor predeterminado `True`) : Si se debe redimensionar la imagen.

size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*, por defecto `{'shortest_edge' : 800, 'longest_edge': 1333}`): Describe las dimensiones máximas de entrada para el modelo.

default_to_square (`bool`, *kwargs*, *opcional*, valor predeterminado `False`) : Si se debe usar una imagen cuadrada por defecto al redimensionar, cuando size es un int.

crop_size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*) : Tamaño de la imagen de salida tras aplicar `center_crop`.

resample (`Annotated[Union[int, PILImageResampling, NoneType], None]`, *kwargs*, por defecto `2`) : Filtro de remuestreo que se utilizará si se redimensiona la imagen. Puede ser uno de los valores de la enumeración `PILImageResampling`. Solo tiene efecto si `do_resize` está establecido en `True`.

do_rescale (`bool`, *kwargs*, *opcional*, valor predeterminado `True`) : Indica si se debe reescalar la imagen.

rescale_factor (`float`, *kwargs*, *opcional*, valor predeterminado `0.00392156862745098`) : Factor de reescalado para reescalar la imagen si `do_rescale` está establecido en `True`.

do_normalize (`bool`, *kwargs*, *opcional*, valor predeterminado `True`) : Si se debe normalizar la imagen.

image_mean (`Union[float, list[float], tuple[float, ...]]`, *kwargs*, *opcional*, valor predeterminado `[0.485, 0.456, 0.406]`) : Media de la imagen a utilizar para la normalización. Solo tiene efecto si `do_normalize` está establecido en `True`.

image_std (`Union[float, list[float], tuple[float, ...]]`, *kwargs*, *opcional*, valor predeterminado `[0.229, 0.224, 0.225]`) : Desviación estándar de la imagen que se utilizará para la normalización. Solo tiene efecto si `do_normalize` está establecido en `True`.

do_pad (`bool`, *kwargs*, *opcional*, valor predeterminado `True`) : Indica si se debe aplicar relleno a la imagen. El relleno se realiza hasta el mayor tamaño del lote o hasta un tamaño cuadrado fijo por imagen. La estrategia exacta de relleno depende del modelo.

pad_size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*) : El tamaño en `{"height": int, "width" int}` al que se rellenan las imágenes. Debe ser mayor que el tamaño de cualquier imagen proporcionada para el preprocesamiento. Si no se proporciona `pad_size`, las imágenes se rellenarán hasta la mayor altura y anchura del lote. Se aplica solo cuando `do_pad=True.`

do_center_crop (`bool`, *kwargs*, *opcional*) : Si se debe recortar la imagen centrada.

data_format (`Union[str, ~image_utils.ChannelDimension]`, *kwargs*, *opcional*) : Solo se admite `ChannelDimension.FIRST`. Se añadió para garantizar la compatibilidad con los procesadores lentos.

input_data_format (`Union[str, ~image_utils.ChannelDimension]`, *kwargs*, *opcional*) : El formato de la dimensión de canal para la imagen de entrada. Si no se establece, el formato de la dimensión de canal se infiere a partir de la imagen de entrada. Puede ser uno de: - `"channels_first"` o `ChannelDimension.FIRST`: imagen en formato (num_channels, height, width). - `"channels_last"` o `ChannelDimension.LAST`: imagen en formato (height, width, num_channels). - `"none"` o `ChannelDimension.NONE`: imagen en formato (height, width).

device (`Annotated[Union[str, torch.device, NoneType], None]`, *kwargs*) : El dispositivo en el que se procesarán los vídeos. Si no se establece, el dispositivo se infiere a partir de los vídeos de entrada.

return_tensors (`Annotated[str | ~utils.generic.TensorType | None, None]`, *kwargs*) : Devuelve tensores apilados si se establece en `'pt'`; en caso contrario, devuelve una lista de tensores.

disable_grouping (`bool`, *kwargs*, *opcional*) : Si se debe deshabilitar el agrupamiento de imágenes por tamaño para procesarlas de forma individual y no en lotes. Si es None, se establecerá en True si las imágenes están en CPU, y en False en caso contrario. Esta elección se basa en observaciones empíricas, como se detalla aquí: https://github.com/huggingface/transformers/pull/38157

image_seq_length (`int`, *kwargs*, *opcional*) : El número de tokens de imagen que se utilizarán para cada imagen en la entrada. Se añadió por compatibilidad con versiones anteriores, pero en los modelos futuros esto debería configurarse como un atributo del procesador.

format (`str`, *kwargs*, *opcional*, por defecto `AnnotationFormat.COCO_DETECTION`) : Formato de datos de las anotaciones. Uno de "coco_detection" o "coco_panoptic".

do_convert_annotations (`bool`, *kwargs*, *opcional*, valor predeterminado `True`) : Controla si se deben convertir las anotaciones al formato esperado por el modelo CONDITIONAL_DETR. Convierte las cajas delimitadoras al formato `(center_x, center_y, width, height)` y en el rango `[0, 1]`. Se puede anular mediante el parámetro `do_convert_annotations` en el método `preprocess`.

Construye un procesador de imágenes ConditionalDetrImageProcessor.

#### preprocess[[transformers.ConditionalDetrImageProcessorPil.preprocess]]

```python
preprocess(images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']], annotations: dict[str, int | str | list[dict]] | list[dict[str, int | str | list[dict]]] | None = None, return_segmentation_masks: bool | None = None, masks_path: str | pathlib.Path | None = None, **kwargs: *<class 'transformers.models.conditional_detr.image_processing_pil_conditional_detr.ConditionalDetrImageProcessorKwargs'>)
```

[Fuente](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/conditional_detr/image_processing_pil_conditional_detr.py#L697)

**Parámetros:**

images (`Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]`) : Imagen a preprocesar. Espera una imagen única o un lote de imágenes con valores de píxeles que van de 0 a 255. Si se pasan imágenes con valores de píxeles entre 0 y 1, establezca `do_rescale=False`.

annotations (`AnnotationType` o `list[AnnotationType]`, *opcional*) : Anotaciones que se transformarán según el relleno aplicado a las imágenes.

return_segmentation_masks (`bool`, *opcional*, valor predeterminado `self.return_segmentation_masks`) : Si se deben devolver las máscaras de segmentación.

masks_path (`str` o `pathlib.Path`, *opcional*) : Ruta al directorio que contiene las máscaras de segmentación.

do_convert_rgb (`bool`, *kwargs*, *opcional*) : Si se debe convertir la imagen a RGB.

do_resize (`bool`, *kwargs*, *opcional*) : Si se debe redimensionar la imagen.

size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*) : Describe las dimensiones máximas de entrada del modelo.

default_to_square (`bool`, *kwargs*, *opcional*) : Si el tamaño es un entero, si se debe usar una imagen cuadrada por defecto al redimensionar.

crop_size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*) : Tamaño de la imagen de salida tras aplicar `center_crop`.

resample (`Annotated[Union[int, PILImageResampling, NoneType], None]`, *kwargs*) : Filtro de remuestreo que se utilizará si se redimensiona la imagen. Puede ser uno de los valores de la enumeración `PILImageResampling`. Solo tiene efecto si `do_resize` está establecido en `True`.

do_rescale (`bool`, *kwargs*, *opcional*) : Si se debe reescalar la imagen.

rescale_factor (`float`, *kwargs*, *opcional*) : Factor de reescalado para reescalar la imagen si `do_rescale` está establecido en `True`.

do_normalize (`bool`, *kwargs*, *opcional*) : Si se debe normalizar la imagen.

image_mean (`Union[float, list[float], tuple[float, ...]]`, *kwargs*, *opcional*) : Media de la imagen a utilizar para la normalización. Solo tiene efecto si `do_normalize` está establecido en `True`.

image_std (`Union[float, list[float], tuple[float, ...]]`, *kwargs*, *opcional*) : Desviación estándar de la imagen a utilizar para la normalización. Solo tiene efecto si `do_normalize` está establecido en `True`.

do_pad (`bool`, *kwargs*, *opcional*) : Indica si se debe aplicar relleno a la imagen. El relleno se realiza hasta el tamaño más grande del lote o hasta un tamaño cuadrado fijo por imagen. La estrategia exacta de relleno depende del modelo.

pad_size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*) : El tamaño en `{"height": int, "width" int}` al que se rellenan las imágenes. Debe ser mayor que el tamaño de cualquier imagen proporcionada para el preprocesamiento. Si no se proporciona `pad_size`, las imágenes se rellenarán hasta la mayor altura y anchura del lote. Se aplica solo cuando `do_pad=True.`

do_center_crop (`bool`, *kwargs*, *opcional*) : Si se debe recortar la imagen centrada.

data_format (`Union[str, ~image_utils.ChannelDimension]`, *kwargs*, *opcional*) : Solo se admite `ChannelDimension.FIRST`. Se añadió para garantizar la compatibilidad con los procesadores lentos.

input_data_format (`Union[str, ~image_utils.ChannelDimension]`, *kwargs*, *opcional*) : El formato de la dimensión de canal para la imagen de entrada. Si no se establece, el formato de la dimensión de canal se infiere a partir de la imagen de entrada. Puede ser uno de: - `"channels_first"` o `ChannelDimension.FIRST`: imagen en formato (num_channels, height, width). - `"channels_last"` o `ChannelDimension.LAST`: imagen en formato (height, width, num_channels). - `"none"` o `ChannelDimension.NONE`: imagen en formato (height, width).

device (`Annotated[Union[str, torch.device, NoneType], None]`, *kwargs*) : El dispositivo en el que se procesarán los vídeos. Si no se establece, el dispositivo se infiere a partir de los vídeos de entrada.

return_tensors (`Annotated[str | ~utils.generic.TensorType | None, None]`, *kwargs*) : Devuelve tensores apilados si se establece en `'pt'`; en caso contrario, devuelve una lista de tensores.

disable_grouping (`bool`, *kwargs*, *opcional*) : Si se debe deshabilitar el agrupamiento de imágenes por tamaño para procesarlas de forma individual y no en lotes. Si es None, se establecerá en True si las imágenes están en CPU, y en False en caso contrario. Esta elección se basa en observaciones empíricas, como se detalla aquí: https://github.com/huggingface/transformers/pull/38157

image_seq_length (`int`, *kwargs*, *opcional*) : El número de tokens de imagen que se utilizarán para cada imagen en la entrada. Se añadió por compatibilidad con versiones anteriores, pero en los modelos futuros esto debería configurarse como un atributo del procesador.

format (`str`, *kwargs*, *opcional*, por defecto `AnnotationFormat.COCO_DETECTION`) : Formato de datos de las anotaciones. Uno de "coco_detection" o "coco_panoptic".

do_convert_annotations (`bool`, *kwargs*, *opcional*, valor predeterminado `True`) : Controla si se deben convertir las anotaciones al formato esperado por el modelo CONDITIONAL_DETR. Convierte las cajas delimitadoras al formato `(center_x, center_y, width, height)` y en el rango `[0, 1]`. Se puede anular mediante el parámetro `do_convert_annotations` en el método `preprocess`.

**Devuelve:** `~image_processing_base.BatchFeature`

- **data** (`dict`) -- Diccionario de listas/arrays/tensores devueltos por el método __call__ ('pixel_values', etc.).
- **tensor_type** (`Union[None, str, TensorType]`, *opcional*) -- Puede especificar un tensor_type aquí para convertir las listas de enteros en Tensors de PyTorch/Numpy durante la inicialización.

#### post_process_object_detection[[transformers.ConditionalDetrImageProcessorPil.post_process_object_detection]]

```python
post_process_object_detection(outputs, threshold: float = 0.5, target_sizes: transformers.utils.generic.TensorType | list[tuple] = None, top_k: int = 100)
```

[Fuente](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/conditional_detr/image_processing_pil_conditional_detr.py#L842)

**Parámetros:**

outputs (`ConditionalDetrObjectDetectionOutput`) : Salidas crudas del modelo.

threshold (`float`, *opcional*) : Umbral de puntuación para conservar las predicciones de detección de objetos.

target_sizes (`torch.Tensor` o `list[tuple[int, int]]`, *opcional*) : Tensor de forma `(batch_size, 2)` o lista de tuplas (`tuple[int, int]`) que contiene el tamaño objetivo (altura, ancho) de cada imagen del lote. Si se deja en None, las predicciones no se redimensionarán.

top_k (`int`, *opcional*, valor predeterminado 100) : Conserva solo los k recuadros delimitadores principales antes de filtrar mediante umbral.

**Devuelve:** `list[Dict]`

Una lista de diccionarios, donde cada diccionario contiene las puntuaciones, las etiquetas y las cajas de una imagen del lote, tal como las predice el modelo.

Convierte la salida cruda de [ConditionalDetrForObjectDetection](/docs/transformers/v5.23.0/es/model_doc/conditional_detr#transformers.ConditionalDetrForObjectDetection) en cajas delimitadoras finales en el formato (top_left_x, top_left_y, bottom_right_x, bottom_right_y). Solo admite PyTorch.

#### post_process_instance_segmentation[[transformers.ConditionalDetrImageProcessorPil.post_process_instance_segmentation]]

```python
post_process_instance_segmentation(outputs, threshold: float = 0.5, mask_threshold: float = 0.5, overlap_mask_area_threshold: float = 0.8, target_sizes: list[tuple[int, int]] | None = None, return_coco_annotation: bool | None = False)
```

[Fuente](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/conditional_detr/image_processing_pil_conditional_detr.py#L974)

**Parámetros:**

outputs ([ConditionalDetrForSegmentation](/docs/transformers/v5.23.0/es/model_doc/conditional_detr#transformers.ConditionalDetrForSegmentation)) : Salidas sin procesar del modelo.

threshold (`float`, *opcional*, valor predeterminado 0.5) : Umbral de puntuación de probabilidad para conservar las máscaras de instancias predichas.

mask_threshold (`float`, *opcional*, valor predeterminado 0.5) : Umbral a utilizar al convertir las máscaras predichas en valores binarios.

overlap_mask_area_threshold (`float`, *opcional*, valor predeterminado 0.8) : Umbral del área de la máscara de solapamiento para fusionar o descartar pequeñas partes desconectadas dentro de cada máscara de instancia binaria.

target_sizes (`list[Tuple]`, *opcional*) : Lista de longitud (batch_size), donde cada elemento de la lista (`tuple[int, int]]`) corresponde al tamaño final solicitado (altura, ancho) de cada predicción. Si no se establece, las predicciones no se redimensionarán.

return_coco_annotation (`bool`, *opcional*) : El valor predeterminado es `False`. Si se establece en `True`, los mapas de segmentación se devuelven en el formato de codificación por longitud de ejecución (RLE) de COCO.

**Devuelve:** `list[Dict]`

Una lista de diccionarios, uno por imagen, donde cada diccionario contiene dos claves:
- **segmentation** -- Un tensor de forma `(height, width)` donde cada píxel representa un `segment_id` o una codificación por longitud de ejecución (RLE) de `list[List]` del mapa de segmentación si return_coco_annotation está establecido en `True`. Se establece en `None` si no se encuentra ninguna máscara por encima de `threshold`.
- **segments_info** -- Un diccionario que contiene información adicional sobre cada segmento.
  - **id** -- Un entero que representa el `segment_id`.
  - **label_id** -- Un entero que representa el identificador de etiqueta / clase semántica correspondiente a `segment_id`.
  - **score** -- Puntuación de predicción del segmento con `segment_id`.

Convierte la salida de [ConditionalDetrForSegmentation](/docs/transformers/v5.23.0/es/model_doc/conditional_detr#transformers.ConditionalDetrForSegmentation) en predicciones de segmentación de instancias. Solo admite PyTorch.

#### post_process_semantic_segmentation[[transformers.ConditionalDetrImageProcessorPil.post_process_semantic_segmentation]]

```python
post_process_semantic_segmentation(outputs, target_sizes: list[tuple[int, int]] | None = None, return_segmentation_scores: bool = False)
```

[Fuente](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/conditional_detr/image_processing_pil_conditional_detr.py#L902)

**Parámetros:**

outputs ([ConditionalDetrForSegmentation](/docs/transformers/v5.23.0/es/model_doc/conditional_detr#transformers.ConditionalDetrForSegmentation)) : Salidas sin procesar del modelo.

target_sizes (`list[tuple[int, int]]`, *opcional*) : Una lista de tuplas (`tuple[int, int]`) que contiene el tamaño objetivo (altura, ancho) de cada imagen del lote. Si no se establece, las predicciones no se redimensionarán.

return_segmentation_scores (`bool`, *opcional*, valor predeterminado `False`) : Indica si se deben devolver las puntuaciones de segmentación junto con el mapa de segmentación. Cuando `True`, cada elemento de la lista devuelta es un `SemanticSegmentationPostProcessorOutput` con los campos `segmentation` (IDs de clase, forma `(height, width)`) y `segmentation_scores` (forma `(num_classes, height, width)`).

**Devuelve:** `list[torch.Tensor]` o `list[SemanticSegmentationPostProcessorOutput]`

Cuando `return_segmentation_scores=False` (valor predeterminado), se devuelve una lista de longitud `batch_size` en la que cada elemento es un mapa de segmentación de forma `(height, width)` con IDs de clase. Cuando `return_segmentation_scores=True`, se devuelve una lista de `SemanticSegmentationPostProcessorOutput` con los campos `segmentation` (IDs de clase, forma `(height, width)`) y `segmentation_scores` (forma `(num_classes, height, width)`). En ambos casos, `(height, width)` corresponde al tamaño objetivo (si se especifica `target_sizes`).

Convierte la salida de [ConditionalDetrForSegmentation](/docs/transformers/v5.23.0/es/model_doc/conditional_detr#transformers.ConditionalDetrForSegmentation) en mapas de segmentación semántica. Solo admite PyTorch.

#### post_process_panoptic_segmentation[[transformers.ConditionalDetrImageProcessorPil.post_process_panoptic_segmentation]]

```python
post_process_panoptic_segmentation(outputs, threshold: float = 0.5, mask_threshold: float = 0.5, overlap_mask_area_threshold: float = 0.8, label_ids_to_fuse: set[int] | None = None, target_sizes: list[tuple[int, int]] | None = None)
```

[Fuente](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/conditional_detr/image_processing_pil_conditional_detr.py#L1058)

**Parámetros:**

outputs ([ConditionalDetrForSegmentation](/docs/transformers/v5.23.0/es/model_doc/conditional_detr#transformers.ConditionalDetrForSegmentation)) : Las salidas de [ConditionalDetrForSegmentation](/docs/transformers/v5.23.0/es/model_doc/conditional_detr#transformers.ConditionalDetrForSegmentation).

threshold (`float`, *opcional*, valor predeterminado 0.5) : Umbral de puntuación de probabilidad para conservar las máscaras de instancias predichas.

mask_threshold (`float`, *opcional*, valor predeterminado 0.5) : Umbral a utilizar al convertir las máscaras predichas en valores binarios.

overlap_mask_area_threshold (`float`, *opcional*, valor predeterminado 0.8) : Umbral del área de la máscara de solapamiento para fusionar o descartar pequeñas partes desconectadas dentro de cada máscara de instancia binaria.

label_ids_to_fuse (`Set[int]`, *opcional*) : Las etiquetas en este estado fusionarán todas sus instancias. Por ejemplo, podríamos decir que solo puede haber un cielo en una imagen, pero varias personas, por lo que el ID de la etiqueta de cielo estaría en ese conjunto, pero no el de persona.

target_sizes (`list[Tuple]`, *opcional*) : Lista de longitud (batch_size), donde cada elemento de la lista (`tuple[int, int]]`) corresponde al tamaño final solicitado (altura, ancho) de cada predicción del lote. Si no se establece, las predicciones no se redimensionarán.

**Devuelve:** `list[Dict]`

Una lista de diccionarios, uno por imagen, donde cada diccionario contiene dos claves:
- **segmentation** -- un tensor de forma `(height, width)` en el que cada píxel representa un `segment_id` o `None` si no se encuentra ninguna máscara por encima de `threshold`. Si se especifica `target_sizes`, la segmentación se redimensiona a la entrada correspondiente de `target_sizes`.
- **segments_info** -- Un diccionario que contiene información adicional sobre cada segmento.
  - **id** -- un entero que representa el `segment_id`.
  - **label_id** -- Un entero que representa el identificador de etiqueta / clase semántica correspondiente a `segment_id`.
  - **was_fused** -- un valor booleano, `True` si `label_id` estaba en `label_ids_to_fuse`, `False` en caso contrario. Se fusionaron varias instancias de la misma clase / etiqueta y se les asignó un único `segment_id`.
  - **score** -- Puntuación de predicción del segmento con `segment_id`.

Convierte la salida de [ConditionalDetrForSegmentation](/docs/transformers/v5.23.0/es/model_doc/conditional_detr#transformers.ConditionalDetrForSegmentation) en predicciones de segmentación panóptica de imagen. Solo admite PyTorch.

## ConditionalDetrModel[[transformers.ConditionalDetrModel]]

#### transformers.ConditionalDetrModel[[transformers.ConditionalDetrModel]]

```python
transformers.ConditionalDetrModel(config: ConditionalDetrConfig)
```

[Fuente](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/conditional_detr/modeling_conditional_detr.py#L1337)

**Parámetros:**

config ([ConditionalDetrConfig](/docs/transformers/v5.23.0/es/model_doc/conditional_detr#transformers.ConditionalDetrConfig)) : Clase de configuración del modelo con todos los parámetros del modelo. Inicializar con un archivo de configuración no carga los pesos asociados con el modelo, solo la configuración. Consulte el método [from_pretrained()](/docs/transformers/v5.23.0/es/main_classes/model#transformers.PreTrainedModel.from_pretrained) para cargar los pesos del modelo.

El modelo CONDITIONAL_DETR básico (constituido por un backbone y un Transformer encoder-decoder) que genera hidden-states sin procesar, sin ninguna cabeza específica en la parte superior.

Este modelo hereda de [PreTrainedModel](/docs/transformers/v5.23.0/es/main_classes/model#transformers.PreTrainedModel). Consulte la documentación de la clase superior para los métodos genéricos que la biblioteca implementa para todos sus modelos (como la descarga o el guardado, el redimensionamiento de las incrustaciones de entrada, la poda de cabezas, etc.).

Este modelo también es una subclase de [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) de PyTorch. Úsalo como un módulo de PyTorch regular y consulta la documentación de PyTorch para todo lo relacionado con el uso y el comportamiento generales.

#### forward[[transformers.ConditionalDetrModel.forward]]

```python
forward(pixel_values: Tensor, pixel_mask: typing.Optional[torch.LongTensor] = None, decoder_attention_mask: typing.Optional[torch.LongTensor] = None, encoder_outputs: typing.Optional[torch.Tensor] = None, inputs_embeds: typing.Optional[torch.Tensor] = None, decoder_inputs_embeds: typing.Optional[torch.Tensor] = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[Fuente](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/conditional_detr/modeling_conditional_detr.py#L1366)

**Parámetros:**

pixel_values (`torch.Tensor` de forma `(batch_size, num_channels, image_size, image_size)`) : Los tensores correspondientes a las imágenes de entrada. Los valores de píxeles se pueden obtener mediante `image_processor_class`. Consulte `image_processor_class.__call__` para más detalles (`processor_class` utiliza `image_processor_class` para procesar las imágenes).

pixel_mask (`torch.LongTensor` de forma `(batch_size, height, width)`, *opcional*) : Máscara para evitar realizar atención sobre los valores de píxeles de relleno. Valores de la máscara seleccionados en `[0, 1]`:  - 1 para píxeles reales (es decir, **no enmascarados**), - 0 para píxeles de relleno (es decir, **enmascarados**).  [¿Qué son las máscaras de atención?](../glossary#attention-mask)

decoder_attention_mask (`torch.Tensor` de forma `(batch_size, num_queries)`, *opcional*) : No se utiliza de forma predeterminada. Puede usarse para enmascarar consultas de objetos.

encoder_outputs (`torch.Tensor`, *opcional*) : Tupla compuesta por (`last_hidden_state`, *opcional*: `hidden_states`, *opcional*: `attentions`) `last_hidden_state` de forma `(batch_size, sequence_length, hidden_size)`, *opcional*) es una secuencia de estados ocultos en la salida de la última capa del codificador. Se utiliza en la atención cruzada del decodificador.

inputs_embeds (`torch.Tensor` de forma `(batch_size, sequence_length, hidden_size)`, *opcional*) : Opcionalmente, en lugar de pasar el mapa de características aplanado (salida del backbone + capa de proyección), puede elegir pasar directamente una representación aplanada de una imagen.

decoder_inputs_embeds (`torch.Tensor` de forma `(batch_size, num_queries, hidden_size)`, *opcional*) : Opcionalmente, en lugar de inicializar las consultas con un tensor de ceros, puede elegir pasar directamente una representación incrustada.

**Devuelve:** `ConditionalDetrModelOutput` o `tuple(torch.Tensor)`

Un `ConditionalDetrModelOutput` o una tupla de `torch.Tensor` (si se pasa `return_dict=False` o cuando `config.return_dict=False`) que comprende varios elementos según la configuración (`None`) y las entradas.

El método forward de [ConditionalDetrModel](/docs/transformers/v5.23.0/es/model_doc/conditional_detr#transformers.ConditionalDetrModel) reemplaza el método especial `__call__`.

Aunque la receta para la pasada hacia adelante debe definirse dentro de esta función, se debe llamar a la instancia de `Module` después, en lugar de a esta, ya que la primera se encarga de ejecutar los pasos de preprocesamiento y posprocesamiento, mientras que la segunda los ignora silenciosamente.

- **last_hidden_state** (`torch.Tensor` de forma `(batch_size, sequence_length, hidden_size)`) -- Secuencia de estados ocultos en la salida de la última capa del decodificador del modelo.

  Si se utiliza `past_key_values`, solo se genera el último hidden-state de las secuencias con forma `(batch_size, 1, hidden_size)`.
- **past_key_values** (`EncoderDecoderCache`, *opcional*, se devuelve cuando se pasa `use_cache=True` o cuando `config.use_cache=True`) -- Es una instancia de [EncoderDecoderCache](/docs/transformers/v5.23.0/es/internal/generation_utils#transformers.EncoderDecoderCache). Para más detalles, consulte nuestra [guía de caché kv](https://huggingface.co/docs/transformers/en/kv_cache).

  Contiene estados ocultos precalculados (claves y valores en los bloques de autoatención y en los bloques de atención cruzada) que se pueden utilizar (véase la entrada `past_key_values`) para acelerar la decodificación secuencial.
- **decoder_hidden_states** (`tuple(torch.Tensor)`, *opcional*, se devuelve cuando se pasa `output_hidden_states=True` o cuando `config.output_hidden_states=True`) -- Tupla de `torch.Tensor` (una para la salida de los embeddings, si el modelo tiene una capa de embedding, + una para la salida de cada capa) de forma `(batch_size, sequence_length, hidden_size)`.

  Estados ocultos del decodificador en la salida de cada capa más las salidas opcionales de la incrustación inicial.
- **decoder_attentions** (`tuple(torch.Tensor)`, *opcional*, se devuelve cuando se pasa `output_attentions=True` o cuando `config.output_attentions=True`) -- Tupla de `torch.Tensor` (una por cada capa) de forma `(batch_size, num_heads, sequence_length, sequence_length)`.

  Pesos de atención del decodificador, después del softmax de atención, utilizados para calcular la media ponderada en las cabezas de autoatención.
- **cross_attentions** (`tuple(torch.Tensor)`, *opcional*, se devuelve cuando se pasa `output_attentions=True` o cuando `config.output_attentions=True`) -- Tupla de `torch.Tensor` (una por cada capa) de forma `(batch_size, num_heads, sequence_length, sequence_length)`.

  Pesos de atención de la capa de atención cruzada del decodificador, después del softmax de atención, utilizados para calcular la media ponderada en las cabezas de atención cruzada.
- **encoder_last_hidden_state** (`torch.Tensor` de forma `(batch_size, sequence_length, hidden_size)`, *opcional*) -- Secuencia de estados ocultos en la salida de la última capa del codificador del modelo.
- **encoder_hidden_states** (`tuple(torch.Tensor)`, *opcional*, devuelto cuando se pasa `output_hidden_states=True` o cuando `config.output_hidden_states=True`) -- Tupla de `torch.Tensor` (una para la salida de las incrustaciones, si el modelo tiene una capa de incrustaciones, + una para la salida de cada capa) de forma `(batch_size, sequence_length, hidden_size)`.

  Estados ocultos del codificador en la salida de cada capa más las salidas opcionales de la incrustación inicial.
- **encoder_attentions** (`tuple(torch.Tensor)`, *opcional*, se devuelve cuando se pasa `output_attentions=True` o cuando `config.output_attentions=True`) -- Tupla de `torch.Tensor` (una por cada capa) de forma `(batch_size, num_heads, sequence_length, sequence_length)`.

  Pesos de atención del codificador, después del softmax de atención, utilizados para calcular la media ponderada en las cabezas de autoatención.
- **intermediate_hidden_states** (`torch.Tensor` de forma `(config.decoder_layers, batch_size, sequence_length, hidden_size)`, *opcional*, devuelto cuando `config.auxiliary_loss=True`) -- Activaciones intermedias del decodificador, es decir, la salida de cada capa del decodificador, cada una de ellas pasada por un layernorm.
- **reference_points** (`torch.Tensor` de forma `(config.decoder_layers, batch_size, num_queries, 2 (anchor points))`) -- Puntos de referencia (puntos de referencia de cada capa del decodificador).

Ejemplos:

```python
>>> from transformers import AutoImageProcessor, AutoModel
>>> 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("microsoft/conditional-detr-resnet-50")
>>> model = AutoModel.from_pretrained("microsoft/conditional-detr-resnet-50")

>>> # prepare image for the model
>>> inputs = image_processor(images=image, return_tensors="pt")

>>> # forward pass
>>> outputs = model(**inputs)

>>> # the last hidden states are the final query embeddings of the Transformer decoder
>>> # these are of shape (batch_size, num_queries, hidden_size)
>>> last_hidden_states = outputs.last_hidden_state
>>> list(last_hidden_states.shape)
[1, 300, 256]
```

## ConditionalDetrForObjectDetection[[transformers.ConditionalDetrForObjectDetection]]

#### transformers.ConditionalDetrForObjectDetection[[transformers.ConditionalDetrForObjectDetection]]

```python
transformers.ConditionalDetrForObjectDetection(config: ConditionalDetrConfig)
```

[Fuente](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/conditional_detr/modeling_conditional_detr.py#L1509)

**Parámetros:**

config ([ConditionalDetrConfig](/docs/transformers/v5.23.0/es/model_doc/conditional_detr#transformers.ConditionalDetrConfig)) : Clase de configuración del modelo con todos los parámetros del modelo. Inicializar con un archivo de configuración no carga los pesos asociados con el modelo, solo la configuración. Consulte el método [from_pretrained()](/docs/transformers/v5.23.0/es/main_classes/model#transformers.PreTrainedModel.from_pretrained) para cargar los pesos del modelo.

Modelo CONDITIONAL_DETR (constituido por un backbone y un Transformer encoder-decoder) con cabezas de detección de objetos en la parte superior, para tareas como la detección COCO.

Este modelo hereda de [PreTrainedModel](/docs/transformers/v5.23.0/es/main_classes/model#transformers.PreTrainedModel). Consulte la documentación de la clase superior para los métodos genéricos que la biblioteca implementa para todos sus modelos (como la descarga o el guardado, el redimensionamiento de las incrustaciones de entrada, la poda de cabezas, etc.).

Este modelo también es una subclase de [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) de PyTorch. Úsalo como un módulo de PyTorch regular y consulta la documentación de PyTorch para todo lo relacionado con el uso y el comportamiento generales.

#### forward[[transformers.ConditionalDetrForObjectDetection.forward]]

```python
forward(pixel_values: Tensor, pixel_mask: typing.Optional[torch.LongTensor] = None, decoder_attention_mask: typing.Optional[torch.LongTensor] = None, encoder_outputs: typing.Optional[torch.Tensor] = None, inputs_embeds: typing.Optional[torch.Tensor] = None, decoder_inputs_embeds: typing.Optional[torch.Tensor] = None, labels: list[dict] | None = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[Fuente](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/conditional_detr/modeling_conditional_detr.py#L1523)

**Parámetros:**

pixel_values (`torch.Tensor` de forma `(batch_size, num_channels, image_size, image_size)`) : Los tensores correspondientes a las imágenes de entrada. Los valores de píxeles se pueden obtener mediante `image_processor_class`. Consulte `image_processor_class.__call__` para más detalles (`processor_class` utiliza `image_processor_class` para procesar las imágenes).

pixel_mask (`torch.LongTensor` de forma `(batch_size, height, width)`, *opcional*) : Máscara para evitar realizar atención sobre los valores de píxeles de relleno. Valores de la máscara seleccionados en `[0, 1]`:  - 1 para píxeles reales (es decir, **no enmascarados**), - 0 para píxeles de relleno (es decir, **enmascarados**).  [¿Qué son las máscaras de atención?](../glossary#attention-mask)

decoder_attention_mask (`torch.Tensor` de forma `(batch_size, num_queries)`, *opcional*) : No se utiliza de forma predeterminada. Puede usarse para enmascarar consultas de objetos.

encoder_outputs (`torch.Tensor`, *opcional*) : Tupla compuesta por (`last_hidden_state`, *opcional*: `hidden_states`, *opcional*: `attentions`) `last_hidden_state` de forma `(batch_size, sequence_length, hidden_size)`, *opcional*) es una secuencia de estados ocultos en la salida de la última capa del codificador. Se utiliza en la atención cruzada del decodificador.

inputs_embeds (`torch.Tensor` de forma `(batch_size, sequence_length, hidden_size)`, *opcional*) : Opcionalmente, en lugar de pasar el mapa de características aplanado (salida del backbone + capa de proyección), puede elegir pasar directamente una representación aplanada de una imagen.

decoder_inputs_embeds (`torch.Tensor` de forma `(batch_size, num_queries, hidden_size)`, *opcional*) : Opcionalmente, en lugar de inicializar las consultas con un tensor de ceros, puede elegir pasar directamente una representación incrustada.

labels (`list[Dict]` de longitud `(batch_size,)`, *opcional*) : Etiquetas para calcular la pérdida de bipartite matching. Lista de diccionarios, donde cada diccionario contiene al menos las siguientes 2 claves: 'class_labels' y 'boxes' (las etiquetas de clase y las cajas delimitadoras de una imagen en el lote, respectivamente). Las propias etiquetas de clase deben ser un `torch.LongTensor` de longitud `(number of bounding boxes in the image,)` y las cajas un `torch.Tensor` de forma `(number of bounding boxes in the image, 4)`.

**Devuelve:** `ConditionalDetrObjectDetectionOutput` o `tuple(torch.Tensor)`

Un `ConditionalDetrObjectDetectionOutput` o una tupla de `torch.Tensor` (si se pasa `return_dict=False` o cuando `config.return_dict=False`) que comprende varios elementos según la configuración (`None`) y las entradas.

El método forward de [ConditionalDetrForObjectDetection](/docs/transformers/v5.23.0/es/model_doc/conditional_detr#transformers.ConditionalDetrForObjectDetection) sobrescribe el método especial `__call__`.

Aunque la receta para la pasada hacia adelante debe definirse dentro de esta función, se debe llamar a la instancia de `Module` después, en lugar de a esta, ya que la primera se encarga de ejecutar los pasos de preprocesamiento y posprocesamiento, mientras que la segunda los ignora silenciosamente.

- **loss** (`torch.Tensor` de forma `(1,)`, *opcional*, devuelta cuando se proporcionan `labels`) -- Pérdida total como combinación lineal de una log-verosimilitud negativa (entropía cruzada) para la predicción de clases y una pérdida de caja delimitadora. Esta última se define como una combinación lineal de la pérdida L1 y la pérdida de IoU generalizada e invariante a la escala.
- **loss_dict** (`Dict`, *opcional*) -- Un diccionario que contiene las pérdidas individuales. Útil para el registro.
- **logits** (`torch.Tensor` de forma `(batch_size, num_queries, num_classes + 1)`) -- Logits de clasificación (incluyendo no-objeto) para todas las consultas.
- **pred_boxes** (`torch.Tensor` de forma `(batch_size, num_queries, 4)`) -- Coordenadas de cajas normalizadas para todas las consultas, representadas como (center_x, center_y, width, height). Estos valores están normalizados en [0, 1], relativos al tamaño de cada imagen individual del lote (ignorando el posible relleno). Puede usar `post_process_object_detection()` para obtener las cajas delimitadoras no normalizadas.
- **auxiliary_outputs** (`list[Dict]`, *opcional*) -- Opcional, solo se devuelve cuando se activan las pérdidas auxiliares (es decir, `config.auxiliary_loss` está establecido en `True`) y se proporcionan etiquetas. Es una lista de diccionarios que contienen las dos claves anteriores (`logits` y `pred_boxes`) para cada capa del decodificador.
- **last_hidden_state** (`torch.Tensor` de forma `(batch_size, sequence_length, hidden_size)`, *opcional*) -- Secuencia de estados ocultos en la salida de la última capa del decodificador del modelo.
- **decoder_hidden_states** (`tuple[torch.Tensor]`, *opcional*, se devuelve cuando se pasa `output_hidden_states=True` o cuando `config.output_hidden_states=True`) -- Tupla de `torch.Tensor` (una para la salida de los embeddings, si el modelo tiene una capa de embedding, + una para la salida de cada capa) de forma `(batch_size, sequence_length, hidden_size)`.

  Estados ocultos del decodificador en la salida de cada capa más las salidas de la incrustación inicial.
- **decoder_attentions** (`tuple[torch.Tensor]`, *opcional*, se devuelve cuando se pasa `output_attentions=True` o cuando `config.output_attentions=True`) -- Tupla de `torch.Tensor` (una por cada capa) de forma `(batch_size, num_heads, sequence_length, sequence_length)`.

  Pesos de atención del decodificador, después del softmax de atención, utilizados para calcular la media ponderada en las cabezas de autoatención.
- **cross_attentions** (`tuple[torch.Tensor]`, *opcional*, se devuelve cuando se pasa `output_attentions=True` o cuando `config.output_attentions=True`) -- Tupla de `torch.Tensor` (una por cada capa) de forma `(batch_size, num_heads, sequence_length, sequence_length)`.

  Pesos de atención de la capa de atención cruzada del decodificador, después del softmax de atención, utilizados para calcular la media ponderada en las cabezas de atención cruzada.
- **encoder_last_hidden_state** (`torch.Tensor` de forma `(batch_size, sequence_length, hidden_size)`, *opcional*) -- Secuencia de estados ocultos en la salida de la última capa del codificador del modelo.
- **encoder_hidden_states** (`tuple[torch.Tensor]`, *opcional*, se devuelve cuando se pasa `output_hidden_states=True` o cuando `config.output_hidden_states=True`) -- Tupla de `torch.Tensor` (una para la salida de las incrustaciones, si el modelo tiene una capa de incrustaciones, + una para la salida de cada capa) de forma `(batch_size, sequence_length, hidden_size)`.

  Estados ocultos del codificador en la salida de cada capa más las salidas de la incrustación inicial.
- **encoder_attentions** (`tuple[torch.Tensor]`, *opcional*, se devuelve cuando se pasa `output_attentions=True` o cuando `config.output_attentions=True`) -- Tupla de `torch.Tensor` (una por cada capa) de forma `(batch_size, num_heads, sequence_length, sequence_length)`.

  Pesos de atención del codificador, después del softmax de atención, utilizados para calcular la media ponderada en las cabezas de autoatención.

Ejemplos:

```python
>>> from transformers import AutoImageProcessor, AutoModelForObjectDetection
>>> 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("microsoft/conditional-detr-resnet-50")
>>> model = AutoModelForObjectDetection.from_pretrained("microsoft/conditional-detr-resnet-50")

>>> 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 remote with confidence 0.833 at location [38.31, 72.1, 177.63, 118.45]
Detected cat with confidence 0.831 at location [9.2, 51.38, 321.13, 469.0]
Detected cat with confidence 0.804 at location [340.3, 16.85, 642.93, 370.95]
Detected remote with confidence 0.683 at location [334.48, 73.49, 366.37, 190.01]
Detected couch with confidence 0.535 at location [0.52, 1.19, 640.35, 475.1]
```

## ConditionalDetrForSegmentation[[transformers.ConditionalDetrForSegmentation]]

#### transformers.ConditionalDetrForSegmentation[[transformers.ConditionalDetrForSegmentation]]

```python
transformers.ConditionalDetrForSegmentation(config: ConditionalDetrConfig)
```

[Fuente](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/conditional_detr/modeling_conditional_detr.py#L1650)

**Parámetros:**

config ([ConditionalDetrConfig](/docs/transformers/v5.23.0/es/model_doc/conditional_detr#transformers.ConditionalDetrConfig)) : Clase de configuración del modelo con todos los parámetros del modelo. Inicializar con un archivo de configuración no carga los pesos asociados con el modelo, solo la configuración. Consulte el método [from_pretrained()](/docs/transformers/v5.23.0/es/main_classes/model#transformers.PreTrainedModel.from_pretrained) para cargar los pesos del modelo.

Modelo CONDITIONAL_DETR (constituido por un backbone y un Transformer encoder-decoder) con una cabeza de segmentación en la parte superior, para tareas como COCO panoptic.

Este modelo hereda de [PreTrainedModel](/docs/transformers/v5.23.0/es/main_classes/model#transformers.PreTrainedModel). Consulte la documentación de la clase superior para los métodos genéricos que la biblioteca implementa para todos sus modelos (como la descarga o el guardado, el redimensionamiento de las incrustaciones de entrada, la poda de cabezas, etc.).

Este modelo también es una subclase de [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) de PyTorch. Úsalo como un módulo de PyTorch regular y consulta la documentación de PyTorch para todo lo relacionado con el uso y el comportamiento generales.

#### forward[[transformers.ConditionalDetrForSegmentation.forward]]

```python
forward(pixel_values: Tensor, pixel_mask: typing.Optional[torch.LongTensor] = None, decoder_attention_mask: typing.Optional[torch.Tensor] = None, encoder_outputs: typing.Optional[torch.Tensor] = None, inputs_embeds: typing.Optional[torch.Tensor] = None, decoder_inputs_embeds: typing.Optional[torch.Tensor] = None, labels: list[dict] | None = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[Fuente](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/conditional_detr/modeling_conditional_detr.py#L1672)

**Parámetros:**

pixel_values (`torch.Tensor` de forma `(batch_size, num_channels, image_size, image_size)`) : Los tensores correspondientes a las imágenes de entrada. Los valores de píxeles se pueden obtener mediante `image_processor_class`. Consulte `image_processor_class.__call__` para más detalles (`processor_class` utiliza `image_processor_class` para procesar las imágenes).

pixel_mask (`torch.LongTensor` de forma `(batch_size, height, width)`, *opcional*) : Máscara para evitar realizar atención sobre los valores de píxeles de relleno. Valores de la máscara seleccionados en `[0, 1]`:  - 1 para píxeles reales (es decir, **no enmascarados**), - 0 para píxeles de relleno (es decir, **enmascarados**).  [¿Qué son las máscaras de atención?](../glossary#attention-mask)

decoder_attention_mask (`torch.Tensor` de forma `(batch_size, num_queries)`, *opcional*) : Máscara para evitar realizar atención en ciertas consultas de objetos en el decodificador. Valores de máscara seleccionados en `[0, 1]`:  - 1 para consultas que **no están enmascaradas**, - 0 para consultas que **están enmascaradas**.

encoder_outputs (`torch.Tensor`, *opcional*) : Tupla compuesta por (`last_hidden_state`, *opcional*: `hidden_states`, *opcional*: `attentions`) `last_hidden_state` de forma `(batch_size, sequence_length, hidden_size)`, *opcional*) es una secuencia de estados ocultos en la salida de la última capa del codificador. Se utiliza en la atención cruzada del decodificador.

inputs_embeds (`torch.Tensor` de forma `(batch_size, sequence_length, hidden_size)`, *opcional*) : Se conserva por compatibilidad con versiones anteriores, pero no se puede usar para segmentación, ya que la segmentación requiere características multiescala del backbone que no están disponibles al omitirlo con inputs_embeds.

decoder_inputs_embeds (`torch.Tensor` de forma `(batch_size, num_queries, hidden_size)`, *opcional*) : Opcionalmente, en lugar de inicializar las consultas con un tensor de ceros, puede elegir pasar directamente una representación incrustada. Útil para tareas que requieren una inicialización personalizada de las consultas.

labels (`list[Dict]` de longitud `(batch_size,)`, *opcional*) : Etiquetas para calcular la pérdida de bipartite matching, la pérdida DICE/F-1 y la pérdida Focal. Lista de diccionarios, donde cada diccionario contiene al menos las siguientes 3 claves: 'class_labels', 'boxes' y 'masks' (las etiquetas de clase, las cajas delimitadoras y las máscaras de segmentación de una imagen en el lote, respectivamente). Las propias etiquetas de clase deben ser un `torch.LongTensor` de longitud `(number of bounding boxes in the image,)`, las cajas un `torch.Tensor` de forma `(number of bounding boxes in the image, 4)` y las máscaras un `torch.Tensor` de forma `(number of bounding boxes in the image, height, width)`.

**Devuelve:** `ConditionalDetrSegmentationOutput` o `tuple(torch.Tensor)`

Un `ConditionalDetrSegmentationOutput` o una tupla de `torch.Tensor` (si se pasa `return_dict=False` o cuando `config.return_dict=False`) que comprende varios elementos según la configuración (`None`) y las entradas.

El método forward de [ConditionalDetrForSegmentation](/docs/transformers/v5.23.0/es/model_doc/conditional_detr#transformers.ConditionalDetrForSegmentation) sobrescribe el método especial `__call__`.

Aunque la receta para la pasada hacia adelante debe definirse dentro de esta función, se debe llamar a la instancia de `Module` después, en lugar de a esta, ya que la primera se encarga de ejecutar los pasos de preprocesamiento y posprocesamiento, mientras que la segunda los ignora silenciosamente.

- **loss** (`torch.Tensor` de forma `(1,)`, *opcional*, devuelta cuando se proporcionan `labels`) -- Pérdida total como combinación lineal de una log-verosimilitud negativa (entropía cruzada) para la predicción de clases y una pérdida de caja delimitadora. Esta última se define como una combinación lineal de la pérdida L1 y la pérdida de IoU generalizada e invariante a la escala.
- **loss_dict** (`Dict`, *opcional*) -- Un diccionario que contiene las pérdidas individuales. Útil para el registro.
- **logits** (`torch.Tensor` de forma `(batch_size, num_queries, num_classes + 1)`) -- Logits de clasificación (incluyendo no-objeto) para todas las consultas.
- **pred_boxes** (`torch.Tensor` de forma `(batch_size, num_queries, 4)`) -- Coordenadas de cajas normalizadas para todas las consultas, representadas como (center_x, center_y, width, height). Estos valores están normalizados en [0, 1], relativos al tamaño de cada imagen individual del lote (ignorando el posible relleno). Puede usar `post_process_object_detection()` para obtener las cajas delimitadoras no normalizadas.
- **pred_masks** (`torch.Tensor` de forma `(batch_size, num_queries, height/4, width/4)`) -- Logits de máscaras de segmentación para todas las consultas. Consulte también `post_process_semantic_segmentation()` o `post_process_instance_segmentation()` `post_process_panoptic_segmentation()` para evaluar las máscaras de segmentación semántica, de instancia y panóptica, respectivamente.
- **auxiliary_outputs** (`list[Dict]`, *opcional*) -- Opcional, solo se devuelve cuando se activan las pérdidas auxiliares (es decir, `config.auxiliary_loss` está establecido en `True`) y se proporcionan etiquetas. Es una lista de diccionarios que contienen las dos claves anteriores (`logits` y `pred_boxes`) para cada capa del decodificador.
- **last_hidden_state** (`torch.Tensor` de forma `(batch_size, sequence_length, hidden_size)`, *opcional*) -- Secuencia de estados ocultos en la salida de la última capa del decodificador del modelo.
- **decoder_hidden_states** (`tuple[torch.Tensor]`, *opcional*, se devuelve cuando se pasa `output_hidden_states=True` o cuando `config.output_hidden_states=True`) -- Tupla de `torch.Tensor` (una para la salida de los embeddings, si el modelo tiene una capa de embedding, + una para la salida de cada capa) de forma `(batch_size, sequence_length, hidden_size)`.

  Estados ocultos del decodificador en la salida de cada capa más las salidas de la incrustación inicial.
- **decoder_attentions** (`tuple[torch.Tensor]`, *opcional*, se devuelve cuando se pasa `output_attentions=True` o cuando `config.output_attentions=True`) -- Tupla de `torch.Tensor` (una por cada capa) de forma `(batch_size, num_heads, sequence_length, sequence_length)`.

  Pesos de atención del decodificador, después del softmax de atención, utilizados para calcular la media ponderada en las cabezas de autoatención.
- **cross_attentions** (`tuple[torch.Tensor]`, *opcional*, se devuelve cuando se pasa `output_attentions=True` o cuando `config.output_attentions=True`) -- Tupla de `torch.Tensor` (una por cada capa) de forma `(batch_size, num_heads, sequence_length, sequence_length)`.

  Pesos de atención de la capa de atención cruzada del decodificador, después del softmax de atención, utilizados para calcular la media ponderada en las cabezas de atención cruzada.
- **encoder_last_hidden_state** (`torch.Tensor` de forma `(batch_size, sequence_length, hidden_size)`, *opcional*) -- Secuencia de estados ocultos en la salida de la última capa del codificador del modelo.
- **encoder_hidden_states** (`tuple[torch.Tensor]`, *opcional*, se devuelve cuando se pasa `output_hidden_states=True` o cuando `config.output_hidden_states=True`) -- Tupla de `torch.Tensor` (una para la salida de las incrustaciones, si el modelo tiene una capa de incrustaciones, + una para la salida de cada capa) de forma `(batch_size, sequence_length, hidden_size)`.

  Estados ocultos del codificador en la salida de cada capa más las salidas de la incrustación inicial.
- **encoder_attentions** (`tuple[torch.Tensor]`, *opcional*, se devuelve cuando se pasa `output_attentions=True` o cuando `config.output_attentions=True`) -- Tupla de `torch.Tensor` (una por cada capa) de forma `(batch_size, num_heads, sequence_length, sequence_length)`.

  Pesos de atención del codificador, después del softmax de atención, utilizados para calcular la media ponderada en las cabezas de autoatención.

Ejemplos:

```python
>>> import io
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> from PIL import Image
>>> import torch
>>> import numpy

>>> from transformers import AutoImageProcessor, ConditionalDetrForSegmentation
>>> from transformers.image_transforms import rgb_to_id

>>> 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("facebook/conditional_detr-resnet-50-panoptic")
>>> model = ConditionalDetrForSegmentation.from_pretrained("facebook/conditional_detr-resnet-50-panoptic")

>>> # prepare image for the model
>>> inputs = image_processor(images=image, return_tensors="pt")

>>> # forward pass
>>> outputs = model(**inputs)

>>> # Use the `post_process_panoptic_segmentation` method of the `image_processor` to retrieve post-processed panoptic segmentation maps
>>> # Segmentation results are returned as a list of dictionaries
>>> result = image_processor.post_process_panoptic_segmentation(outputs, target_sizes=[(300, 500)])

>>> # A tensor of shape (height, width) where each value denotes a segment id, filled with -1 if no segment is found
>>> panoptic_seg = result[0]["segmentation"]
>>> panoptic_seg.shape
torch.Size([300, 500])
>>> # Get prediction score and segment_id to class_id mapping of each segment
>>> panoptic_segments_info = result[0]["segments_info"]
>>> len(panoptic_segments_info)
5
```

