Transformers documentation

SLANeXt

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

تمت مساهمة هذا النموذج في Hugging Face Transformers في 2026-03-21.

SLANeXt

نظرة عامة

SLANeXt_wired و SLANeXt_wireless هما جزء من سلسلة من النماذج الخفيفة المخصصة لتعرف بنية الجداول، مع التركيز على التعرف الدقيق على بنية الجداول في المستندات والمناظر الطبيعية. لمزيد من التفاصيل حول سلسلة نماذج SLANeXt، يُرجى الرجوع إلى التوثيق الرسمي.

بنية النموذج

تُعد سلسلة SLANeXt جيلًا جديدًا من نماذج التعرف على بنية الجداول، طوّرها فريق PaddlePaddle Vision التابع لشركة Baidu بشكل مستقل. تركز SLANeXt على التعرف على بنية الجداول، وتدرّب أوزانًا مخصصة للجداول ذات الحدود والجداول بدون حدود بشكل منفصل. وقد تحسّنت قدرة التعرف على جميع أنواع الجداول بشكل ملحوظ، لا سيما الجداول ذات الحدود.

الاستخدام

الاستدلال على مدخل واحد

يُبيّن المثال أدناه كيفية اكتشاف النص باستخدام PP-OCRV5_Mobile_Det مع AutoModel.

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

< >

( 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

< >

( 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

< >

( config: SLANeXtConfig )

المعاملات

  • config (SLANeXtConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعداد إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.

نموذج SLANeXt Table Recognition لمهام التعرف على الجداول. يغلّف النموذج الأساسي SLANeXtPreTrainedModel ويعيد مخرجات متوافقة مع واجهة API للتعرف على الجداول في مكتبة Transformers.

يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

forward

< >

( 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

فئة transformers.SLANeXtBackbone

< >

( config: dict | None = None**kwargs )

SLANeXtSLAHead

فئة transformers.SLANeXtSLAHead

< >

( config: dict | None = None**kwargs )

SLANeXtImageProcessor

فئة transformers.SLANeXtImageProcessor

< >

( **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.

init_decoder

< >

( )

قم بتهيئة مفردات المُفكِّك (decoder) لتعرّف بنية الجدول.

يبني قاموساً للأحرف يربط رموز بنية جداول HTML (مثل <thead>، <tr>، <td>، وسوم colspan/ rowspan) بمؤشرات عددية. يتضمن القاموس رموز "sos" (بداية التسلسل) و"eos" (نهاية التسلسل) الخاصة. تُستخدم رموز <td></td> المدمجة بدلاً من رموز <td> المستقلة عند الاقتضاء.

post_process_table_recognition

< >

( 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 كامل.

Update on GitHub