Transformers documentation
SLANeXt
Mô hình này đã được đóng góp cho Hugging Face Transformers vào ngày 2026-03-21.
SLANeXt
Tổng quan
SLANeXt_wired và SLANeXt_wireless là một phần của loạt mô hình nhẹ chuyên dụng cho việc nhận dạng cấu trúc bảng, tập trung vào việc nhận dạng chính xác cấu trúc bảng trong tài liệu và các cảnh tự nhiên. Để biết thêm chi tiết về loạt mô hình SLANeXt, vui lòng tham khảo tài liệu chính thức.
Kiến trúc Mô hình
Dòng SLANeXt là thế hệ mới các mô hình nhận dạng cấu trúc bảng do nhóm Thị giác PaddlePaddle của Baidu tự phát triển. SLANeXt tập trung vào nhận dạng cấu trúc bảng và huấn luyện trọng số riêng cho bảng có khung và bảng không khung. Khả năng nhận dạng cho mọi loại bảng đã được cải thiện đáng kể, đặc biệt là với bảng có khung.
Cách sử dụng
Suy luận với một đầu vào
Ví dụ dưới đây minh họa cách phát hiện văn bản bằng PP-OCRV5_Mobile_Det sử dụng 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
lớp 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 )
Tham số
- vision_config (
dicthoặc SLANeXtVisionConfig, optional) — Cấu hình cho bộ mã hóa thị giác. Nếu làNone, một SLANeXtVisionConfig mặc định sẽ được sử dụng. - post_conv_in_channels (
int, tùy chọn, mặc định là 256) — Số lượng kênh đầu vào cho lớp tích chập sau bộ mã hóa. - post_conv_out_channels (
int, tùy chọn, mặc định là 512) — Số lượng kênh đầu ra của lớp tích chập sau bộ mã hóa. - out_channels (
int, tuỳ chọn, mặc định là 50) — Kích thước từ vựng cho đầu dự đoán token cấu trúc bảng, tức là số lượng token cấu trúc khác nhau mà mô hình có thể dự đoán. - hidden_size (
int, tùy chọn, mặc định là 512) — Kích thước chiều của các trạng thái ẩn trong tế bào GRU chú ý và các đầu dự đoán cấu trúc/vị trí. - max_text_length (
int, tùy chọn, mặc định là 500) — Số bước giải mã tự hồi quy (token) tối đa cho bộ giải mã cấu trúc và vị trí.
Đây là lớp cấu hình để lưu trữ cấu hình của một SlanextModel. Nó được sử dụng để khởi tạo một mô hình Slanext theo các đối số được chỉ định, xác định kiến trúc của mô hình. Việc khởi tạo một cấu hình với các giá trị mặc định sẽ tạo ra một cấu hình tương tự như cấu hình của PaddlePaddle/SLANeXt_wired_safetensors
Các đối tượng cấu hình kế thừa từ PreTrainedConfig và có thể được sử dụng để kiểm soát đầu ra của mô hình. Đọc tài liệu từ PreTrainedConfig để biết thêm thông tin.
SLANeXtVisionConfig
lớp 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 )
Tham số
- hidden_size (
int, tùy chọn, mặc định là768) — Kích thước của các biểu diễn ẩn. - output_channels (
int, tùy chọn, mặc định là 256) — Kích thước của các kênh đầu ra trong Patch Encoder. - num_hidden_layers (
int, tùy chọn, mặc định là12) — Số lượng lớp ẩn trong bộ giải mã Transformer. - num_attention_heads (
int, tùy chọn, mặc định là12) — Số lượng đầu attention cho mỗi lớp attention trong bộ giải mã Transformer. - num_channels (
int, tùy chọn, mặc định là3) — Số lượng kênh đầu vào. - image_size (
int, tùy chọn, mặc định là512) — Kích thước (độ phân giải) của mỗi hình ảnh. - patch_size (
Union[int, list[int], tuple[int, int]], tùy chọn, mặc định là16) — Kích thước (độ phân giải) của mỗi patch. - hidden_act (
str, tùy chọn, mặc định làgelu) — Hàm kích hoạt phi tuyến (hàm hoặc chuỗi) trong bộ giải mã. Ví dụ,"gelu","relu","silu", v.v. - layer_norm_eps (
float, tùy chọn, mặc định là1e-06) — Giá trị epsilon được sử dụng bởi các lớp chuẩn hóa lớp (layer normalization). - attention_dropout (
Union[float, int], tùy chọn, mặc định là0.0) — Tỷ lệ dropout cho các xác suất chú ý. - initializer_range (
float, tùy chọn, mặc định là1e-10) — Độ lệch chuẩn của truncated_normal_initializer để khởi tạo tất cả các ma trận trọng số. - qkv_bias (
bool, tùy chọn, mặc định làTrue) — Có thêm bias cho queries, keys và values hay không. - use_abs_pos (
bool, tùy chọn, mặc định làTrue) — Có sử dụng nhúng vị trí tuyệt đối hay không. - use_rel_pos (
bool, tùy chọn, mặc định làTrue) — Có sử dụng nhúng vị trí tương đối hay không. - window_size (
int, tùy chọn, mặc định là 14) — Kích thước cửa sổ cho vị trí tương đối. - global_attn_indexes (
list[int], tùy chọn, mặc định là[2, 5, 8, 11]) — Các chỉ số của các lớp chú ý toàn cục. - mlp_dim (
int, tùy chọn, mặc định là 3072) — Kích thước của lớp MLP trong bộ mã hóa Transformer.
Đây là lớp cấu hình để lưu trữ cấu hình của một SlanextModel. Nó được sử dụng để khởi tạo một mô hình Slanext theo các đối số được chỉ định, xác định kiến trúc của mô hình. Việc khởi tạo một cấu hình với các giá trị mặc định sẽ tạo ra một cấu hình tương tự như cấu hình của PaddlePaddle/SLANeXt_wired_safetensors
Các đối tượng cấu hình kế thừa từ PreTrainedConfig và có thể được sử dụng để kiểm soát đầu ra của mô hình. Đọc tài liệu từ PreTrainedConfig để biết thêm thông tin.
SLANeXtForTableRecognition
lớp transformers.SLANeXtForTableRecognition
< source >( config: SLANeXtConfig )
Tham số
- config (SLANeXtConfig) — Lớp cấu hình mô hình chứa tất cả các tham số của mô hình. Khởi tạo bằng tệp cấu hình không tải trọng số liên quan đến mô hình, chỉ tải cấu hình. Xem phương thức from_pretrained() để tải trọng số của mô hình.
Mô hình nhận dạng bảng SLANeXt cho các tác vụ nhận dạng bảng. Bao bọc SLANeXtPreTrainedModel và trả về các đầu ra tương thích với API nhận dạng bảng của Transformers.
Mô hình này kế thừa từ PreTrainedModel. Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các mô hình của nó (chẳng hạn như tải xuống hoặc lưu trữ, thay đổi kích thước các nhúng đầu vào, cắt tỉa các đầu, v.v.)
Mô hình này cũng là một lớp con của torch.nn.Module trong PyTorch. Hãy sử dụng nó như một Module PyTorch thông thường và tham khảo tài liệu PyTorch cho mọi vấn đề liên quan đến cách sử dụng và hành vi chung.
forward
< source >( pixel_values: Tensor**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → SLANeXtForTableRecognitionOutput or tuple(torch.Tensor)
Tham số
- pixel_values (
torch.Tensorcó hình dạng(batch_size, num_channels, image_size, image_size)) — Các tensor tương ứng với các hình ảnh đầu vào. Giá trị pixel có thể được lấy bằng cách sử dụng SLANeXtImageProcessor. Xem SLANeXtImageProcessor.call() để biết chi tiết (processor_classsử dụng SLANeXtImageProcessor để xử lý hình ảnh).
Trả về
SLANeXtForTableRecognitionOutput hoặc tuple(torch.Tensor)
Một SLANeXtForTableRecognitionOutput hoặc một tuple của
torch.Tensor (nếu return_dict=False được truyền hoặc khi config.return_dict=False) bao gồm các
thành phần khác nhau tùy thuộc vào cấu hình (SLANeXtConfig) và đầu vào.
Phương thức forward của SLANeXtForTableRecognition ghi đè lên phương thức đặc biệt __call__.
Mặc dù công thức cho bước truyền tiến cần được định nghĩa bên trong hàm này, người dùng nên gọi instance của
Modulesau đó thay vì gọi hàm này, vì instanceModulesẽ đảm nhận việc thực hiện các bước tiền xử lý và hậu xử lý, trong khi hàm này sẽ lặng lẽ bỏ qua chúng.
last_hidden_state (
torch.Tensorcó hình dạng(batch_size, sequence_length, hidden_size)) — Chuỗi các hidden-state tại đầu ra của lớp cuối cùng của mô hình.hidden_states (
tuple(torch.Tensor), tuỳ chọn, được trả về khioutput_hidden_states=Trueđược truyền vào hoặc khiconfig.output_hidden_states=True) — Bộ tuple củatorch.Tensor(một cho đầu ra của embeddings, nếu mô hình có lớp embedding, + một cho đầu ra của mỗi lớp) có hình dạng(batch_size, sequence_length, hidden_size).Trạng thái ẩn của mô hình tại đầu ra của mỗi lớp cùng với các đầu ra embedding ban đầu tùy chọn.
attentions (
tuple(torch.Tensor), tuỳ chọn, được trả về khioutput_attentions=Trueđược truyền vào hoặc khiconfig.output_attentions=True) — Tuple củatorch.Tensor(một cho mỗi lớp) có hình dạng(batch_size, num_heads, sequence_length, sequence_length).Trọng số chú ý sau softmax của attention, được sử dụng để tính trung bình có trọng số trong các đầu self-attention.
head_hidden_states (
tuple(torch.Tensor), tuỳ chọn, được trả về khi truyềnoutput_hidden_states=Truehoặc khiconfig.output_hidden_states=True) — Trạng thái ẩn (hidden-states) của SLANeXtSLAHead tại mỗi bước dự đoán, thay đổi tối đa lên đếnself.config.max_text_lengthtrạng thái (tùy thuộc vào các điểm thoát sớm).head_attentions (
tuple(torch.Tensor), tuỳ chọn, được trả về khi truyềnoutput_attentions=Truehoặc khiconfig.output_attentions=True) — Các chú ý của SLANeXtSLAHead ở mỗi bước dự đoán, thay đổi tối đa lên đếnself.config.max_text_lengthchú ý (tùy thuộc vào các lối thoát sớm).
SLANeXtBackbone
SLANeXtSLAHead
SLANeXtImageProcessor
lớp transformers.SLANeXtImageProcessor
< source >( **kwargs: *<class 'transformers.processing_utils.ImagesKwargs'> )
Tham số
- do_convert_rgb (
bool, kwargs, tuỳ chọn, mặc định làTrue) — Có chuyển đổi ảnh sang RGB hay không. - do_resize (
bool, kwargs, tuỳ chọn, mặc định làTrue) — Có nên thay đổi kích thước ảnh hay không. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, mặc định là{'height' -- 512, 'width': 512}): Mô tả kích thước đầu vào tối đa cho mô hình. - default_to_square (
bool, kwargs, tùy chọn, mặc định làTrue) — Có nên mặc định dùng ảnh vuông khi thay đổi kích thước không, nếu size là một số nguyên. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Kích thước của ảnh đầu ra sau khi áp dụngcenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, mặc định là2) — Bộ lọc lấy mẫu lại (resampling filter) được sử dụng khi thay đổi kích thước ảnh. Giá trị này có thể là một trong các hằng số liệt kê (enum) củaPILImageResampling. Chỉ có hiệu lực khido_resizeđược đặt thànhTrue. - do_rescale (
bool, kwargs, tuỳ chọn, mặc định làTrue) — Có nên điều chỉnh lại tỷ lệ ảnh hay không. - rescale_factor (
float, kwargs, optional, mặc định là0.00392156862745098) — Hệ số rescale để rescale ảnh nếudo_rescaleđược đặt thànhTrue. - do_normalize (
bool, kwargs, tuỳ chọn, mặc định làTrue) — Có nên chuẩn hóa hình ảnh hay không. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, optional, mặc định là[0.485, 0.456, 0.406]) — Giá trị trung bình của ảnh để sử dụng cho việc chuẩn hóa. Chỉ có hiệu lực nếudo_normalizeđược đặt thànhTrue. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, optional, mặc định là[0.229, 0.224, 0.225]) — Độ lệch chuẩn của ảnh để sử dụng cho việc chuẩn hóa. Chỉ có hiệu lực nếudo_normalizeđược đặt thànhTrue. - do_pad (
bool, kwargs, tuỳ chọn, mặc định làTrue) — Có nên đệm (pad) ảnh hay không. Việc đệm được thực hiện đến kích thước lớn nhất trong batch hoặc đến một kích thước vuông cố định cho mỗi ảnh. Chiến lược đệm cụ thể phụ thuộc vào mô hình. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, mặc định là{'height' -- 512, 'width': 512}): Kích thước ở dạng{"height": int, "width" int}để đệm (pad) các ảnh. Phải lớn hơn kích thước của bất kỳ ảnh nào được cung cấp cho tiền xử lý. Nếu không cung cấppad_size, các ảnh sẽ được đệm đến chiều cao và chiều rộng lớn nhất trong batch. Chỉ được áp dụng khido_pad=True. - do_center_crop (
bool, kwargs, optional) — Có nên cắt ảnh ở vị trí trung tâm hay không. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, optional) — Chỉ hỗ trợChannelDimension.FIRST. Được thêm vào để tương thích với các bộ xử lý chậm. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, tùy chọn) — Định dạng chiều kênh cho ảnh đầu vào. Nếu không được đặt, định dạng chiều kênh sẽ được suy ra từ ảnh đầu vào. Có thể là một trong các giá trị:"channels_first"hoặcChannelDimension.FIRST: ảnh ở định dạng (num_channels, height, width)."channels_last"hoặcChannelDimension.LAST: ảnh ở định dạng (height, width, num_channels)."none"hoặcChannelDimension.NONE: ảnh ở định dạng (chiều cao, chiều rộng).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — Thiết bị để xử lý các video. Nếu không được đặt, thiết bị sẽ được suy ra từ các video đầu vào. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Trả về các tensor được xếp chồng nếu được đặt thành'pt', ngược lại trả về một danh sách các tensor. - disable_grouping (
bool, kwargs, tuỳ chọn) — Có nên vô hiệu hóa việc nhóm các hình ảnh theo kích thước để xử lý chúng riêng lẻ thay vì theo lô hay không. Nếu là None, giá trị sẽ được đặt thành True nếu các hình ảnh nằm trên CPU, và False trong các trường hợp khác. Lựa chọn này dựa trên các quan sát thực nghiệm, như được mô tả chi tiết tại đây: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int, kwargs, optional) — Số lượng token hình ảnh sẽ được sử dụng cho mỗi hình ảnh trong đầu vào. Được thêm vào để đảm bảo tương thích ngược, nhưng trong các mô hình tương lai, giá trị này nên được đặt như một thuộc tính của bộ xử lý.
Tạo một bộ xử lý ảnh SLANeXtImageProcessor.
Khởi tạo từ vựng bộ giải mã cho nhận diện cấu trúc bảng.
Xây dựng từ điển ký tự ánh xạ các token cấu trúc bảng HTML (ví dụ: <thead>, <tr>, <td>, thuộc tính colspan/
rowspan) sang các chỉ số nguyên. Từ điển bao gồm các token đặc biệt "sos" (start-of-sequence) và "eos" (end-of-sequence). Các token <td></td> đã được hợp nhất được sử dụng thay cho các token <td> đơn lẻ
khi phù hợp.
post_process_table_recognition
< source >( outputs ) → dict
Tham số
- outputs (
SLANeXtForTableRecognitionOutput) — Đầu ra thô từ mô hình SLANeXt. Trườnglast_hidden_statechứa các phân phối xác suất dự đoán trên từ vựng cấu trúc ở mỗi bước giải mã, với hình dạng(batch_size, max_text_length, num_classes).
Trả về
dict
Một từ điển chứa:
- cấu trúc (
list[str]): Cấu trúc bảng HTML dự đoán dưới dạng danh sách các token, được bọc trong các thẻ<html>,<body>và<table>. - structure_score (
float): Điểm tin cậy trung bình trên tất cả các token được dự đoán.
Tiền xử lý đầu ra thô của mô hình để giải mã cấu trúc bảng dự đoán thành chuỗi token HTML.
Chuyển đổi các phân phối xác suất dự đoán của mô hình trên từ vựng cấu trúc thành một chuỗi các token HTML đại diện cho cấu trúc bảng. Các token đã giải mã được bọc trong các thẻ <html>, <body> và <table> để tạo thành một cấu trúc bảng HTML hoàn chỉnh.