Transformers documentation
SLANeXt
Este modelo foi contribuído para o Hugging Face Transformers em 2026-03-21.
SLANeXt
Visão geral
SLANeXt_wired e SLANeXt_wireless fazem parte de uma série de modelos leves dedicados ao reconhecimento de estruturas de tabelas, com foco no reconhecimento preciso de estruturas de tabelas em documentos e cenas naturais. Para mais detalhes sobre o modelo da série SLANeXt, consulte a documentação oficial.
Arquitetura do Modelo
A série SLANeXt é uma nova geração de modelos de reconhecimento de estrutura de tabelas desenvolvida independentemente pela equipe de visão do PaddlePaddle, da Baidu. O SLANeXt se concentra no reconhecimento de estrutura de tabelas e treina pesos dedicados para tabelas com e sem bordas separadamente. A capacidade de reconhecimento para todos os tipos de tabelas foi significativamente aprimorada, especialmente para tabelas com bordas.
Uso
Inferência com entrada única
O exemplo abaixo demonstra como detectar texto com PP-OCRV5_Mobile_Det usando o 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
classe 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 (
dictou SLANeXtVisionConfig, opcional) — Configuração para o codificador de visão. SeNone, um SLANeXtVisionConfig padrão é utilizado. - post_conv_in_channels (
int, opcional, padrão 256) — Número de canais de entrada para a camada de convolução pós-encoder. - post_conv_out_channels (
int, opcional, padrão 512) — Número de canais de saída para a camada de convolução pós-encoder. - out_channels (
int, opcional, padrão 50) — Tamanho do vocabulário para a cabeça de previsão de tokens de estrutura de tabela, ou seja, o número de tokens de estrutura distintos que o modelo pode prever. - hidden_size (
int, opcional, padrão 512) — Dimensão dos estados ocultos na célula GRU de atenção e nas cabeças de previsão de estrutura/localização. - max_text_length (
int, opcional, padrão 500) — Número máximo de etapas de decodificação autoregressiva (tokens) para o decodificador de estrutura e localização.
Esta é a classe de configuração para armazenar a configuração de um SlanextModel. Ela é usada para instanciar um modelo Slanext de acordo com os argumentos especificados, definindo a arquitetura do modelo. Instanciar uma configuração com os padrões resultará em uma configuração semelhante à do PaddlePaddle/SLANeXt_wired_safetensors
Os objetos de configuração herdam de PreTrainedConfig e podem ser usados para controlar as saídas do modelo. Consulte a documentação de PreTrainedConfig para mais informações.
SLANeXtVisionConfig
classe 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, padrão768) — Dimensão das representações ocultas. - output_channels (
int, opcional, padrão 256) — Dimensão dos canais de saída no Patch Encoder. - num_hidden_layers (
int, opcional, padrão12) — Número de camadas ocultas no decodificador do Transformer. - num_attention_heads (
int, opcional, padrão12) — Número de cabeças de atenção para cada camada de atenção no decodificador do Transformer. - num_channels (
int, opcional, padrão3) — O número de canais de entrada. - image_size (
int, opcional, padrão512) — O tamanho (resolução) de cada imagem. - patch_size (
Union[int, list[int], tuple[int, int]], opcional, padrão16) — O tamanho (resolução) de cada patch. - hidden_act (
str, opcional, padrãogelu) — A função de ativação não linear (função ou string) no decodificador. Por exemplo,"gelu","relu","silu", etc. - layer_norm_eps (
float, opcional, padrão1e-06) — O epsilon usado pelas camadas de normalização de camada. - attention_dropout (
Union[float, int], opcional, padrão0.0) — A taxa de dropout para as probabilidades de atenção. - initializer_range (
float, opcional, padrão1e-10) — O desvio padrão do truncated_normal_initializer para inicializar todas as matrizes de pesos. - qkv_bias (
bool, opcional, padrãoTrue) — Se deve adicionar um viés às queries, keys e values. - use_abs_pos (
bool, opcional, padrãoTrue) — Se deve usar incorporação de posição absoluta. - use_rel_pos (
bool, opcional, padrãoTrue) — Se deve usar incorporação de posição relativa. - window_size (
int, opcional, padrão 14) — Tamanho da janela para posição relativa. - global_attn_indexes (
list[int], opcional, padrão[2, 5, 8, 11]) — Os índices das camadas de atenção global. - mlp_dim (
int, opcional, padrão 3072) — A dimensionalidade da camada MLP no codificador Transformer.
Esta é a classe de configuração para armazenar a configuração de um SlanextModel. Ela é usada para instanciar um modelo Slanext de acordo com os argumentos especificados, definindo a arquitetura do modelo. Instanciar uma configuração com os padrões resultará em uma configuração semelhante à do PaddlePaddle/SLANeXt_wired_safetensors
Os objetos de configuração herdam de PreTrainedConfig e podem ser usados para controlar as saídas do modelo. Consulte a documentação de PreTrainedConfig para mais informações.
SLANeXtForTableRecognition
classe transformers.SLANeXtForTableRecognition
< source >( config: SLANeXtConfig )
Parâmetros
- config (SLANeXtConfig) — Classe de configuração do modelo com todos os parâmetros do modelo. A inicialização com um arquivo de configuração não carrega os pesos associados ao modelo, apenas a configuração. Consulte o método from_pretrained() para carregar os pesos do modelo.
Modelo de reconhecimento de tabelas SLANeXt para tarefas de reconhecimento de tabelas. Encapsula o núcleo SLANeXtPreTrainedModel e retorna saídas compatíveis com a API de reconhecimento de tabelas do Transformers.
Este modelo herda de PreTrainedModel. Consulte a documentação da classe pai para os métodos genéricos que a biblioteca implementa para todos os seus modelos (como download ou salvamento, redimensionamento dos embeddings de entrada, poda de cabeças, etc.)
Este modelo também é uma subclasse de torch.nn.Module do PyTorch. Use-o como um Módulo PyTorch regular e consulte a documentação do PyTorch para todos os assuntos relacionados ao uso geral e ao comportamento.
forward
< 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)) — Os tensores correspondentes às imagens de entrada. Os valores de pixels podem ser obtidos usando SLANeXtImageProcessor. Consulte SLANeXtImageProcessor.call() para mais detalhes (processor_classusa SLANeXtImageProcessor para processar as imagens).
Retorna
SLANeXtForTableRecognitionOutput ou tuple(torch.Tensor)
Uma SLANeXtForTableRecognitionOutput ou uma tupla de
torch.Tensor (se return_dict=False for passado ou quando config.return_dict=False) contendo vários
elementos, dependendo da configuração (SLANeXtConfig) e das entradas.
O método forward de SLANeXtForTableRecognition substitui o método especial __call__.
Embora a receita para a passagem direta precise ser definida dentro desta função, deve-se chamar a instância de
Moduleem seguida, em vez desta, pois a primeira cuida da execução das etapas de pré e pós-processamento, enquanto a segunda as ignora silenciosamente.
last_hidden_state (
torch.Tensorde forma(batch_size, sequence_length, hidden_size)) — Sequência de estados ocultos na saída da última camada do modelo.hidden_states (
tuple(torch.Tensor), opcional, retornado quandooutput_hidden_states=Trueé passado ou quandoconfig.output_hidden_states=True) — Tupla detorch.Tensor(um para a saída dos embeddings, se o modelo tiver uma camada de embedding, + um para a saída de cada camada) de forma(batch_size, sequence_length, hidden_size).Estados ocultos do modelo na saída de cada camada, além das saídas opcionais do embedding inicial.
attentions (
tuple(torch.Tensor), opcional, retornado quandooutput_attentions=Trueé passado ou quandoconfig.output_attentions=True) — Tupla detorch.Tensor(um para cada camada) com forma(batch_size, num_heads, sequence_length, sequence_length).Pesos de atenção após o softmax de atenção, usados para calcular a média ponderada nos cabeçalhos de autoatenção.
head_hidden_states (
tuple(torch.Tensor), opcional, retornado quandooutput_hidden_states=Trueé passado ou quandoconfig.output_hidden_states=True) — Hidden-states do SLANeXtSLAHead em cada etapa de previsão, variando até no máximoself.config.max_text_lengthestados (dependendo dos encerramentos antecipados).head_attentions (
tuple(torch.Tensor), opcional, retornado quandooutput_attentions=Trueé passado ou quandoconfig.output_attentions=True) — Atenções do SLANeXtSLAHead em cada etapa de previsão, variando até no máximoself.config.max_text_lengthatenções (dependendo das saídas antecipadas).
SLANeXtBackbone
SLANeXtSLAHead
SLANeXtImageProcessor
classe transformers.SLANeXtImageProcessor
< source >( **kwargs: *<class 'transformers.processing_utils.ImagesKwargs'> )
Parâmetros
- do_convert_rgb (
bool, kwargs, opcional, padrãoTrue) — Se a imagem deve ser convertida para RGB. - do_resize (
bool, kwargs, opcional, padrãoTrue) — Se deve redimensionar a imagem. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, padrão{'height' -- 512, 'width': 512}): Descreve as dimensões máximas de entrada para o modelo. - default_to_square (
bool, kwargs, opcional, padrãoTrue) — Se deve usar uma imagem quadrada por padrão ao redimensionar, caso o tamanho seja um inteiro. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Tamanho da imagem de saída após a aplicação decenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, padrão2) — Filtro de reamostragem a ser usado ao redimensionar a imagem. Pode ser um dos valores da enumeraçãoPILImageResampling. Tem efeito apenas sedo_resizeestiver definido comoTrue. - do_rescale (
bool, kwargs, opcional, padrãoTrue) — Se deve reescalar a imagem. - rescale_factor (
float, kwargs, opcional, padrão0.00392156862745098) — Fator de reescala para reescalar a imagem, casodo_rescaleesteja definido comoTrue. - do_normalize (
bool, kwargs, opcional, padrãoTrue) — Se a imagem deve ser normalizada. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, opcional, padrão[0.485, 0.456, 0.406]) — Média da imagem a ser usada para normalização. Tem efeito apenas sedo_normalizeestiver definido comoTrue. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, opcional, padrão[0.229, 0.224, 0.225]) — Desvio padrão da imagem a ser usado para normalização. Tem efeito apenas sedo_normalizeestiver definido comoTrue. - do_pad (
bool, kwargs, opcional, padrãoTrue) — Se deve aplicar padding à imagem. O padding é feito até o maior tamanho do lote ou até um tamanho quadrado fixo por imagem. A estratégia exata de padding depende do modelo. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, padrão{'height' -- 512, 'width': 512}): O tamanho em{"height": int, "width" int}para o preenchimento (padding) das imagens. Deve ser maior que qualquer tamanho de imagem fornecido para o pré-processamento. Sepad_sizenão for fornecido, as imagens serão preenchidas até a maior altura e largura do lote. Aplicado apenas quandodo_pad=True. - do_center_crop (
bool, kwargs, opcional) — Se deve recortar a imagem centralmente. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opcional) — ApenasChannelDimension.FIRSTé suportado. Adicionado para compatibilidade com processadores lentos. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opcional) — O formato da dimensão de canal para a imagem de entrada. Se não definido, o formato da dimensão de canal é inferido a partir da imagem de entrada. Pode ser um dos seguintes:"channels_first"ouChannelDimension.FIRST: imagem no formato (num_channels, height, width)."channels_last"ouChannelDimension.LAST: imagem no formato (altura, largura, num_canais)."none"ouChannelDimension.NONE: imagem no formato (altura, largura).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — O dispositivo em que os vídeos serão processados. Se não for definido, o dispositivo é inferido a partir dos vídeos de entrada. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Retorna tensores empilhados se definido como'pt'; caso contrário, retorna uma lista de tensores. - disable_grouping (
bool, kwargs, opcional) — Se deve desabilitar o agrupamento de imagens por tamanho para processá-las individualmente e não em lotes. Se for None, será definido como True se as imagens estiverem na CPU, e False caso contrário. Essa escolha é baseada em observações empíricas, conforme detalhado aqui: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int, kwargs, opcional) — O número de tokens de imagem a serem usados para cada imagem na entrada. Adicionado para compatibilidade reversa, mas isso deve ser definido como um atributo do processador em modelos futuros.
Constrói um processador de imagem SLANeXtImageProcessor.
Inicialize o vocabulário do decodificador para o reconhecimento da estrutura da tabela.
Cria um dicionário de caracteres que mapeia tokens de estrutura de tabela HTML (por exemplo, <thead>, <tr>, <td>, atributos colspan/
rowspan) para índices inteiros. O dicionário inclui os tokens especiais "sos" (início da sequência) e "eos" (fim da sequência). Tokens <td></td> mesclados são usados no lugar de tokens <td> isolados quando aplicável.
post_process_table_recognition
< source >( outputs ) → dict
Parâmetros
- outputs (
SLANeXtForTableRecognitionOutput) — Saídas brutas do modelo SLANeXt. O campolast_hidden_statecontém as distribuições de probabilidade previstas sobre o vocabulário de estrutura em cada etapa de decodificação, com forma(batch_size, max_text_length, num_classes).
Retorna
dict
Um dicionário contendo:
- estrutura (
list[str]): A estrutura da tabela HTML prevista como uma lista de tokens, envolvida pelas tags<html>,<body>e<table>. - structure_score (
float): A pontuação média de confiança entre todos os tokens previstos.
Pós-processe as saídas brutas do modelo para decodificar a estrutura da tabela prevista em uma sequência de tokens HTML.
Converte as distribuições de probabilidade previstas pelo modelo sobre o vocabulário da estrutura em uma sequência de
tokens HTML que representam a estrutura da tabela. Os tokens decodificados são envolvidos pelas tags <html>, <body> e <table> para formar uma estrutura de tabela HTML completa.