Transformers documentation
SLANeXt
تمت مساهمة هذا النموذج في Hugging Face Transformers في 2026-03-21.
SLANeXt
نظرة عامة
SLANeXt_wired و SLANeXt_wireless هما جزء من سلسلة من النماذج الخفيفة المخصصة لتعرف بنية الجداول، مع التركيز على التعرف الدقيق على بنية الجداول في المستندات والمناظر الطبيعية. لمزيد من التفاصيل حول سلسلة نماذج SLANeXt، يُرجى الرجوع إلى التوثيق الرسمي.
بنية النموذج
تُعد سلسلة SLANeXt جيلًا جديدًا من نماذج التعرف على بنية الجداول، طوّرها فريق PaddlePaddle Vision التابع لشركة Baidu بشكل مستقل. تركز 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، اختياري) — إعدادات مُشفِّر الرؤية. إذا كانتNone، يتم استخدام SLANeXtVisionConfig افتراضيًا. - post_conv_in_channels (
int، اختياري، القيمة الافتراضية 256) — عدد قنوات الإدخال لطبقة الالتفاف بعد المُشفِّر. - post_conv_out_channels (
int، اختياري، القيمة الافتراضية 512) — عدد قنوات الإخراج لطبقة الالتفاف بعد المُشفِّر. - out_channels (
int، اختياري، القيمة الافتراضية 50) — حجم المفردات لرأس التنبؤ برموز بنية الجدول، أي عدد رموز البنية المميزة التي يمكن للنموذج التنبؤ بها. - hidden_size (
int، اختياري، القيمة الافتراضية 512) — أبعاد الحالات المخفية في خلية 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) — قيمة الإيبسلون المستخدمة في طبقات تطبيع الطبقة. - 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) والمدخلات.
تتجاوز طريقة SLANeXtForTableRecognition الخاصة بالتقديم (forward) الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
last_hidden_state (
torch.Tensorمن الشكل(batch_size, sequence_length, hidden_size)) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من النموذج.hidden_states (
tuple(torch.Tensor)، اختياري، يُعاد عند تمرير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) — حالات الإخفاء (Hidden-states) الخاصة بـ 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، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب تحويل الصورة إلى RGB. - do_resize (
bool، kwargs، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب تغيير حجم الصورة. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]، kwargs، القيمة الافتراضية{'height' -- 512, 'width': 512}): يصف الأبعاد القصوى للمدخلات إلى النموذج. - default_to_square (
bool، kwargs، اختياري، القيمة الافتراضية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) — مرشّح إعادة العينة (Resampling filter) المستخدم عند تغيير حجم الصورة. يمكن أن يكون أحد قيم التعدادPILImageResampling. لا يكون له أي تأثير إلا إذا كانت قيمةdo_resizeهيTrue. - do_rescale (
bool، kwargs، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب إعادة تحجيم الصورة. - rescale_factor (
float، kwargs، اختياري، القيمة الافتراضية0.00392156862745098) — عامل إعادة التحجيم لإعادة تحجيم الصورة إذا كانdo_rescaleمضبوطًا علىTrue. - do_normalize (
bool، kwargs، اختياري، القيمة الافتراضيةTrue) — ما إذا كان سيتم تطبيع الصورة. - image_mean (
Union[float, list[float], tuple[float, ...]]، kwargs، اختياري، القيمة الافتراضية[0.485, 0.456, 0.406]) — متوسط الصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيينdo_normalizeإلىTrue. - image_std (
Union[float, list[float], tuple[float, ...]]، kwargs، اختياري، القيمة الافتراضية[0.229, 0.224, 0.225]) — الانحراف المعياري للصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيينdo_normalizeإلىTrue. - do_pad (
bool، kwargs، اختياري، القيمة الافتراضية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، اختياري) — ما إذا كان يجب قص الصورة من المنتصف. - data_format (
Union[str, ~image_utils.ChannelDimension]، kwargs، اختياري) — يُؤمَّن دعم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: صورة بصيغة (الارتفاع، العرض).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — الجهاز الذي تتم عليه معالجة مقاطع الفيديو. إذا لم يتم تعيينه، يُستنتج الجهاز من مقاطع الفيديو المدخلة. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — تُرجع تينسورات مكدّسة إذا تم ضبطها على'pt'، وإلا تُرجع قائمة من التينسورات. - disable_grouping (
bool، kwargs، اختياري) — ما إذا كان سيتم تعطيل تجميع الصور حسب الحجم لمعالجتها بشكل فردي بدلاً من دفعات. إذا كانت القيمة None، فسيتم تعيينها إلى True إذا كانت الصور على وحدة المعالجة المركزية (CPU)، وإلا فستكون False. تستند هذه الخيارات إلى ملاحظات تجريبية، كما هو موضح هنا: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int، kwargs، اختياري) — عدد رموز الصورة التي سيتم استخدامها لكل صورة في المدخلات. تمت إضافته من أجل التوافق مع الإصدارات السابقة، لكن ينبغي ضبطه كخاصية للمعالج في النماذج المستقبلية.
ينشئ معالج صور SLANeXtImageProcessor.
قم بتهيئة مفردات المُفكِّك (decoder) لتعرّف بنية الجدول.
يبني قاموساً للأحرف يربط رموز بنية جداول 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
قاموس يحتوي على:
- البنية (
list[str]): بنية جدول HTML المتوقعة كقائمة من الرموز، مغلفة بوسوم<html>و<body>و<table>. - structure_score (
float): متوسط درجة الثقة عبر جميع الرموز المتوقعة.
معالجة مخرجات النموذج الخام بعد المعالجة لفك ترميز بنية الجدول المتوقعة إلى تسلسل رموز HTML.
يحوّل التوزيعات الاحتمالية المتوقعة من النموذج على مفردات الهيكل إلى تسلسل من رموز HTML تمثل هيكل الجدول. تُغلَّف الرموز المُفكَّكة بوسوم <html> و<body> و<table> لتشكيل هيكل جدول HTML كامل.