Transformers documentation
SLANeXt
Эта модель была добавлена в Hugging Face Transformers 21.03.2026.
SLANeXt
Обзор
SLANeXt_wired и SLANeXt_wireless входят в серию специализированных лёгких моделей для распознавания структуры таблиц, ориентированных на точное определение структуры таблиц в документах и естественных сценах. Дополнительные сведения о серии моделей SLANeXt приведены в официальной документации.
Архитектура модели
Серия SLANeXt представляет собой новое поколение моделей распознавания структуры таблиц, разработанных командой Baidu PaddlePaddle Vision Team. SLANeXt ориентирована на распознавание структуры таблиц и обучает отдельные веса для таблиц с рамками и без рамок. Способность распознавать все типы таблиц была значительно улучшена, особенно для таблиц с рамками.
Использование
Вывод для одного входа
Приведённый ниже пример показывает, как обнаруживать текст с помощью PP-OCRV5_Mobile_Det, используя 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
класс 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 )
Параметры
- vision_config (
dictили SLANeXtVisionConfig, optional) — Конфигурация для визуального энкодера. ЕслиNone, используется конфигурация SLANeXtVisionConfig по умолчанию. - post_conv_in_channels (
int, необязательный, по умолчанию 256) — Количество входных каналов для свёрточного слоя после энкодера. - post_conv_out_channels (
int, необязательный, по умолчанию 512) — Количество выходных каналов для свёрточного слоя после энкодера. - out_channels (
int, необязательный, по умолчанию 50) — Размер словаря для головы предсказания токенов структуры таблицы, то есть количество различных токенов структуры, которые может предсказать модель. - hidden_size (
int, необязательный, по умолчанию 512) — Размерность скрытых состояний в ячейке attention GRU и в головах предсказания структуры/локализации. - max_text_length (
int, необязательный, по умолчанию 500) — Максимальное количество шагов авторегрессионного декодирования (токенов) для декодера структуры и расположения.
Это класс конфигурации для хранения настроек модели SlanextModel. Он используется для создания экземпляра модели Slanext в соответствии с указанными аргументами, определяя архитектуру модели. Создание конфигурации с параметрами по умолчанию даст конфигурацию, аналогичную конфигурации PaddlePaddle/SLANeXt_wired_safetensors
Объекты конфигурации наследуются от PreTrainedConfig и могут использоваться для управления выводами модели. Подробнее читайте в документации PreTrainedConfig.
SLANeXtVisionConfig
класс 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 )
Параметры
- hidden_size (
int, необязательный, по умолчанию768) — Размерность скрытых представлений. - output_channels (
int, необязательный, по умолчанию 256) — Размерность выходных каналов в Patch Encoder. - num_hidden_layers (
int, необязательный, по умолчанию12) — Количество скрытых слоев в декодере Transformer. - num_attention_heads (
int, необязательный, по умолчанию12) — Количество головок внимания в каждом слое внимания декодера Transformer. - num_channels (
int, необязательный, по умолчанию3) — Количество входных каналов. - image_size (
int, необязательный, по умолчанию512) — Размер (разрешение) каждого изображения. - patch_size (
Union[int, list[int], tuple[int, int]], необязательный, по умолчанию16) — Размер (разрешение) каждого патча. - hidden_act (
str, необязательный, по умолчаниюgelu) — Нелинейная функция активации (функция или строка) в декодере. Например,"gelu","relu","silu"и т. д. - layer_norm_eps (
float, необязательный, по умолчанию1e-06) — Значение epsilon, используемое слоями нормализации. - attention_dropout (
Union[float, int], необязательный, по умолчанию0.0) — Коэффициент dropout для вероятностей внимания. - initializer_range (
float, необязательный, по умолчанию1e-10) — Стандартное отклонение truncated_normal_initializer для инициализации всех матриц весов. - qkv_bias (
bool, необязательный, по умолчаниюTrue) — Добавлять ли смещение к запросам, ключам и значениям. - use_abs_pos (
bool, необязательный, по умолчаниюTrue) — Использовать ли абсолютное позиционное встраивание. - use_rel_pos (
bool, необязательный, по умолчаниюTrue) — Использовать ли относительное встраивание позиций. - window_size (
int, необязательный, по умолчанию 14) — Размер окна для относительного позиционирования. - global_attn_indexes (
list[int], необязательный, по умолчанию[2, 5, 8, 11]) — Индексы слоёв глобального внимания. - mlp_dim (
int, необязательный, по умолчанию 3072) — Размерность слоя MLP в кодере Transformer.
Это класс конфигурации для хранения настроек модели SlanextModel. Он используется для создания экземпляра модели Slanext в соответствии с указанными аргументами, определяя архитектуру модели. Создание конфигурации с параметрами по умолчанию даст конфигурацию, аналогичную конфигурации PaddlePaddle/SLANeXt_wired_safetensors
Объекты конфигурации наследуются от PreTrainedConfig и могут использоваться для управления выводами модели. Подробнее читайте в документации PreTrainedConfig.
SLANeXtForTableRecognition
класс transformers.SLANeXtForTableRecognition
< source >( config: SLANeXtConfig )
Параметры
- config (SLANeXtConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация по файлу конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Чтобы загрузить веса модели, используйте метод from_pretrained().
Модель SLANeXt Table Recognition для задач распознавания таблиц. Оборачивает базовую модель SLANeXtPreTrainedModel и возвращает выходные данные, совместимые с API распознавания таблиц в Transformers.
Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)
Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.
forward
< source >( pixel_values: Tensor**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → SLANeXtForTableRecognitionOutput or tuple(torch.Tensor)
Параметры
- pixel_values (
torch.Tensorформы(batch_size, num_channels, image_size, image_size)) — Тензоры, соответствующие входным изображениям. Значения пикселей можно получить с помощью SLANeXtImageProcessor. Подробности см. в SLANeXtImageProcessor.call() (processor_classиспользует SLANeXtImageProcessor для обработки изображений).
Возвращает
SLANeXtForTableRecognitionOutput или tuple(torch.Tensor)
SLANeXtForTableRecognitionOutput или кортеж из
torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные
элементы в зависимости от конфигурации (SLANeXtConfig) и входных данных.
Метод forward класса SLANeXtForTableRecognition переопределяет специальный метод __call__.
Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр
Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.
last_hidden_state (
torch.Tensorформы(batch_size, sequence_length, hidden_size)) — Последовательность скрытых состояний на выходе последнего слоя модели.hidden_states (
tuple(torch.Tensor), optional, возвращается, если переданоoutput_hidden_states=Trueили еслиconfig.output_hidden_states=True) — кортеж изtorch.Tensor(один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого слоя) формы(batch_size, sequence_length, hidden_size).Скрытые состояния модели на выходе каждого слоя, а также необязательные выходные значения начального слоя встраивания.
attentions (
tuple(torch.Tensor), необязательный, возвращается при передачеoutput_attentions=Trueили приconfig.output_attentions=True) — Кортежtorch.Tensor(по одному на каждый слой) формы(batch_size, num_heads, sequence_length, sequence_length).Веса внимания после softmax в механизме внимания, используемые для вычисления взвешенного среднего в головах само-внимания.
head_hidden_states (
tuple(torch.Tensor), необязательный, возвращается при передачеoutput_hidden_states=Trueили приconfig.output_hidden_states=True) — Скрытые состояния SLANeXtSLAHead на каждом шаге предсказания, количество которых варьируется доself.config.max_text_lengthсостояний (в зависимости от ранних выходов).head_attentions (
tuple(torch.Tensor), необязательный, возвращается при передачеoutput_attentions=Trueили приconfig.output_attentions=True) — Веса внимания SLANeXtSLAHead на каждом шаге предсказания, количество которых варьируется доself.config.max_text_length(в зависимости от ранних выходов).
SLANeXtBackbone
SLANeXtSLAHead
SLANeXtImageProcessor
класс transformers.SLANeXtImageProcessor
< source >( **kwargs: *<class 'transformers.processing_utils.ImagesKwargs'> )
Параметры
- do_convert_rgb (
bool, kwargs, optional, по умолчаниюTrue) — Следует ли преобразовать изображение в RGB. - do_resize (
bool, kwargs, optional, по умолчаниюTrue) — Указывает, нужно ли изменять размер изображения. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, по умолчанию{'height' -- 512, 'width': 512}): Определяет максимальные размеры входных данных для модели. - default_to_square (
bool, kwargs, optional, по умолчаниюTrue) — Определяет, следует ли по умолчанию использовать квадратное изображение при изменении размера, если size задано как int. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Размер выходного изображения после примененияcenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, по умолчанию2) — Фильтр ресемплинга, используемый при изменении размера изображения. Может быть одним из значений перечисленияPILImageResampling. Влияет только в том случае, еслиdo_resizeустановлено вTrue. - do_rescale (
bool, kwargs, optional, по умолчаниюTrue) — Указывает, следует ли выполнять рескейлинг изображения. - rescale_factor (
float, kwargs, optional, по умолчанию0.00392156862745098) — Коэффициент масштабирования, применяемый к изображению, еслиdo_rescaleустановлен вTrue. - do_normalize (
bool, kwargs, optional, по умолчаниюTrue) — Указывает, следует ли нормализовать изображение. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, optional, по умолчанию[0.485, 0.456, 0.406]) — Среднее значение изображения, используемое для нормализации. Влияет только в том случае, еслиdo_normalizeустановлено вTrue. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, optional, по умолчанию[0.229, 0.224, 0.225]) — Стандартное отклонение изображения, используемое для нормализации. Влияет только в том случае, еслиdo_normalizeустановлено вTrue. - do_pad (
bool, kwargs, optional, по умолчаниюTrue) — Указывает, нужно ли выравнивать изображение. Выравнивание выполняется либо до максимального размера в батче, либо до фиксированного квадратного размера для каждого изображения. Конкретная стратегия выравнивания зависит от модели. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, по умолчанию{'height' -- 512, 'width': 512}): Размер в формате{"height": int, "width" int}, до которого следует дополнить изображения. Должен быть больше любого размера изображения, предоставленного для предобработки. Еслиpad_sizeне указан, изображения будут дополнены до наибольшей высоты и ширины в батче. Применяется только приdo_pad=True. - do_center_crop (
bool, kwargs, optional) — Выполнять ли центрированную обрезку изображения. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, optional) — Поддерживается толькоChannelDimension.FIRST. Добавлено для совместимости с медленными процессорами. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, необязательный) — Формат размерности каналов для входного изображения. Если не задан, формат размерности каналов выводится из входного изображения. Может быть одним из:"channels_first"илиChannelDimension.FIRST: изображение в формате (num_channels, height, width)."channels_last"илиChannelDimension.LAST: изображение в формате (высота, ширина, число каналов)."none"илиChannelDimension.NONE: изображение в формате (height, width).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — Устройство, на котором будут обрабатываться видео. Если не задано, устройство определяется на основе входных видео. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Возвращает стопку тензоров, если установлено значение'pt', иначе возвращает список тензоров. - disable_grouping (
bool, kwargs, optional) — Определяет, следует ли отключить группировку изображений по размеру для их индивидуальной обработки, а не пачками. Если значение равно None, оно будет установлено в True, если изображения находятся на CPU, и в False в противном случае. Этот выбор основан на эмпирических наблюдениях, описанных здесь: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int, kwargs, optional) — Количество токенов изображения, используемых для каждого изображения во входных данных. Добавлено для обратной совместимости, но в будущих моделях это значение следует задавать как атрибут процессора.
Создает процессор изображений SLANeXtImageProcessor.
Инициализируйте словарь декодера для распознавания структуры таблицы.
Создаёт словарь символов, сопоставляющий токены структуры HTML-таблицы (например, <thead>, <tr>, <td>, атрибуты colspan/
rowspan) целочисленным индексам. В словарь входят специальные токены "sos" (начало последовательности) и "eos" (конец последовательности). Слитные токены <td></td> используются вместо отдельных токенов <td>, когда это уместно.
post_process_table_recognition
< source >( outputs ) → dict
Параметры
- outputs (
SLANeXtForTableRecognitionOutput) — Сырые выходные данные модели SLANeXt. Полеlast_hidden_stateсодержит предсказанные распределения вероятностей по словарю структур на каждом шаге декодирования, с формой(batch_size, max_text_length, num_classes).
Возвращает
dict
Словарь, содержащий:
- structure (
list[str]): Предсказанная структура HTML-таблицы в виде списка токенов, обёрнутая в теги<html>,<body>и<table>. - structure_score (
float): Средний показатель уверенности по всем предсказанным токенам.
После получения сырых выходов модели декодируйте предсказанную структуру таблицы в последовательность HTML-токенов.
Преобразует предсказанные моделью распределения вероятностей по словарю структур в последовательность
токенов HTML, представляющих структуру таблицы. Декодированные токены оборачиваются в теги <html>, <body> и <table>, чтобы сформировать полную структуру таблицы HTML.