Transformers documentation
SLANeXt
Model ini disumbangkan ke Hugging Face Transformers pada 2026-03-21.
SLANeXt
Ikhtisar
SLANeXt_wired dan SLANeXt_wireless merupakan bagian dari seri model ringan khusus untuk pengenalan struktur tabel, yang berfokus pada pengenalan struktur tabel secara akurat dalam dokumen dan adegan alami. Untuk detail lebih lanjut tentang model seri SLANeXt, silakan merujuk ke dokumentasi resmi.
Arsitektur Model
Seri SLANeXt adalah generasi baru model pengenalan struktur tabel yang dikembangkan secara independen oleh Tim Visi PaddlePaddle Baidu. SLANeXt berfokus pada pengenalan struktur tabel, dan melatih bobot khusus secara terpisah untuk tabel berbingkai (wired) dan tabel tanpa bingkai (wireless). Kemampuan pengenalan untuk semua jenis tabel telah ditingkatkan secara signifikan, terutama untuk tabel berbingkai.
Penggunaan
Inferensi input tunggal
Contoh di bawah ini menunjukkan cara mendeteksi teks dengan PP-OCRV5_Mobile_Det menggunakan 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
kelas 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 )
Parameter
- vision_config (
dictatau SLANeXtVisionConfig, opsional) — Konfigurasi untuk vision encoder. JikaNone, SLANeXtVisionConfig default akan digunakan. - post_conv_in_channels (
int, opsional, default 256) — Jumlah saluran input untuk lapisan konvolusi pasca-encoder. - post_conv_out_channels (
int, opsional, default 512) — Jumlah channel output untuk lapisan konvolusi pasca-encoder. - out_channels (
int, opsional, default 50) — Ukuran kosakata untuk head prediksi token struktur tabel, yaitu jumlah token struktur berbeda yang dapat diprediksi oleh model. - hidden_size (
int, opsional, default 512) — Dimensi dari hidden states pada sel GRU attention dan head prediksi struktur/lokasi. - max_text_length (
int, opsional, default 500) — Jumlah maksimum langkah decoding autoregresif (token) untuk decoder struktur dan lokasi.
Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari SlanextModel. Kelas ini digunakan untuk membuat instans model Slanext berdasarkan argumen yang ditentukan, sehingga mendefinisikan arsitektur model. Membuat instans konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari PaddlePaddle/SLANeXt_wired_safetensors
Objek konfigurasi mewarisi dari PreTrainedConfig dan dapat digunakan untuk mengontrol output model. Baca dokumentasi dari PreTrainedConfig untuk informasi lebih lanjut.
SLANeXtVisionConfig
kelas 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 )
Parameter
- hidden_size (
int, opsional, default768) — Dimensi dari representasi tersembunyi. - output_channels (
int, opsional, default 256) — Dimensi dari saluran output di Patch Encoder. - num_hidden_layers (
int, opsional, default12) — Jumlah lapisan tersembunyi dalam decoder Transformer. - num_attention_heads (
int, opsional, default12) — Jumlah attention head untuk setiap lapisan attention di decoder Transformer. - num_channels (
int, opsional, defaultnya3) — Jumlah saluran input. - image_size (
int, opsional, default512) — Ukuran (resolusi) setiap gambar. - patch_size (
Union[int, list[int], tuple[int, int]], opsional, defaultnya16) — Ukuran (resolusi) dari setiap patch. - hidden_act (
str, opsional, defaultnyagelu) — Fungsi aktivasi non-linear (fungsi atau string) di decoder. Misalnya,"gelu","relu","silu", dan sebagainya. - layer_norm_eps (
float, opsional, defaultnya1e-06) — Epsilon yang digunakan oleh lapisan normalisasi lapisan. - attention_dropout (
Union[float, int], opsional, default0.0) — Rasio dropout untuk probabilitas perhatian. - initializer_range (
float, opsional, defaultnya1e-10) — Standar deviasi dari truncated_normal_initializer untuk menginisialisasi semua matriks bobot. - qkv_bias (
bool, opsional, defaultnyaTrue) — Apakah akan menambahkan bias ke queries, keys, dan values. - use_abs_pos (
bool, opsional, defaultnyaTrue) — Apakah akan menggunakan penanam posisi absolut. - use_rel_pos (
bool, opsional, defaultTrue) — Apakah akan menggunakan relative position embedding. - window_size (
int, opsional, default 14) — Ukuran jendela untuk posisi relatif. - global_attn_indexes (
list[int], opsional, default[2, 5, 8, 11]) — Indeks dari lapisan global attention. - mlp_dim (
int, opsional, default 3072) — Dimensi dari lapisan MLP dalam encoder Transformer.
Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari SlanextModel. Kelas ini digunakan untuk membuat instans model Slanext berdasarkan argumen yang ditentukan, sehingga mendefinisikan arsitektur model. Membuat instans konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari PaddlePaddle/SLANeXt_wired_safetensors
Objek konfigurasi mewarisi dari PreTrainedConfig dan dapat digunakan untuk mengontrol output model. Baca dokumentasi dari PreTrainedConfig untuk informasi lebih lanjut.
SLANeXtForTableRecognition
kelas transformers.SLANeXtForTableRecognition
< source >( config: SLANeXtConfig )
Parameter
- config (SLANeXtConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.
Model SLANeXt Table Recognition untuk tugas pengenalan tabel. Membungkus inti SLANeXtPreTrainedModel dan mengembalikan output yang kompatibel dengan API pengenalan tabel Transformers.
Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)
Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.
forward
< source >( pixel_values: Tensor**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → SLANeXtForTableRecognitionOutput or tuple(torch.Tensor)
Parameter
- pixel_values (
torch.Tensordengan bentuk(batch_size, num_channels, image_size, image_size)) — Tensor yang sesuai dengan gambar input. Nilai piksel dapat diperoleh menggunakan SLANeXtImageProcessor. Lihat SLANeXtImageProcessor.call() untuk detailnya (processor_classmenggunakan SLANeXtImageProcessor untuk memproses gambar).
Mengembalikan
SLANeXtForTableRecognitionOutput atau tuple(torch.Tensor)
SLANeXtForTableRecognitionOutput atau tuple dari
torch.Tensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (SLANeXtConfig) dan input.
Metode forward dari SLANeXtForTableRecognition menimpa metode khusus __call__.
Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance
Modulesetelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.
last_hidden_state (
torch.Tensordengan bentuk(batch_size, sequence_length, hidden_size)) — Urutan hidden-states pada keluaran lapisan terakhir model.hidden_states (
tuple(torch.Tensor), opsional, dikembalikan saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk(batch_size, sequence_length, hidden_size).Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.
attentions (
tuple(torch.Tensor), opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).
head_hidden_states (
tuple(torch.Tensor), opsional, dikembalikan ketikaoutput_hidden_states=Truedilewatkan atau ketikaconfig.output_hidden_states=True) — Hidden-states dari SLANeXtSLAHead pada setiap langkah prediksi, bervariasi hingga maksimalself.config.max_text_lengthstate (tergantung pada early exits).head_attentions (
tuple(torch.Tensor), opsional, dikembalikan ketikaoutput_attentions=Truedilewatkan atau ketikaconfig.output_attentions=True) — Atensi dari SLANeXtSLAHead pada setiap langkah prediksi, bervariasi hingga maksimalself.config.max_text_lengthatensi (tergantung pada early exits).
SLANeXtBackbone
SLANeXtSLAHead
SLANeXtImageProcessor
kelas transformers.SLANeXtImageProcessor
< source >( **kwargs: *<class 'transformers.processing_utils.ImagesKwargs'> )
Parameter
- do_convert_rgb (
bool, kwargs, opsional, defaultTrue) — Apakah akan mengkonversi gambar ke RGB. - do_resize (
bool, kwargs, opsional, defaultTrue) — Apakah akan mengubah ukuran gambar. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, defaultnya{'height' -- 512, 'width': 512}): Menggambarkan dimensi input maksimum untuk model. - default_to_square (
bool, kwargs, opsional, defaultnyaTrue) — Apakah akan menggunakan gambar persegi sebagai default saat melakukan resize, jika size berupa int. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran gambar keluaran setelah menerapkancenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, defaultnya2) — Filter resampling yang digunakan jika mengubah ukuran gambar. Ini bisa berupa salah satu enumPILImageResampling. Hanya berpengaruh jikado_resizediatur keTrue. - do_rescale (
bool, kwargs, opsional, defaultTrue) — Apakah akan melakukan penskalaan ulang pada gambar. - rescale_factor (
float, kwargs, opsional, default0.00392156862745098) — Faktor rescale untuk menskalakan ulang gambar jikado_rescalediatur keTrue. - do_normalize (
bool, kwargs, opsional, defaultTrue) — Apakah akan menormalisasi gambar. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, opsional, defaultnya[0.485, 0.456, 0.406]) — Rata-rata gambar yang digunakan untuk normalisasi. Hanya berpengaruh jikado_normalizediatur keTrue. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, opsional, defaultnya[0.229, 0.224, 0.225]) — Standar deviasi gambar yang digunakan untuk normalisasi. Hanya berpengaruh jikado_normalizediatur keTrue. - do_pad (
bool, kwargs, opsional, defaultTrue) — Apakah akan melakukan padding pada gambar. Padding dilakukan ke ukuran terbesar dalam batch atau ke ukuran persegi tetap per gambar. Strategi padding yang tepat bergantung pada model. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, defaultnya{'height' -- 512, 'width': 512}): Ukuran dalam{"height": int, "width" int}untuk melakukan padding pada gambar. Harus lebih besar dari ukuran gambar mana pun yang diberikan untuk pra-pemrosesan. Jikapad_sizetidak diberikan, gambar akan di-pad hingga tinggi dan lebar terbesar dalam batch. Diterapkan hanya ketikado_pad=True. - do_center_crop (
bool, kwargs, opsional) — Apakah akan melakukan center crop pada gambar. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — HanyaChannelDimension.FIRSTyang didukung. Ditambahkan untuk kompatibilitas dengan prosesor lambat. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — Format dimensi channel untuk gambar input. Jika tidak diset, format dimensi channel akan disimpulkan dari gambar input. Bisa berupa salah satu dari:"channels_first"atauChannelDimension.FIRST: gambar dalam format (num_channels, height, width)."channels_last"atauChannelDimension.LAST: gambar dalam format (height, width, num_channels)."none"atauChannelDimension.NONE: gambar dalam format (height, width).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — Perangkat untuk memproses video. Jika tidak disetel, perangkat akan disimpulkan dari video input. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Mengembalikan tensor bertumpuk jika diset ke'pt', selain itu mengembalikan daftar tensor. - disable_grouping (
bool, kwargs, opsional) — Apakah akan menonaktifkan pengelompokan gambar berdasarkan ukuran untuk memprosesnya secara individual dan bukan dalam batch. Jika None, akan diatur ke True jika gambar berada di CPU, dan False selain itu. Pilihan ini didasarkan pada pengamatan empiris, seperti yang dijelaskan di sini: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int, kwargs, opsional) — Jumlah token gambar yang akan digunakan untuk setiap gambar dalam input. Ditambahkan untuk kompatibilitas mundur, tetapi ini seharusnya diatur sebagai atribut prosesor pada model-model mendatang.
Membangun pemroses gambar SLANeXtImageProcessor.
Inisialisasi kosakata decoder untuk pengenalan struktur tabel.
Membangun kamus karakter yang memetakan token struktur tabel HTML (misalnya, <thead>, <tr>, <td>, atribut colspan/
rowspan) ke indeks integer. Kamus ini mencakup token khusus "sos" (start-of-sequence) dan "eos" (end-of-sequence). Token <td></td> yang digabungkan digunakan sebagai pengganti token <td> mandiri
ketika berlaku.
post_process_table_recognition
< source >( outputs ) → dict
Parameter
- outputs (
SLANeXtForTableRecognitionOutput) — Output mentah dari model SLANeXt. Fieldlast_hidden_stateberisi distribusi probabilitas yang diprediksi atas kosakata struktur pada setiap langkah decoding, dengan bentuk(batch_size, max_text_length, num_classes).
Mengembalikan
dict
Kamus yang berisi:
- struktur (
list[str]): Struktur tabel HTML yang diprediksi sebagai daftar token, dibungkus dengan tag<html>,<body>, dan<table>. - structure_score (
float): Skor kepercayaan rata-rata di seluruh token yang diprediksi.
Lakukan pascapemrosesan pada keluaran mentah model untuk mendekode struktur tabel yang diprediksi menjadi sekuens token HTML.
Mengubah distribusi probabilitas prediksi model di atas kosakata struktur menjadi urutan token HTML yang merepresentasikan struktur tabel. Token yang didekode dibungkus dengan tag <html>, <body>, dan <table> untuk membentuk struktur tabel HTML yang lengkap.