Transformers documentation
SLANeXt
Este modelo fue aportado a Hugging Face Transformers el 2026-03-21.
SLANeXt
Resumen
SLANeXt_wired y SLANeXt_wireless forman parte de una serie de modelos ligeros dedicados al reconocimiento de la estructura de tablas, centrados en reconocer con precisión la estructura de las tablas en documentos y escenas naturales. Para más detalles sobre el modelo de la serie SLANeXt, consulte la documentación oficial.
Arquitectura del modelo
La serie SLANeXt es una nueva generación de modelos de reconocimiento de estructura de tablas desarrollados de forma independiente por el equipo de visión de Baidu PaddlePaddle. SLANeXt se centra en el reconocimiento de la estructura de tablas y entrena pesos dedicados para tablas con y sin bordes por separado. La capacidad de reconocimiento para todos los tipos de tablas ha mejorado significativamente, especialmente para las tablas con bordes.
Uso
Inferencia con una sola entrada
El siguiente ejemplo demuestra cómo detectar texto con PP-OCRV5_Mobile_Det usando AutoModel.
import requests
from PIL import Image
from transformers import AutoImageProcessor, AutoModelForTableRecognition
model_path="PaddlePaddle/SLANeXt_wired_safetensors"
model = AutoModelForTableRecognition.from_pretrained(model_path, device_map="auto")
image_processor = AutoImageProcessor.from_pretrained(model_path)
image = Image.open(requests.get("https://huggingface.co/datasets/hf-internal-testing/transformers-synthetic-assets/resolve/main/images/paddle_table_recognition.jpg", stream=True).raw)
inputs = image_processor(images=image, return_tensors="pt").to(model.device)
outputs = model(**inputs)
results = image_processor.post_process_table_recognition(outputs)
print(result['structure'])
print(result['structure_score'])SLANeXtConfig
clase transformers.SLANeXtConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonevision_config: dict | transformers.models.slanext.configuration_slanext.SLANeXtVisionConfig | None = Nonepost_conv_in_channels: int = 256post_conv_out_channels: int = 512out_channels: int = 50hidden_size: int = 512max_text_length: int = 500 )
Parámetros
- vision_config (
dicto SLANeXtVisionConfig, opcional) — Configuración del codificador de visión. Si esNone, se utiliza un SLANeXtVisionConfig predeterminado. - post_conv_in_channels (
int, opcional, valor predeterminado 256) — Número de canales de entrada para la capa de convolución posterior al codificador. - post_conv_out_channels (
int, opcional, valor predeterminado 512) — Número de canales de salida para la capa de convolución posterior al codificador. - out_channels (
int, opcional, valor predeterminado 50) — Tamaño del vocabulario para la cabeza de predicción de tokens de estructura de tabla, es decir, el número de tokens de estructura distintos que el modelo puede predecir. - hidden_size (
int, opcional, valor predeterminado 512) — Dimensionalidad de los estados ocultos en la celda GRU de atención y en las cabezas de predicción de estructura/ubicación. - max_text_length (
int, opcional, valor predeterminado 500) — Número máximo de pasos de decodificación autoregresiva (tokens) para el decodificador de estructura y ubicación.
Esta es la clase de configuración para almacenar la configuración de un SlanextModel. Se utiliza para instanciar un modelo Slanext 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 PaddlePaddle/SLANeXt_wired_safetensors
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.
SLANeXtVisionConfig
clase transformers.SLANeXtVisionConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonehidden_size: int = 768output_channels: int = 256num_hidden_layers: int = 12num_attention_heads: int = 12num_channels: int = 3image_size: int = 512patch_size: int | list[int] | tuple[int, int] = 16hidden_act: str = 'gelu'layer_norm_eps: float = 1e-06attention_dropout: float | int = 0.0initializer_range: float = 1e-10qkv_bias: bool = Trueuse_abs_pos: bool = Trueuse_rel_pos: bool = Truewindow_size: int = 14global_attn_indexes: list[int] | tuple[int, ...] = (2, 5, 8, 11)mlp_dim: int = 3072 )
Parámetros
- hidden_size (
int, opcional, valor predeterminado768) — Dimensión de las representaciones ocultas. - output_channels (
int, opcional, valor predeterminado 256) — Dimensionalidad de los canales de salida en el Patch Encoder. - num_hidden_layers (
int, opcional, valor predeterminado12) — Número de capas ocultas en el decodificador del Transformer. - num_attention_heads (
int, opcional, valor predeterminado12) — Número de cabezas de atención para cada capa de atención en el decodificador Transformer. - num_channels (
int, opcional, valor predeterminado3) — El número de canales de entrada. - image_size (
int, opcional, valor predeterminado512) — El tamaño (resolución) de cada imagen. - patch_size (
Union[int, list[int], tuple[int, int]], opcional, valor predeterminado16) — El tamaño (resolución) de cada parche. - hidden_act (
str, opcional, valor predeterminadogelu) — La función de activación no lineal (función o cadena) en el decodificador. Por ejemplo,"gelu","relu","silu", etc. - layer_norm_eps (
float, opcional, valor predeterminado1e-06) — La epsilon utilizada por las capas de normalización de capa. - attention_dropout (
Union[float, int], opcional, valor predeterminado0.0) — La proporción de dropout para las probabilidades de atención. - initializer_range (
float, opcional, valor predeterminado1e-10) — La desviación estándar del truncated_normal_initializer para inicializar todas las matrices de pesos. - qkv_bias (
bool, opcional, valor predeterminadoTrue) — Si se debe añadir un sesgo a las consultas, claves y valores. - use_abs_pos (
bool, opcional, valor predeterminadoTrue) — Si se debe usar la incrustación de posición absoluta. - use_rel_pos (
bool, opcional, valor predeterminadoTrue) — Si se debe usar la incrustación de posición relativa. - window_size (
int, opcional, valor predeterminado 14) — Tamaño de la ventana para la posición relativa. - global_attn_indexes (
list[int], opcional, por defecto[2, 5, 8, 11]) — Los índices de las capas de atención global. - mlp_dim (
int, opcional, valor predeterminado 3072) — La dimensionalidad de la capa MLP en el codificador Transformer.
Esta es la clase de configuración para almacenar la configuración de un SlanextModel. Se utiliza para instanciar un modelo Slanext 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 PaddlePaddle/SLANeXt_wired_safetensors
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.
SLANeXtForTableRecognition
clase transformers.SLANeXtForTableRecognition
< source >( config: SLANeXtConfig )
Parámetros
- config (SLANeXtConfig) — 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 de reconocimiento de tablas SLANeXt para tareas de reconocimiento de tablas. Envuelve el núcleo SLANeXtPreTrainedModel y devuelve salidas compatibles con la API de reconocimiento de tablas de Transformers.
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
< source >( pixel_values: Tensor**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → SLANeXtForTableRecognitionOutput or tuple(torch.Tensor)
Parámetros
- pixel_values (
torch.Tensorde 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 SLANeXtImageProcessor. Consulte SLANeXtImageProcessor.call() para más detalles (processor_classutiliza SLANeXtImageProcessor para procesar las imágenes).
Devuelve
SLANeXtForTableRecognitionOutput o tuple(torch.Tensor)
Un SLANeXtForTableRecognitionOutput 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 (SLANeXtConfig) y las entradas.
El método forward de SLANeXtForTableRecognition 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
Moduledespué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.Tensorde forma(batch_size, sequence_length, hidden_size)) — Secuencia de estados ocultos en la salida de la última capa del modelo.hidden_states (
tuple(torch.Tensor), opcional, devuelto cuando se pasaoutput_hidden_states=Trueo cuandoconfig.output_hidden_states=True) — Tupla detorch.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 modelo en la salida de cada capa más las salidas opcionales de la incrustación inicial.
attentions (
tuple(torch.Tensor), opcional, se devuelve cuando se pasaoutput_attentions=Trueo cuandoconfig.output_attentions=True) — Tupla detorch.Tensor(una por cada capa) de forma(batch_size, num_heads, sequence_length, sequence_length).Pesos de atención tras el softmax de atención, utilizados para calcular la media ponderada en las cabezas de autoatención.
head_hidden_states (
tuple(torch.Tensor), opcional, se devuelve cuando se pasaoutput_hidden_states=Trueo cuandoconfig.output_hidden_states=True) — Estados ocultos de SLANeXtSLAHead en cada paso de predicción, varía hasta un máximo deself.config.max_text_lengthestados (dependiendo de las salidas anticipadas).head_attentions (
tuple(torch.Tensor), opcional, se devuelve cuando se pasaoutput_attentions=Trueo cuandoconfig.output_attentions=True) — Atenciones de SLANeXtSLAHead en cada paso de predicción, varía hasta un máximo deself.config.max_text_lengthatenciones (dependiendo de las salidas anticipadas).
SLANeXtBackbone
SLANeXtSLAHead
SLANeXtImageProcessor
clase transformers.SLANeXtImageProcessor
< source >( **kwargs: *<class 'transformers.processing_utils.ImagesKwargs'> )
Parámetros
- do_convert_rgb (
bool, kwargs, opcional, valor predeterminadoTrue) — Si se debe convertir la imagen a RGB. - do_resize (
bool, kwargs, opcional, valor predeterminadoTrue) — Si se debe redimensionar la imagen. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, por defecto{'height' -- 512, 'width': 512}): Describe las dimensiones de entrada máximas para el modelo. - default_to_square (
bool, kwargs, opcional, valor predeterminadoTrue) — Si se debe usar una imagen cuadrada por defecto al redimensionar, si 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 aplicarcenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, por defecto2) — Filtro de remuestreo a utilizar si se redimensiona la imagen. Puede ser uno de los valores de la enumeraciónPILImageResampling. Solo tiene efecto sido_resizeestá establecido enTrue. - do_rescale (
bool, kwargs, opcional, valor predeterminadoTrue) — Si se debe reescalar la imagen. - rescale_factor (
float, kwargs, opcional, valor predeterminado0.00392156862745098) — Factor de reescalado para reescalar la imagen sido_rescaleestá establecido enTrue. - do_normalize (
bool, kwargs, opcional, valor predeterminadoTrue) — 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 sido_normalizeestá establecido enTrue. - 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 a utilizar para la normalización. Solo tiene efecto sido_normalizeestá establecido enTrue. - do_pad (
bool, kwargs, opcional, valor predeterminadoTrue) — 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, por defecto{'height' -- 512, 'width': 512}): El tamaño en{"height": int, "width" int}al que rellenar las imágenes. Debe ser mayor que cualquier tamaño de imagen proporcionado para el preprocesamiento. Si no se proporcionapad_size, las imágenes se rellenarán hasta la mayor altura y anchura del lote. Se aplica solo cuandodo_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 admiteChannelDimension.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 canales para la imagen de entrada. Si no se establece, el formato de la dimensión de canales se infiere a partir de la imagen de entrada. Puede ser uno de:"channels_first"oChannelDimension.FIRST: imagen en formato (num_channels, height, width)."channels_last"oChannelDimension.LAST: imagen en formato (altura, ancho, num_canales)."none"oChannelDimension.NONE: imagen en formato (altura, ancho).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — El dispositivo en el que se procesarán los videos. Si no se establece, el dispositivo se infiere a partir de los videos 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. Añadido por compatibilidad con versiones anteriores, pero en futuros modelos debería establecerse como un atributo del procesador.
Construye un procesador de imágenes SLANeXtImageProcessor.
Inicialice el vocabulario del decodificador para el reconocimiento de la estructura de la tabla.
Construye un diccionario de caracteres que asigna a los tokens de estructura de tablas HTML (p. ej., <thead>, <tr>, <td>, atributos colspan/
rowspan) índices enteros. El diccionario incluye los tokens especiales "sos" (inicio de secuencia) y "eos" (fin de secuencia). Se utilizan tokens <td></td> fusionados en lugar de tokens <td> independientes cuando sea aplicable.
post_process_table_recognition
< source >( outputs ) → dict
Parámetros
- outputs (
SLANeXtForTableRecognitionOutput) — Salidas sin procesar del modelo SLANeXt. El campolast_hidden_statecontiene las distribuciones de probabilidad predichas sobre el vocabulario de estructura en cada paso de decodificación, con forma(batch_size, max_text_length, num_classes).
Devuelve
dict
Un diccionario que contiene:
- estructura (
list[str]): La estructura de la tabla HTML predicha como una lista de tokens, envuelta con las etiquetas<html>,<body>y<table>. - structure_score (
float): Puntuación media de confianza en todos los tokens predichos.
Post-procesar las salidas crudas del modelo para decodificar la estructura de tabla predicha en una secuencia de tokens HTML.
Convierte las distribuciones de probabilidad predichas por el modelo sobre el vocabulario de estructura en una secuencia de
tokens HTML que representan la estructura de la tabla. Los tokens decodificados se envuelven con las etiquetas <html>, <body> y <table> para formar una estructura de tabla HTML completa.