Transformers documentation

Table Transformer

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

Este modelo se publicó en HF papers el 30-09-2021 y se contribuyó a Hugging Face Transformers el 18-10-2022.

Table Transformer

Resumen

El modelo Table Transformer se propuso en PubTables-1M: Towards comprehensive table extraction from unstructured documents de Brandon Smock, Rohith Pesala y Robin Abraham. Los autores introducen un nuevo conjunto de datos, PubTables-1M, para evaluar los avances en la extracción de tablas de documentos no estructurados, así como en el reconocimiento de la estructura de las tablas y el análisis funcional. Los autores entrenan 2 modelos DETR, uno para la detección de tablas y otro para el reconocimiento de la estructura de las tablas, denominados Table Transformers.

El resumen del artículo es el siguiente:

Recientemente, se ha logrado un progreso significativo al aplicar el aprendizaje automático al problema de inferencia y extracción de la estructura de tablas a partir de documentos no estructurados. Sin embargo, uno de los mayores desafíos sigue siendo la creación de conjuntos de datos con una verdad de referencia completa y no ambigua a gran escala. Para abordar esto, desarrollamos un nuevo conjunto de datos más completo para la extracción de tablas, llamado PubTables-1M. PubTables-1M contiene casi un millón de tablas de artículos científicos, admite múltiples modalidades de entrada y contiene información detallada sobre encabezados y ubicaciones para las estructuras de tablas, lo que lo hace útil para una amplia variedad de enfoques de modelado. También aborda una fuente significativa de inconsistencia en la verdad de referencia observada en conjuntos de datos anteriores, llamada sobresegmentación, utilizando un procedimiento de canonicación novedoso. Demostramos que estas mejoras conducen a un aumento significativo en el rendimiento de entrenamiento y a una estimación más fiable del rendimiento del modelo en la evaluación para el reconocimiento de la estructura de tablas. Además, mostramos que los modelos de detección de objetos basados en transformers entrenados en PubTables-1M producen excelentes resultados para las tres tareas de detección, reconocimiento de estructura y análisis funcional, sin la necesidad de ninguna personalización especial para estas tareas.

drawing Table detection and table structure recognition clarified. Taken from the original paper.

Los autores publicaron 2 modelos, uno para la detección de tablas en documentos y otro para el reconocimiento de la estructura de tablas (la tarea de reconocer las filas, columnas, etc. individuales de una tabla).

Este modelo fue aportado por nielsr. El código original se puede encontrar aquí.

Establezca use_kernels=True en from_pretrained() para reemplazar las capas compatibles con kernels optimizados del Hub. Consulte Carga de kernels para obtener más información.

Recursos

Object Detection
  • Puede encontrar un cuaderno de demostración para Table Transformer aquí.
  • Resulta que el relleno de las imágenes es bastante importante para la detección. Un hilo de Github interesante con respuestas de los autores se puede encontrar aquí.

TableTransformerConfig

clase transformers.TableTransformerConfig

< >

( 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 = 0id2label: 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 = Noneis_encoder_decoder: bool = Truebackbone_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonenum_channels: int = 3num_queries: int = 100encoder_layers: int = 6encoder_ffn_dim: int = 2048encoder_attention_heads: int = 8decoder_layers: int = 6decoder_ffn_dim: int = 2048decoder_attention_heads: int = 8encoder_layerdrop: float | int = 0.0decoder_layerdrop: float | int = 0.0activation_function: str = 'relu'd_model: int = 256dropout: float | int = 0.1attention_dropout: float | int = 0.0activation_dropout: float | int = 0.0init_std: float = 0.02init_xavier_std: float = 1.0auxiliary_loss: bool = Falseposition_embedding_type: str = 'sine'dilation: bool = Falseclass_cost: int = 1bbox_cost: int = 5giou_cost: int = 2mask_loss_coefficient: int = 1dice_loss_coefficient: int = 1bbox_loss_coefficient: int = 5giou_loss_coefficient: int = 2eos_coefficient: float = 0.1 )

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 backbone.
  • num_channels (int, opcional, valor predeterminado 3) — El número de canales de entrada.
  • num_queries (int, opcional, valor predeterminado 100) — Número de consultas de objetos, es decir, ranuras de detección. Este es el número máximo de objetos que TableTransformerModel 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 del 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 del Transformer. Si no se establece, se usará el mismo valor que num_layers.
  • 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](ver https://huggingface.co/papers/1909.11556) para 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](ver https://huggingface.co/papers/1909.11556) para 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 del 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) — 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 embeddings 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 dilation en el último bloque convolucional (DC5). Solo se admite cuando use_timm_backbone = True.
  • class_cost (int, opcional, valor predeterminado 1) — 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.
  • 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.
  • eos_coefficient (float, opcional, valor predeterminado 0.1) — Peso de clasificación relativo de la clase ‘no-object’ en la pérdida de detección de objetos.

Esta es la clase de configuración para almacenar la configuración de un modelo Table Transformer. Se utiliza para instanciar un modelo Table Transformer 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/table-transformer-detection

Los objetos de configuración heredan de PreTrainedConfig y se pueden usar para controlar las salidas del modelo. Lea la documentación de PreTrainedConfig para obtener más información.

Ejemplos:

>>> from transformers import TableTransformerModel, TableTransformerConfig

>>> # Initializing a Table Transformer microsoft/table-transformer-detection style configuration
>>> configuration = TableTransformerConfig()

>>> # Initializing a model from the microsoft/table-transformer-detection style configuration
>>> model = TableTransformerModel(configuration)

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

TableTransformerModel

clase transformers.TableTransformerModel

< >

( config: TableTransformerConfig )

Parámetros

  • config (TableTransformerConfig) — 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() para cargar los pesos del modelo.

El modelo Table Transformer básico (constituido por un backbone y un Transformer encoder-decoder) que genera estados ocultos sin ninguna cabeza específica en la parte superior.

Este modelo hereda de PreTrainedModel. Consulta 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 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

< >

( pixel_values: Tensorpixel_mask: typing.Optional[torch.Tensor] = Nonedecoder_attention_mask: typing.Optional[torch.Tensor] = Noneencoder_outputs: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonedecoder_inputs_embeds: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → TableTransformerModelOutput or tuple(torch.Tensor)

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 utilizando DetrImageProcessor. Consulte DetrImageProcessor.call() para más detalles (processor_class utiliza DetrImageProcessor para procesar las imágenes).
  • pixel_mask (torch.Tensor 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 los píxeles reales (es decir, no enmascarados),
    • 0 para los píxeles que son relleno (es decir, mascarados).

    ¿Qué son las máscaras de atención?

  • decoder_attention_mask (torch.Tensor de forma (batch_size, num_queries), opcional) — No se utiliza de forma predeterminada. Puede usarse para enmascarar las consultas de objetos.
  • encoder_outputs (torch.Tensor, opcional) — La tupla consiste en (last_hidden_state, opcional: hidden_states, opcional: attentions) last_hidden_state de forma (batch_size, sequence_length, hidden_size), opcional) es una secuencia de hidden-states 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), puedes 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, puedes elegir pasar directamente una representación incrustada.
  • output_attentions (bool, opcional) — Indica si se deben devolver los tensores de atención de todas las capas de atención. Consulte attentions en los tensores devueltos para obtener más detalles.
  • output_hidden_states (bool, opcional) — Indica si se deben devolver los estados ocultos de todas las capas. Consulte hidden_states en los tensores devueltos para obtener más detalles.
  • return_dict (bool, opcional) — Indica si se debe devolver un ModelOutput en lugar de una tupla simple.

Devuelve

TableTransformerModelOutput o tuple(torch.Tensor)

Un TableTransformerModelOutput 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 (TableTransformerConfig) y las entradas.

El método forward de TableTransformerModel 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 pre y postprocesamiento, 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. Para más detalles, consulte nuestra guía de caché kv.

    Contiene estados ocultos precalculados (claves y valores en los bloques de autoatención y en los bloques de atención cruzada) que pueden utilizarse (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, se devuelve 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.

Ejemplos:

>>> from transformers import AutoImageProcessor, TableTransformerModel
>>> from huggingface_hub import hf_hub_download
>>> from PIL import Image

>>> file_path = hf_hub_download(repo_id="nielsr/example-pdf", repo_type="dataset", filename="example_pdf.png")
>>> image = Image.open(file_path).convert("RGB")

>>> image_processor = AutoImageProcessor.from_pretrained("microsoft/table-transformer-detection")
>>> model = TableTransformerModel.from_pretrained("microsoft/table-transformer-detection")

>>> # 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, 15, 256]

TableTransformerForObjectDetection

clase transformers.TableTransformerForObjectDetection

< >

( config: TableTransformerConfig )

Parámetros

  • config (TableTransformerConfig) — 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() para cargar los pesos del modelo.

Modelo Table Transformer (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. Consulta 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 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

< >

( pixel_values: Tensorpixel_mask: typing.Optional[torch.Tensor] = Nonedecoder_attention_mask: typing.Optional[torch.Tensor] = Noneencoder_outputs: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonedecoder_inputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: list[dict] | None = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → TableTransformerObjectDetectionOutput or tuple(torch.Tensor)

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 utilizando DetrImageProcessor. Consulte DetrImageProcessor.call() para más detalles (processor_class utiliza DetrImageProcessor para procesar las imágenes).
  • pixel_mask (torch.Tensor 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 los píxeles reales (es decir, no enmascarados),
    • 0 para los píxeles que son relleno (es decir, mascarados).

    ¿Qué son las máscaras de atención?

  • decoder_attention_mask (torch.Tensor de forma (batch_size, num_queries), opcional) — No se utiliza de forma predeterminada. Puede usarse para enmascarar las consultas de objetos.
  • encoder_outputs (torch.Tensor, opcional) — La tupla consiste en (last_hidden_state, opcional: hidden_states, opcional: attentions) last_hidden_state de forma (batch_size, sequence_length, hidden_size), opcional) es una secuencia de hidden-states 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), puedes 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, puedes 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 del lote, respectivamente). Las etiquetas de clase en sí 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).
  • output_attentions (bool, opcional) — Indica si se deben devolver los tensores de atención de todas las capas de atención. Consulte attentions en los tensores devueltos para obtener más detalles.
  • output_hidden_states (bool, opcional) — Indica si se deben devolver los estados ocultos de todas las capas. Consulte hidden_states en los tensores devueltos para obtener más detalles.
  • return_dict (bool, opcional) — Indica si se debe devolver un ModelOutput en lugar de una tupla simple.

Devuelve

TableTransformerObjectDetectionOutput o tuple(torch.Tensor)

Un TableTransformerObjectDetectionOutput 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 (TableTransformerConfig) y las entradas.

El método forward de TableTransformerForObjectDetection 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 pre y postprocesamiento, 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 ~TableTransformerImageProcessor.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:

>>> from huggingface_hub import hf_hub_download
>>> from transformers import AutoImageProcessor, TableTransformerForObjectDetection
>>> import torch
>>> from PIL import Image

>>> file_path = hf_hub_download(repo_id="nielsr/example-pdf", repo_type="dataset", filename="example_pdf.png")
>>> image = Image.open(file_path).convert("RGB")

>>> image_processor = AutoImageProcessor.from_pretrained("microsoft/table-transformer-detection")
>>> model = TableTransformerForObjectDetection.from_pretrained("microsoft/table-transformer-detection")

>>> 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.9, 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 table with confidence 1.0 at location [202.1, 210.59, 1119.22, 385.09]
Update on GitHub