Transformers documentation
SLANet
Este modelo foi contribuído para o Hugging Face Transformers em 2026-04-22.
SLANet
Visão geral
SLANet e SLANet_plus fazem parte de uma série de modelos leves dedicados ao reconhecimento de estrutura 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 SLANet, consulte a documentação oficial.
Arquitetura do Modelo
SLANet é um modelo de reconhecimento de estrutura de tabela desenvolvido pela Baidu PaddlePaddle Vision Team. O modelo melhora significativamente a precisão e a velocidade de inferência do reconhecimento de estrutura de tabela ao adotar uma rede backbone leve e compatível com CPU, a PP-LCNet, um módulo de fusão de recursos de alto e baixo nível, o CSP-PAN, e um módulo de decodificação de recursos, o SLA Head, que alinha informações estruturais e posicionais.
Uso
Inferência com entrada única
O exemplo abaixo demonstra como detectar texto com SLANet usando o AutoModel.
from io import BytesIO
from huggingface_hub.utils import httpx
from PIL import Image
from transformers import AutoImageProcessor, AutoModelForTableRecognition
model_path="PaddlePaddle/SLANet_plus_safetensors"
model = AutoModelForTableRecognition.from_pretrained(model_path, device_map="auto")
image_processor = AutoImageProcessor.from_pretrained(model_path)
image = Image.open(BytesIO(httpx.get(image_url).content))
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'])SLANetConfig
classe transformers.SLANetConfig
< 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 = Nonepost_conv_out_channels: int = 96out_channels: int = 50hidden_size: int = 256max_text_length: int = 500backbone_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonehidden_act: str = 'hardswish'csp_kernel_size: int = 5csp_num_blocks: int = 1 )
Parâmetros
- post_conv_out_channels (
int, opcional, padrão 96) — 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 256) — 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. - backbone_config (
Union[dict, ~configuration_utils.PreTrainedConfig], opcional) — A configuração do modelo backbone. - hidden_act (
str, opcional, padrãohardswish) — A função de ativação não linear (função ou string) no decodificador. Por exemplo,"gelu","relu","silu", etc. - csp_kernel_size (
int, opcional, padrão 5) — O tamanho do kernel da camada Cross Stage Partial (CSP). - csp_num_blocks (
int, opcional, padrão 1) — Número de blocos dentro da camada Cross Stage Partial (CSP).
Esta é a classe de configuração para armazenar a configuração de um SlanetModel. Ela é usada para instanciar um modelo Slanet 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/SLANet_plus_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.
SLANetForTableRecognition
classe transformers.SLANetForTableRecognition
< source >( config: SLANetConfig )
Parâmetros
- config (SLANetConfig) — 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 SLANet para tarefas de reconhecimento de tabelas. Encapsula o núcleo SLANetPreTrainedModel 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'> ) → SLANetForTableRecognitionOutput 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
SLANetForTableRecognitionOutput ou tuple(torch.Tensor)
Um SLANetForTableRecognitionOutput 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 (SLANetConfig) e das entradas.
O método forward de SLANetForTableRecognition 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, num_channels, height, width)) — 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, num_channels, height, width).Estados ocultos do modelo na saída de cada camada, além das saídas opcionais do embedding inicial.
head_hidden_states (
tuple(torch.Tensor), opcional, retornado quandooutput_hidden_states=Trueé passado ou quandoconfig.output_hidden_states=True) — Hidden-states do SLANetSLAHead 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 SLANetSLAHead em cada etapa de previsão, variando até no máximoself.config.max_text_lengthatenções (dependendo das saídas antecipadas).
SLANetBackbone
forward
< source >( hidden_states: Tensor**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithNoAttention or tuple(torch.Tensor)
Parâmetros
- hidden_states (
torch.Tensor) — entrada da camada com forma `(batch, seq_len, embed_dim)`
Retorna
BaseModelOutputWithNoAttention ou tuple(torch.Tensor)
Um BaseModelOutputWithNoAttention 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 (SLANetConfig) e das entradas.
O método forward de SLANetBackbone 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, num_channels, height, width)) — 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, num_channels, height, width).Estados ocultos do modelo na saída de cada camada, além das saídas opcionais do embedding inicial.