# BEiT

## نظرة عامة

طُرِح نموذج BEiT في [BEiT: BERT Pre-Training of Image Transformers](https://huggingface.co/papers/2106.08254) من قِبل Hangbo Bao وLi Dong وFuru Wei. مستوحىً من BERT، يُعدّ BEiT أول ورقة بحثية تجعل التدريب المسبق ذاتي الإشراف لتحويلات الرؤية (ViTs) يتفوق على التدريب المسبق المُشرَف عليه. بدلاً من تدريب النموذج مسبقاً للتنبؤ بفئة الصورة (كما في [ورقة ViT الأصلية](https://huggingface.co/papers/2010.11929))، تُدرَّب نماذج BEiT مسبقاً للتنبؤ بالرموز البصرية من دفتر رموز نموذج [DALL-E](https://huggingface.co/papers/2102.12092) التابع لـ OpenAI عند تقديم رقعات مقنّعة.

المستخلص من الورقة البحثية هو كالتالي:

*نقدّم نموذج تمثيل بصري ذاتي الإشراف باسم BEiT، وهو اختصار لـ Bidirectional Encoder representation from Image Transformers. على غرار BERT الذي طُوِّر في مجال معالجة اللغة الطبيعية، نقترح مهمة نمذجة الصور المقنّعة لتدريب مسبق لنماذج Transformers البصرية. تحديداً، لكل صورة عرضان في تدريبنا المسبق، وهما: رقعات الصورة (مثل 16x16 بكسل)، والرموز البصرية (أي الرموز المنفصلة). أولاً، نقوم بتجزئة الصورة الأصلية إلى رموز بصرية. ثم نقنّع بعض رقعات الصورة عشوائياً ونمررها إلى المحوّل الأساسي Transformer. هدف التدريب المسبق هو استعادة الرموز البصرية الأصلية بناءً على رقعات الصورة التالفة. بعد التدريب المسبق لـ BEiT، نقوم بضبط دقيق مباشر لمعاملات النموذج على المهام اللاحقة بإضافة طبقات المهمة فوق المُشفِّر المُدرَّب مسبقاً. تُظهر النتائج التجريبية في تصنيف الصور والتجزئة الدلالية أن نموذجنا يحقق نتائج تنافسية مع طرق التدريب المسبق السابقة. على سبيل المثال، يحقق BEiT بحجم الأساس دقة top-1 بنسبة 83.2% على ImageNet-1K، متفوقاً بشكل كبير على تدريب DeiT من الصفر (81.8%) مع نفس الإعداد. علاوة على ذلك، يحقق BEiT بحجم كبير نسبة 86.3% باستخدام ImageNet-1K فقط، متفوقاً حتى على ViT-L مع التدريب المسبق المُشرَف عليه على ImageNet-22K (85.2%).*

تمت مساهمة هذا النموذج من قِبل [nielsr](https://huggingface.co/nielsr). يمكن العثور على الكود الأصلي [هنا](https://github.com/microsoft/unilm/tree/master/beit).

## نصائح للاستخدام

- نماذج BEiT هي Vision Transformers عادية، لكنها مُدرَّبة مسبقًا بطريقة ذاتية الإشراف بدلاً من الإشراف المباشر. تتفوق على كل من [النموذج الأصلي (ViT)](vit) و[Data-efficient Image Transformers (DeiT)](deit) عند ضبطها الدقيق على ImageNet-1K وCIFAR-100. يمكنك الاطلاع على دفاتر ملاحظات توضيحية تتعلق بالاستدلال وضبط الدقة على بيانات مخصصة [هنا](https://github.com/NielsRogge/Transformers-Tutorials/tree/master/VisionTransformer) (يكفي أن تستبدل [ViTImageProcessor](/docs/transformers/main/ar/model_doc/vit#transformers.ViTImageProcessor) بـ[BeitImageProcessor](/docs/transformers/main/ar/model_doc/beit#transformers.BeitImageProcessor) و[ViTForImageClassification](/docs/transformers/main/ar/model_doc/vit#transformers.ViTForImageClassification) بـ[BeitForImageClassification](/docs/transformers/main/ar/model_doc/beit#transformers.BeitForImageClassification)).
- يتوفر أيضًا دفتر ملاحظات تجريبي يُظهر كيفية دمج مُرمِّز الصور الخاص بـ DALL-E مع BEiT لأداء نمذجة الصور المقنّعة. يمكنك العثور عليه [هنا](https://github.com/NielsRogge/Transformers-Tutorials/tree/master/BEiT).
- بما أن نماذج BEiT تتوقع أن تكون جميع الصور بنفس الحجم (الدقة)، يمكن استخدام [BeitImageProcessor](/docs/transformers/main/ar/model_doc/beit#transformers.BeitImageProcessor) لتغيير حجم الصور (أو إعادة تحجيمها) وتطبيعها للنموذج.
- تُنعكس كلٌّ من دقة الباتش ودقة الصورة المستخدمتين أثناء التدريب المسبق أو الضبط الدقيق في اسم كل نقطة تفتيش. على سبيل المثال، يشير `microsoft/beit-base-patch16-224` إلى بنية بحجم أساسي مع دقة باتش 16x16 ودقة ضبط دقيق 224x224. جميع نقاط التفتيش متاحة على [hub](https://huggingface.co/models?search=microsoft/beit).
- نقاط التفتيش المتاحة هي إما (1) مُدرَّبة مسبقًا على [ImageNet-22k](http://www.image-net.org/) (مجموعة من 14 مليون صورة و22 ألف فئة) فقط، أو (2) مُعدَّلة بدقة أيضًا على ImageNet-22k، أو (3) مُعدَّلة بدقة أيضًا على [ImageNet-1k](http://www.image-net.org/challenges/LSVRC/2012/) (المعروفة أيضًا باسم ILSVRC 2012، مجموعة من 1.3 مليون صورة و1,000 فئة).
- يستخدم BEiT تضمينات الموضع النسبي، مستوحاةً من نموذج T5. أثناء التدريب المسبق، شارك المؤلفون انحياز الموضع النسبي بين عدة طبقات من الانتباه الذاتي. أما أثناء الضبط الدقيق، فيتم تهيئة انحياز الموضع النسبي لكل طبقة باستخدام انحياز الموضع النسبي المشترك الذي تم الحصول عليه بعد التدريب المسبق. يُرجى ملاحظة أنه إذا أراد المرء إجراء تدريب مسبق لنموذج من الصفر، فيجب عليه إما تعيين خاصية `use_relative_position_bias` أو خاصية `use_relative_position_bias` في [BeitConfig](/docs/transformers/main/ar/model_doc/beit#transformers.BeitConfig) إلى `True` من أجل إضافة تضمينات الموضع.

<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/model_doc/beit_architecture.jpg"
alt="drawing" width="600"/>

 التدريب المسبق لـBEiT. مأخوذ من الورقة البحثية الأصلية.

### استخدام الانتباه القياسي بنقطة منتج

يتضمن PyTorch مُشغّلًا أصليًا للانتباه بنقطة جداء مُقيّمة (SDPA) كجزء من `torch.nn.functional`. تشمل هذه الدالة عدة تطبيقات يمكن تطبيقها اعتمادًا على المدخلات والعتاد المستخدم. راجع [التوثيق الرسمي](https://pytorch.org/docs/stable/generated/torch.nn.functional.scaled_dot_product_attention.html) أو صفحة [GPU Inference](https://huggingface.co/docs/transformers/main/en/perf_infer_gpu_one#pytorch-scaled-dot-product-attention) لمزيد من المعلومات.

يُستخدم SDPA افتراضيًا لـ `torch>=2.1.1` عندما تكون هناك نسخة تنفيذية متاحة، لكن يمكنك أيضًا تعيين `attn_implementation="sdpa"` في `from_pretrained()` لطلب استخدام SDPA بشكل صريح.

```python
from transformers import BeitForImageClassification

model = BeitForImageClassification.from_pretrained("microsoft/beit-base-patch16-224", attn_implementation="sdpa", device_map="auto")
...
```

للحصول على أفضل تسارعات، ننصح بتحميل النموذج بدقة نصفية (مثل `torch.float16` أو `torch.bfloat16`).

في معيار محلي (NVIDIA GeForce RTX 2060-8GB، PyTorch 2.5.1، نظام التشغيل Ubuntu 20.04) باستخدام `float16` ونموذج `microsoft/beit-base-patch16-224`، لاحظنا التحسينات التالية أثناء التدريب والاستدلال:

#### التدريب

| num_training_steps | batch_size | image_size   | is_cuda | الوقت لكل دفعة (eager - ث) | الزمن لكل دفعة (sdpa - ث) | السرعة (%) | ذروة الذاكرة العاجلة (ميغابايت) | ذروة ذاكرة SDPA (ميغابايت) | توفير الذاكرة (%) |
|--------------------|------------|--------------|---------|----------------------------|---------------------------|-------------|----------------------|--------------------|----------------|
| 50                 | 2          | (1048, 640)  | صحيح    | 0.984                      | 0.746                     | 31.975      | 6738.915            | 4319.886          | 55.998         |

#### الاستدلال

|   حجم دفعة الصور |   مباشر (ثانية/تكرار) | CI الفوري، %   |   الذاكرة العاجلة (ميغابايت) |   SDPA (ثانية/تكرار) | CI لـ SDPA، %   |   ذاكرة SDPA (ميغابايت) |   تسريع SDPA | الذاكرة المحفوظة بواسطة SDPA (٪) |
|-------------------:|-----------------:|:--------------|--------------------:|----------------:|:-------------|-------------------:|---------------:|----------------------:|
|                  1 |            0.012 | ±0.3%         |         3.76657e+08 |           0.011 | ±0.5%        |        3.75739e+08 |          1.05  |                 0.244 |
|                  4 |            0.013 | ±0.1%         |         4.03147e+08 |           0.011 | ±0.2%        |        3.90554e+08 |          1.178 |                 3.225 |
|                 16 |            0.045 | ±0.1%         |         4.96697e+08 |           0.035 | ±0.1%        |        4.51232e+08 |          1.304 |                10.076 |
|                 32 |            0.088 | ±0.1%         |         6.24417e+08 |           0.066 | ±0.1%        |        5.33488e+08 |          1.325 |                17.044 |

## الموارد

قائمة بالموارد الرسمية من Hugging Face وموارد المجتمع (المشار إليها بـ 🌎) لمساعدتك على البدء باستخدام BEiT.

- يُؤمَّن دعم [BeitForImageClassification](/docs/transformers/main/ar/model_doc/beit#transformers.BeitForImageClassification) من خلال هذا [دفتر ملاحظات](https://colab.research.google.com/github/huggingface/notebooks/blob/main/examples/image_classification.ipynb).
- انظر أيضاً: [دليل مهمة تصنيف الصور](../tasks/image_classification)

**التجزئة الدلالية**

- [دليل مهمة التقسيم الدلالي](../tasks/semantic_segmentation)

إذا كنت مهتمًا بتقديم مورد ليُدرج هنا، فلا تتردد في فتح طلب سحب وسنقوم بمراجعته! يُفضَّل أن يُظهر المورد شيئًا جديدًا بدلاً من تكرار مورد موجود مسبقًا.

## المخرجات الخاصة بـ BEiT[[transformers.models.beit.modeling_beit.BeitModelOutputWithPooling]]

#### transformers.models.beit.modeling_beit.BeitModelOutputWithPooling[[transformers.models.beit.modeling_beit.BeitModelOutputWithPooling]]

```python
transformers.models.beit.modeling_beit.BeitModelOutputWithPooling(last_hidden_state: typing.Optional[torch.Tensor] = None, pooler_output: typing.Optional[torch.Tensor] = None, hidden_states: tuple[torch.Tensor, ...] | None = None, attentions: tuple[torch.Tensor, ...] | None = None)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/beit/modeling_beit.py#L54)

**المعاملات:**

last_hidden_state (`torch.Tensor` من الشكل `(batch_size, sequence_length, hidden_size)`) : تسلسل من حالات الإخفاء عند مخرج الطبقة الأخيرة من النموذج.

pooler_output (`torch.Tensor` بشكل `(batch_size, hidden_size)`) : متوسط حالات الإخفاء للطبقة الأخيرة لرموز الباتش (باستثناء رمز *[CLS]*) إذا كان *config.use_mean_pooling* مضبوطًا على True. وإذا كان مضبوطًا على False، فسيُعاد حالة الإخفاء النهائية لرمز *[CLS]*.

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 على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

فئة لمخرجات [BeitModel](/docs/transformers/main/ar/model_doc/beit#transformers.BeitModel).

## BeitConfig[[transformers.BeitConfig]]

#### transformers.BeitConfig[[transformers.BeitConfig]]

```python
transformers.BeitConfig(transformers_version: str | None = None, architectures: list[str] | None = None, output_hidden_states: bool | None = False, return_dict: bool | None = True, dtype: str | torch.dtype | None = None, chunk_size_feed_forward: int = 0, is_encoder_decoder: bool = False, id2label: dict[int, str] | dict[str, str] | None = None, label2id: dict[str, int] | dict[str, str] | None = None, problem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = None, vocab_size: int = 8192, hidden_size: int = 768, num_hidden_layers: int = 12, num_attention_heads: int = 12, intermediate_size: int = 3072, hidden_act: str = 'gelu', hidden_dropout_prob: float | int = 0.0, attention_probs_dropout_prob: float | int = 0.0, initializer_range: float = 0.02, layer_norm_eps: float = 1e-12, image_size: int | list[int] | tuple[int, int] = 224, patch_size: int | list[int] | tuple[int, int] = 16, num_channels: int = 3, use_mask_token: bool = False, use_absolute_position_embeddings: bool = False, use_relative_position_bias: bool = False, use_shared_relative_position_bias: bool = False, layer_scale_init_value: float = 0.1, drop_path_rate: float | int = 0.1, use_mean_pooling: bool = True, pool_scales: list[int] | tuple[int, ...] = (1, 2, 3, 6), use_auxiliary_head: bool = True, auxiliary_loss_weight: float = 0.4, auxiliary_channels: int = 256, auxiliary_num_convs: int = 1, auxiliary_concat_input: bool = False, semantic_loss_ignore_index: int = 255, _out_features: list[str] | None = None, _out_indices: list[int] | None = None, add_fpn: bool = False, reshape_hidden_states: bool = True)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/beit/configuration_beit.py#L25)

**المعاملات:**

vocab_size (`int`, *اختياري*, القيمة الافتراضية `8192`) : حجم مفردات النموذج. يحدد عدد الرموز المختلفة التي يمكن تمثيلها بواسطة `input_ids`.

hidden_size (`int`، *اختياري*، القيمة الافتراضية `768`) : بُعد التمثيلات المخفية.

num_hidden_layers (`int`، *اختياري*، القيمة الافتراضية `12`) : عدد الطبقات المخفية في مُفكِّك Transformer.

num_attention_heads (`int`، *اختياري*، القيمة الافتراضية `12`) : عدد رؤوس الانتباه في كل طبقة انتباه داخل مُفكِّك Transformer.

intermediate_size (`int`، *اختياري*، القيمة الافتراضية `3072`) : بُعد تمثيلات MLP.

hidden_act (`str`، *اختياري*، القيمة الافتراضية `gelu`) : دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال، `"gelu"`، `"relu"`، `"silu"`، وما إلى ذلك.

hidden_dropout_prob (`Union[float, int]`، *اختياري*، القيمة الافتراضية `0.0`) : احتمال الإسقاط (dropout) لجميع الطبقات المتصلة بالكامل في التضمينات (embeddings) والمشفّر (encoder) والمجمّع (pooler).

attention_probs_dropout_prob (`Union[float, int]`، *اختياري*، القيمة الافتراضية `0.0`) : نسبة الإسقاط (dropout) لاحتمالات الانتباه.

initializer_range (`float`، *اختياري*، القيمة الافتراضية `0.02`) : الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان.

layer_norm_eps (`float`، *اختياري*، القيمة الافتراضية `1e-12`) : قيمة الإيبسلون المستخدمة في طبقات تطبيع الطبقة.

image_size (`Union[int, list[int], tuple[int, int]]`، *اختياري*، القيمة الافتراضية `224`) : حجم (دقة) كل صورة.

patch_size (`Union[int, list[int], tuple[int, int]]`، *اختياري*، القيمة الافتراضية `16`) : حجم (دقة) كل رقعة.

num_channels (`int`، *اختياري*، القيمة الافتراضية `3`) : عدد قنوات الإدخال.

use_mask_token (`bool`, *اختياري*, القيمة الافتراضية هي `False`) : ما إذا كان سيتم استخدام رمز قناع لنمذجة الصور المقنّعة.

use_absolute_position_embeddings (`bool`, *اختياري*, القيمة الافتراضية هي `False`) : ما إذا كان سيتم استخدام تضمينات المواقع المطلقة.

use_relative_position_bias (`bool`، *اختياري*، الافتراضي هو `False`) : ما إذا كان سيتم استخدام تضمينات المواقع النسبية بنمط T5 في طبقات الانتباه الذاتي.

use_shared_relative_position_bias (`bool`، *اختياري*، الافتراضي هو `False`) : ما إذا كان سيتم استخدام نفس تضمينات المواقع النسبية عبر جميع طبقات الانتباه الذاتي في Transformer.

layer_scale_init_value (`float`, *اختياري*, القيمة الافتراضية `0.1`) : المقياس المستخدم في طبقات الانتباه الذاتي. 0.1 للنموذج الأساسي، و1e-6 للنموذج الكبير. اضبط 0 لتعطيل مقياس الطبقة.

drop_path_rate (`Union[float, int]`، *اختياري*، الافتراضي هو `0.1`) : معدل إسقاط المسار لدمج البقع.

use_mean_pooling (`bool`, *اختياري*, الافتراضي هو `True`) : ما إذا كان سيتم استخدام التجميع المتوسط للحالات المخفية النهائية للمقاطع بدلاً من استخدام الحالة المخفية النهائية لرمز CLS، قبل تطبيق رأس التصنيف.

pool_scales (`tuple[int]`, *اختياري*, الافتراضي هو `[1, 2, 3, 6]`) : مقاييس التجميع المستخدمة في وحدة هرم التجميع المطبقة على خريطة الميزات الأخيرة.

use_auxiliary_head (`bool`, *اختياري*, القيمة الافتراضية هي `True`) : ما إذا كان سيتم استخدام رأس مساعد أثناء التدريب.

auxiliary_loss_weight (`float`, *اختياري*, القيمة الافتراضية 0.4) : وزن خسارة الانتروبيا المتقاطعة للرأس المساعد.

auxiliary_channels (`int`, *اختياري*, القيمة الافتراضية 256) : عدد القنوات المستخدمة في الرأس المساعد.

auxiliary_num_convs (`int`, *اختياري*, القيمة الافتراضية 1) : عدد طبقات الالتفاف المستخدمة في الرأس المساعد.

auxiliary_concat_input (`bool`، *اختياري*، الافتراضي هو `False`) : ما إذا كان سيتم دمج مخرج الرأس المساعد مع المدخل قبل طبقة التصنيف.

semantic_loss_ignore_index (`int`، *اختياري*، الافتراضي هو `255`) : المؤشر الذي تتجاهله دالة الخسارة في نموذج التقسيم الدلالي.

add_fpn (`bool`, *اختياري*, الافتراضي `False`) : ما إذا كان سيتم إضافة FPN كجزء من الهيكل العظمي. ينطبق فقط على `BeitBackbone`.

reshape_hidden_states (`bool`، *اختياري*، الافتراضي `True`) : هل يُعاد تشكيل خرائط الميزات إلى متجهات رباعية الأبعاد من الشكل `(batch_size, hidden_size, height, width)` في حال استخدام النموذج كهيكل أساسي. إذا كان `False`، ستكون خرائط الميزات متجهات ثلاثية الأبعاد من الشكل `(batch_size, seq_len, hidden_size)`. ينطبق فقط على `BeitBackbone`.

هذه هي فئة الإعدادات المخزّنة لإعدادات BeitModel. تُستخدم لإنشاء نموذج Beit وفقًا للحجج المحددة، مع تحديد بنية النموذج. إنشاء إعدادات باستخدام القيم الافتراضية سيُنتج إعدادات مشابهة لتلك الخاصة بـ [microsoft/beit-base-patch16-224-pt22k](https://huggingface.co/microsoft/beit-base-patch16-224-pt22k)

ترث كائنات الإعداد من [PreTrainedConfig](/docs/transformers/main/ar/main_classes/configuration#transformers.PreTrainedConfig) ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ [PreTrainedConfig](/docs/transformers/main/ar/main_classes/configuration#transformers.PreTrainedConfig) لمزيد من المعلومات.

مثال:

```python
>>> from transformers import BeitConfig, BeitModel

>>> # Initializing a BEiT beit-base-patch16-224-pt22k style configuration
>>> configuration = BeitConfig()

>>> # Initializing a model (with random weights) from the beit-base-patch16-224-pt22k style configuration
>>> model = BeitModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config
```

## BeitImageProcessor[[transformers.BeitImageProcessor]]

#### transformers.BeitImageProcessor[[transformers.BeitImageProcessor]]

```python
transformers.BeitImageProcessor(**kwargs: *<class 'transformers.models.beit.image_processing_beit.BeitImageProcessorKwargs'>)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/beit/image_processing_beit.py#L50)

**المعاملات:**

do_convert_rgb (`bool`، *kwargs*، *اختياري*) : ما إذا كان يجب تحويل الصورة إلى RGB.

do_resize (`bool`، *kwargs*، *اختياري*، الافتراضي هو `True`) : ما إذا كان سيتم تغيير حجم الصورة.

size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`، *kwargs*، القيمة الافتراضية هي `{'height' : 224, 'width': 224}`): يصف الأبعاد القصوى للمدخلات إلى النموذج.

default_to_square (`bool`، *kwargs*، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان يجب افتراض صورة مربعة عند تغيير الحجم، إذا كان الحجم من نوع عدد صحيح.

crop_size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`، *kwargs*، القيمة الافتراضية `{'height' : 224, 'width': 224}`): حجم الصورة الناتجة بعد تطبيق `center_crop`.

resample (`Annotated[Union[int, PILImageResampling, NoneType], None]`، *kwargs*، القيمة الافتراضية `3`) : مرشح إعادة العينة المستخدم عند تغيير حجم الصورة. يمكن أن يكون أحد قيم enum `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.5, 0.5, 0.5]`) : متوسط الصورة المستخدم للتطبيع. لا يكون له تأثير إلا إذا تم تعيين `do_normalize` إلى `True`.

image_std (`Union[float, list[float], tuple[float, ...]]`، *kwargs*، *اختياري*، القيمة الافتراضية هي `[0.5, 0.5, 0.5]`) : الانحراف المعياري للصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيين `do_normalize` إلى `True`.

do_pad (`bool`، *kwargs*، *اختياري*) : ما إذا كان يجب إضافة حشوة إلى الصورة. يتم تنفيذ الحشوة إما إلى أكبر حجم في الدفعة أو إلى حجم مربع ثابت لكل صورة. تعتمد استراتيجية الحشوة الدقيقة على النموذج.

pad_size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*) : الحجم على شكل `{"height": int, "width" int}` الذي يجب توسيد الصور إليه. يجب أن يكون أكبر من أي حجم صورة مُقدَّم للمعالجة المسبقة. إذا لم يُقدَّم `pad_size`، فسيتم توسيد الصور إلى أكبر ارتفاع وعرض في الدفعة. يُطبَّق فقط عندما يكون `do_pad=True.`

do_center_crop (`bool`، *kwargs*، *اختياري*، القيمة الافتراضية `False`) : ما إذا كان سيتم قص الصورة من المنتصف.

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`: صورة بتنسيق (height, width, num_channels). - `"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*، *اختياري*) : ما إذا كان سيتم تعطيل تجميع الصور حسب الحجم لمعالجتها بشكل فردي بدلاً من دفعات. إذا كانت القيمة None، فسيتم تعيينها إلى True إذا كانت الصور على وحدة المعالجة المركزية (CPU)، وإلا فستكون False. تستند هذه الخيارات إلى ملاحظات تجريبية، كما هو موضح هنا: https://github.com/huggingface/transformers/pull/38157

image_seq_length (`int`، *kwargs*، *اختياري*) : عدد رموز الصور التي سيتم استخدامها لكل صورة في المدخلات. أُضيفت لضمان التوافق مع الإصدارات السابقة، لكن ينبغي ضبطها كخاصية للمعالج في النماذج المستقبلية.

do_reduce_labels (`bool`, *kwargs*, *اختياري*، القيمة الافتراضية `self.do_reduce_labels`) : ما إذا كان سيتم تقليل جميع قيم التسميات في خرائط التقسيم بمقدار 1. يُستخدم عادةً في مجموعات البيانات التي يُستخدم فيها 0 للخلفية، والخلفية نفسها غير مشمولة في جميع فئات مجموعة البيانات (مثل ADE20k). سيتم استبدال تسمية الخلفية بـ 255.

ينشئ معالج صور من نوع BeitImageProcessor.

#### preprocess[[transformers.BeitImageProcessor.preprocess]]

```python
preprocess(images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']], segmentation_maps: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor'], NoneType] = None, **kwargs: *<class 'transformers.models.beit.image_processing_beit.BeitImageProcessorKwargs'>)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/beit/image_processing_beit.py#L70)

**المعاملات:**

images (`Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]`) : الصورة المراد معالجتها مسبقًا. يتوقع صورة واحدة أو دفعة من الصور بقيم بكسل تتراوح بين 0 و255. إذا كنت تمرر صورًا بقيم بكسل بين 0 و1، فاضبط `do_rescale=False`.

segmentation_maps (`ImageInput`، *اختياري*) : خرائط التقسيم المراد معالجتها مسبقًا.

do_convert_rgb (`bool`، *kwargs*، *اختياري*) : ما إذا كان يجب تحويل الصورة إلى RGB.

do_resize (`bool`، *kwargs*، *اختياري*) : ما إذا كان يجب تغيير حجم الصورة.

size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*) : يصف الأبعاد القصوى للمدخلات إلى النموذج.

default_to_square (`bool`، *kwargs*، *اختياري*) : ما إذا كان يجب افتراض صورة مربعة عند تغيير الحجم، إذا كان الحجم عددًا صحيحًا.

crop_size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`، *kwargs*) : حجم الصورة الناتجة بعد تطبيق `center_crop`.

resample (`Annotated[Union[int, PILImageResampling, NoneType], None]`, *kwargs*) : مرشح إعادة العينة المستخدم عند تغيير حجم الصورة. يمكن أن يكون أحد قيم enum `PILImageResampling`. لا يؤثر إلا إذا كان `do_resize` مضبوطاً على `True`.

do_rescale (`bool`، *kwargs*، *اختياري*) : ما إذا كان يجب إعادة تحجيم الصورة.

rescale_factor (`float`، *kwargs*، *اختياري*) : معامل إعادة التحجيم لإعادة تحجيم الصورة إذا كان `do_rescale` مضبوطًا على `True`.

do_normalize (`bool`، *kwargs*، *اختياري*) : ما إذا كان يجب تطبيع الصورة.

image_mean (`Union[float, list[float], tuple[float, ...]]`، *kwargs*، *اختياري*) : متوسط الصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيين `do_normalize` إلى `True`.

image_std (`Union[float, list[float], tuple[float, ...]]`، *kwargs*، *اختياري*) : الانحراف المعياري للصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيين `do_normalize` إلى `True`.

do_pad (`bool`، *kwargs*، *اختياري*) : ما إذا كان يجب إضافة حشوة إلى الصورة. يتم تنفيذ الحشوة إما إلى أكبر حجم في الدفعة أو إلى حجم مربع ثابت لكل صورة. تعتمد استراتيجية الحشوة الدقيقة على النموذج.

pad_size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*) : الحجم على شكل `{"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`: صورة بتنسيق (height, width, num_channels). - `"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*، *اختياري*) : ما إذا كان سيتم تعطيل تجميع الصور حسب الحجم لمعالجتها بشكل فردي بدلاً من دفعات. إذا كانت القيمة None، فسيتم تعيينها إلى True إذا كانت الصور على وحدة المعالجة المركزية (CPU)، وإلا فستكون False. تستند هذه الخيارات إلى ملاحظات تجريبية، كما هو موضح هنا: https://github.com/huggingface/transformers/pull/38157

image_seq_length (`int`، *kwargs*، *اختياري*) : عدد رموز الصور التي سيتم استخدامها لكل صورة في المدخلات. أُضيفت لضمان التوافق مع الإصدارات السابقة، لكن ينبغي ضبطها كخاصية للمعالج في النماذج المستقبلية.

do_reduce_labels (`bool`، *kwargs*، *اختياري*، القيمة الافتراضية `self.do_reduce_labels`) : ما إذا كان سيتم تقليل جميع قيم التسميات في خرائط التقسيم بمقدار 1. يُستخدم عادةً لمجموعات البيانات التي يُستخدم فيها 0 للخلفية، والخلفية نفسها غير مشمولة في جميع فئات مجموعة البيانات (مثل ADE20k). سيتم استبدال تسمية الخلفية بـ 255.

**يعيد:** `~image_processing_base.BatchFeature`

- **data** (`dict`) -- قاموس من القوائم/المصفوفات/الموترات التي يعيدها أسلوب __call__ ('pixel_values'، وما إلى ذلك).
- **tensor_type** (`Union[None, str, TensorType]`، *اختياري*) -- يمكنك تحديد tensor_type هنا لتحويل قوائم الأعداد الصحيحة إلى تينسورات PyTorch/Numpy عند التهيئة.

#### post_process_semantic_segmentation[[transformers.BeitImageProcessor.post_process_semantic_segmentation]]

```python
post_process_semantic_segmentation(outputs, target_sizes: list[tuple] | None = None, return_segmentation_scores: bool = False)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/beit/image_processing_beit.py#L183)

**المعاملات:**

outputs ([BeitForSemanticSegmentation](/docs/transformers/main/ar/model_doc/beit#transformers.BeitForSemanticSegmentation)) : المخرجات الخام للنموذج.

target_sizes (`list[Tuple]` بطول `batch_size`، *اختياري*) : قائمة من السلاسل المقابلة للحجم النهائي المطلوب (الارتفاع، العرض) لكل تنبؤ. إذا لم يُضبط، فلن يتم تغيير حجم التنبؤات.

return_segmentation_scores (`bool`، *اختياري*، القيمة الافتراضية `False`) : هل تُعاد تقييمات التقسيم إلى جانب خريطة التقسيم. عند تعيين `True`، يكون كل عنصر في القائمة المُعادة من نوع `SemanticSegmentationPostProcessorOutput` ويحتوي على الحقل `segmentation` (معرّفات الفئات، الشكل `(height, width)`) والحقل `segmentation_scores` (الشكل `(num_classes, height, width)`).

**يعيد:** `list[torch.Tensor]` أو `list[SemanticSegmentationPostProcessorOutput]`

عندما يكون `return_segmentation_scores=False` (الافتراضي)، تُعاد قائمة بطول `batch_size` حيث يكون كل عنصر خريطة تجزئة بأبعاد `(height, width)` تحتوي على معرّفات الفئات. وعندما يكون `return_segmentation_scores=True`، تُعاد قائمة من كائنات `SemanticSegmentationPostProcessorOutput` تحتوي على الحقل `segmentation` (معرّفات الفئات، الأبعاد `(height, width)`) والحقل `segmentation_scores` (الأبعاد `(num_classes, height, width)`). في الحالتين، `(height, width)` يتوافق مع الحجم المستهدف (إذا تم تحديد `target_sizes`).

يحوّل مخرجات [BeitForSemanticSegmentation](/docs/transformers/main/ar/model_doc/beit#transformers.BeitForSemanticSegmentation) إلى خرائط تجزئة دلالية.

## BeitImageProcessorPil[[transformers.BeitImageProcessorPil]]

#### transformers.BeitImageProcessorPil[[transformers.BeitImageProcessorPil]]

```python
transformers.BeitImageProcessorPil(**kwargs: *<class 'transformers.models.beit.image_processing_pil_beit.BeitImageProcessorKwargs'>)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/beit/image_processing_pil_beit.py#L53)

**المعاملات:**

do_convert_rgb (`bool`، *kwargs*، *اختياري*) : ما إذا كان يجب تحويل الصورة إلى RGB.

do_resize (`bool`، *kwargs*، *اختياري*، الافتراضي هو `True`) : ما إذا كان سيتم تغيير حجم الصورة.

size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`، *kwargs*، القيمة الافتراضية هي `{'height' : 224, 'width': 224}`): يصف الأبعاد القصوى للمدخلات إلى النموذج.

default_to_square (`bool`، *kwargs*، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان يجب افتراض صورة مربعة عند تغيير الحجم، إذا كان الحجم من نوع عدد صحيح.

crop_size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`، *kwargs*، القيمة الافتراضية `{'height' : 224, 'width': 224}`): حجم الصورة الناتجة بعد تطبيق `center_crop`.

resample (`Annotated[Union[int, PILImageResampling, NoneType], None]`، *kwargs*، القيمة الافتراضية `3`) : مرشح إعادة العينة المستخدم عند تغيير حجم الصورة. يمكن أن يكون أحد قيم enum `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.5, 0.5, 0.5]`) : متوسط الصورة المستخدم للتطبيع. لا يكون له تأثير إلا إذا تم تعيين `do_normalize` إلى `True`.

image_std (`Union[float, list[float], tuple[float, ...]]`، *kwargs*، *اختياري*، القيمة الافتراضية هي `[0.5, 0.5, 0.5]`) : الانحراف المعياري للصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيين `do_normalize` إلى `True`.

do_pad (`bool`، *kwargs*، *اختياري*) : ما إذا كان يجب إضافة حشوة إلى الصورة. يتم تنفيذ الحشوة إما إلى أكبر حجم في الدفعة أو إلى حجم مربع ثابت لكل صورة. تعتمد استراتيجية الحشوة الدقيقة على النموذج.

pad_size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*) : الحجم على شكل `{"height": int, "width" int}` الذي يجب توسيد الصور إليه. يجب أن يكون أكبر من أي حجم صورة مُقدَّم للمعالجة المسبقة. إذا لم يُقدَّم `pad_size`، فسيتم توسيد الصور إلى أكبر ارتفاع وعرض في الدفعة. يُطبَّق فقط عندما يكون `do_pad=True.`

do_center_crop (`bool`، *kwargs*، *اختياري*، القيمة الافتراضية `False`) : ما إذا كان سيتم قص الصورة من المنتصف.

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`: صورة بتنسيق (height, width, num_channels). - `"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*، *اختياري*) : ما إذا كان سيتم تعطيل تجميع الصور حسب الحجم لمعالجتها بشكل فردي بدلاً من دفعات. إذا كانت القيمة None، فسيتم تعيينها إلى True إذا كانت الصور على وحدة المعالجة المركزية (CPU)، وإلا فستكون False. تستند هذه الخيارات إلى ملاحظات تجريبية، كما هو موضح هنا: https://github.com/huggingface/transformers/pull/38157

image_seq_length (`int`، *kwargs*، *اختياري*) : عدد رموز الصور التي سيتم استخدامها لكل صورة في المدخلات. أُضيفت لضمان التوافق مع الإصدارات السابقة، لكن ينبغي ضبطها كخاصية للمعالج في النماذج المستقبلية.

do_reduce_labels (`bool`، *kwargs*، *اختياري*، القيمة الافتراضية `self.do_reduce_labels`) : ما إذا كان سيتم تقليل جميع قيم التسميات في خرائط التقسيم بمقدار 1. يُستخدم عادةً لمجموعات البيانات التي يُستخدم فيها 0 للخلفية، والخلفية نفسها غير مشمولة في جميع فئات مجموعة البيانات (مثل ADE20k). سيتم استبدال تسمية الخلفية بـ 255.

ينشئ معالج صور من نوع BeitImageProcessor.

#### preprocess[[transformers.BeitImageProcessorPil.preprocess]]

```python
preprocess(images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']], segmentation_maps: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor'], NoneType] = None, **kwargs: *<class 'transformers.models.beit.image_processing_pil_beit.BeitImageProcessorKwargs'>)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/beit/image_processing_pil_beit.py#L73)

**المعاملات:**

images (`Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]`) : الصورة المراد معالجتها مسبقًا. يتوقع صورة واحدة أو دفعة من الصور بقيم بكسل تتراوح بين 0 و255. إذا كنت تمرر صورًا بقيم بكسل بين 0 و1، فاضبط `do_rescale=False`.

segmentation_maps (`ImageInput`، *اختياري*) : خرائط التقسيم المراد معالجتها مسبقًا.

do_convert_rgb (`bool`، *kwargs*، *اختياري*) : ما إذا كان يجب تحويل الصورة إلى RGB.

do_resize (`bool`، *kwargs*، *اختياري*) : ما إذا كان يجب تغيير حجم الصورة.

size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*) : يصف الأبعاد القصوى للمدخلات إلى النموذج.

default_to_square (`bool`، *kwargs*، *اختياري*) : ما إذا كان يجب افتراض صورة مربعة عند تغيير الحجم، إذا كان الحجم عددًا صحيحًا.

crop_size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`، *kwargs*) : حجم الصورة الناتجة بعد تطبيق `center_crop`.

resample (`Annotated[Union[int, PILImageResampling, NoneType], None]`, *kwargs*) : مرشح إعادة العينة المستخدم عند تغيير حجم الصورة. يمكن أن يكون أحد قيم enum `PILImageResampling`. لا يؤثر إلا إذا كان `do_resize` مضبوطاً على `True`.

do_rescale (`bool`، *kwargs*، *اختياري*) : ما إذا كان يجب إعادة تحجيم الصورة.

rescale_factor (`float`، *kwargs*، *اختياري*) : معامل إعادة التحجيم لإعادة تحجيم الصورة إذا كان `do_rescale` مضبوطًا على `True`.

do_normalize (`bool`، *kwargs*، *اختياري*) : ما إذا كان يجب تطبيع الصورة.

image_mean (`Union[float, list[float], tuple[float, ...]]`، *kwargs*، *اختياري*) : متوسط الصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيين `do_normalize` إلى `True`.

image_std (`Union[float, list[float], tuple[float, ...]]`، *kwargs*، *اختياري*) : الانحراف المعياري للصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيين `do_normalize` إلى `True`.

do_pad (`bool`، *kwargs*، *اختياري*) : ما إذا كان يجب إضافة حشوة إلى الصورة. يتم تنفيذ الحشوة إما إلى أكبر حجم في الدفعة أو إلى حجم مربع ثابت لكل صورة. تعتمد استراتيجية الحشوة الدقيقة على النموذج.

pad_size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*) : الحجم على شكل `{"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`: صورة بتنسيق (height, width, num_channels). - `"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*، *اختياري*) : ما إذا كان سيتم تعطيل تجميع الصور حسب الحجم لمعالجتها بشكل فردي بدلاً من دفعات. إذا كانت القيمة None، فسيتم تعيينها إلى True إذا كانت الصور على وحدة المعالجة المركزية (CPU)، وإلا فستكون False. تستند هذه الخيارات إلى ملاحظات تجريبية، كما هو موضح هنا: https://github.com/huggingface/transformers/pull/38157

image_seq_length (`int`، *kwargs*، *اختياري*) : عدد رموز الصور التي سيتم استخدامها لكل صورة في المدخلات. أُضيفت لضمان التوافق مع الإصدارات السابقة، لكن ينبغي ضبطها كخاصية للمعالج في النماذج المستقبلية.

do_reduce_labels (`bool`، *kwargs*، *اختياري*، القيمة الافتراضية `self.do_reduce_labels`) : ما إذا كان سيتم تقليل جميع قيم التسميات في خرائط التقسيم بمقدار 1. يُستخدم عادةً لمجموعات البيانات التي يُستخدم فيها 0 للخلفية، والخلفية نفسها غير مشمولة في جميع فئات مجموعة البيانات (مثل ADE20k). سيتم استبدال تسمية الخلفية بـ 255.

**يعيد:** `~image_processing_base.BatchFeature`

- **data** (`dict`) -- قاموس من القوائم/المصفوفات/الموترات التي يعيدها أسلوب __call__ ('pixel_values'، وما إلى ذلك).
- **tensor_type** (`Union[None, str, TensorType]`، *اختياري*) -- يمكنك تحديد tensor_type هنا لتحويل قوائم الأعداد الصحيحة إلى تينسورات PyTorch/Numpy عند التهيئة.

#### post_process_semantic_segmentation[[transformers.BeitImageProcessorPil.post_process_semantic_segmentation]]

```python
post_process_semantic_segmentation(outputs, target_sizes: list[tuple] | None = None, return_segmentation_scores: bool = False)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/beit/image_processing_pil_beit.py#L169)

**المعاملات:**

outputs ([BeitForSemanticSegmentation](/docs/transformers/main/ar/model_doc/beit#transformers.BeitForSemanticSegmentation)) : المخرجات الخام للنموذج.

target_sizes (`list[Tuple]` بطول `batch_size`، *اختياري*) : قائمة من السلاسل المقابلة للحجم النهائي المطلوب (الارتفاع، العرض) لكل تنبؤ. إذا لم يُضبط، فلن يتم تغيير حجم التنبؤات.

return_segmentation_scores (`bool`, *اختياري*, القيمة الافتراضية `False`) : هل تُعاد تقييمات التقسيم إلى جانب خريطة التقسيم. عند تعيين `True`، يكون كل عنصر في القائمة المُعادة من نوع `SemanticSegmentationPostProcessorOutput` مع الحقل `segmentation` (معرّفات الفئات، الشكل `(height, width)`) والحقل `segmentation_scores` (الشكل `(num_classes, height, width)`).

**يعيد:** `list[torch.Tensor]` أو `list[SemanticSegmentationPostProcessorOutput]`

عندما يكون `return_segmentation_scores=False` (الافتراضي)، تُعاد قائمة بطول `batch_size` حيث يكون كل عنصر منها خريطة تجزئة بأبعاد `(height, width)` تحتوي على معرّفات الفئات. وعندما يكون `return_segmentation_scores=True`، تُعاد قائمة من `SemanticSegmentationPostProcessorOutput` بالحقل `segmentation` (معرّفات الفئات، الأبعاد `(height, width)`) والحقل `segmentation_scores` (الأبعاد `(num_classes, height, width)`). في الحالتين، `(height, width)` يتوافق مع الحجم المستهدف (إذا تم تحديد `target_sizes`).

يحوّل مخرجات [BeitForSemanticSegmentation](/docs/transformers/main/ar/model_doc/beit#transformers.BeitForSemanticSegmentation) إلى خرائط تجزئة دلالية.

## BeitModel[[transformers.BeitModel]]

#### transformers.BeitModel[[transformers.BeitModel]]

```python
transformers.BeitModel(config: BeitConfig, add_pooling_layer: bool = True)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/beit/modeling_beit.py#L486)

**المعاملات:**

config ([BeitConfig](/docs/transformers/main/ar/model_doc/beit#transformers.BeitConfig)) : فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. إن التهيئة باستخدام ملف إعدادات لا تُحمّل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة [from_pretrained()](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel.from_pretrained) لتحميل أوزان النموذج.

add_pooling_layer (`bool`، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان يجب إضافة طبقة تجميع

نموذج Beit العاري الذي يُخرج حالات مخفية خام دون أي رأس محدد في الأعلى.

يرث هذا النموذج من [PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel). راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التنزيل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضاً فئة فرعية من [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

#### forward[[transformers.BeitModel.forward]]

```python
forward(pixel_values: Tensor, bool_masked_pos: typing.Optional[torch.BoolTensor] = None, interpolate_pos_encoding: bool = False, attention_mask: typing.Optional[torch.Tensor] = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/beit/modeling_beit.py#L512)

**المعاملات:**

pixel_values (`torch.Tensor` من الشكل `(batch_size, num_channels, image_size, image_size)`) : المصفوفات المقابلة لصور الإدخال. يمكن الحصول على قيم البكسل باستخدام [BeitImageProcessor](/docs/transformers/main/ar/model_doc/beit#transformers.BeitImageProcessor). راجع [BeitImageProcessor.__call__()](/docs/transformers/main/ar/model_doc/molmo2#transformers.Molmo2ImageProcessor.__call__) للتفاصيل (`processor_class` يستخدم [BeitImageProcessor](/docs/transformers/main/ar/model_doc/beit#transformers.BeitImageProcessor) لمعالجة الصور).

bool_masked_pos (`torch.BoolTensor` من الشكل `(batch_size, num_patches)`، *اختياري*) : مواضع القناع المنطقي. تُشير إلى البقع المقنّعة (1) والتي ليست مقنّعة (0).

interpolate_pos_encoding (`bool`، *اختياري*، القيمة الافتراضية `False`) : ما إذا كان سيتم استيفاء ترميزات المواقع المُدرَّبة مسبقًا.

attention_mask (`torch.Tensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. قيم القناع المختارة من `[0, 1]`: - 1 للرموز التي **ليست مقنّعة**، - 0 للرموز التي **مقنّعة**.  [ما هي أقنعة الانتباه؟](../glossary#attention-mask)

**يعيد:** [BeitModelOutputWithPooling](/docs/transformers/main/ar/model_doc/beit#transformers.models.beit.modeling_beit.BeitModelOutputWithPooling) أو `tuple(torch.Tensor)`

نوع [BeitModelOutputWithPooling](/docs/transformers/main/ar/model_doc/beit#transformers.models.beit.modeling_beit.BeitModelOutputWithPooling) أو مجموعة مرتبة من `torch.Tensor` (عند تمرير `return_dict=False` أو عندما يكون `config.return_dict=False`)، وتتضمن عناصر مختلفة اعتمادًا على الإعداد ([BeitConfig](/docs/transformers/main/ar/model_doc/beit#transformers.BeitConfig)) والمدخلات.

تتجاوز طريقة [BeitModel](/docs/transformers/main/ar/model_doc/beit#transformers.BeitModel) الخاصة بالتقديم (forward) الطريقة الخاصة `__call__`.

على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن `Module` بدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.

- **last_hidden_state** (`torch.Tensor` من الشكل `(batch_size, sequence_length, hidden_size)`) -- تسلسل من حالات الإخفاء (hidden-states) عند مخرج الطبقة الأخيرة من النموذج.
- **pooler_output** (من نوع `torch.Tensor` بأبعاد `(batch_size, hidden_size)`) -- متوسط حالات الإخفاء للطبقة الأخيرة لرموز الباتش (باستثناء رمز *[CLS]*) إذا كان *config.use_mean_pooling* مضبوطًا على True. إذا كان مضبوطًا على False، فسيتم إرجاع حالة الإخفاء النهائية لرمز *[CLS]*.
- **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 على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

مثال:

```python
```

## BeitForMaskedImageModeling[[transformers.BeitForMaskedImageModeling]]

#### transformers.BeitForMaskedImageModeling[[transformers.BeitForMaskedImageModeling]]

```python
transformers.BeitForMaskedImageModeling(config: BeitConfig)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/beit/modeling_beit.py#L583)

**المعاملات:**

config ([BeitConfig](/docs/transformers/main/ar/model_doc/beit#transformers.BeitConfig)) : فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. إن التهيئة باستخدام ملف إعدادات لا تُحمّل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة [from_pretrained()](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel.from_pretrained) لتحميل أوزان النموذج.

نموذج تحويلي (Transformer) لـ BEiT مزوّد برأس نمذجة 'لغوي' في الأعلى. يعتمد BEiT على نمذجة الصور المقنّعة عبر التنبؤ بالرموز البصرية للمشفّر الذاتي التبايني الكمي المتجهي (VQ-VAE)، بينما تتنبأ نماذج الرؤية الأخرى مثل ViT وDeiT بقيم بكسل RGB. ونتيجةً لذلك، فإن هذه الفئة غير متوافقة مع [AutoModelForMaskedImageModeling](/docs/transformers/main/ar/model_doc/auto#transformers.AutoModelForMaskedImageModeling)، لذا ستحتاج إلى استخدام [BeitForMaskedImageModeling](/docs/transformers/main/ar/model_doc/beit#transformers.BeitForMaskedImageModeling) مباشرةً إذا أردت إجراء نمذجة الصور المقنّعة باستخدام BEiT.

يرث هذا النموذج من [PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel). راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التنزيل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضاً فئة فرعية من [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

#### forward[[transformers.BeitForMaskedImageModeling.forward]]

```python
forward(pixel_values: typing.Optional[torch.Tensor] = None, bool_masked_pos: typing.Optional[torch.BoolTensor] = None, labels: typing.Optional[torch.Tensor] = None, interpolate_pos_encoding: bool = False, attention_mask: typing.Optional[torch.Tensor] = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/beit/modeling_beit.py#L600)

**المعاملات:**

pixel_values (`torch.Tensor` بشكل `(batch_size, num_channels, image_size, image_size)`، *اختياري*) : المصفوفات المقابلة لصور الإدخال. يمكن الحصول على قيم البكسل باستخدام [BeitImageProcessor](/docs/transformers/main/ar/model_doc/beit#transformers.BeitImageProcessor). راجع [BeitImageProcessor.__call__()](/docs/transformers/main/ar/model_doc/molmo2#transformers.Molmo2ImageProcessor.__call__) للتفاصيل (`processor_class` يستخدم [BeitImageProcessor](/docs/transformers/main/ar/model_doc/beit#transformers.BeitImageProcessor) لمعالجة الصور).

bool_masked_pos (`torch.BoolTensor` بأبعاد `(batch_size, num_patches)`) : مواضع القناع المنطقي. تُحدّد البقع المقنّعة (1) والتي ليست مقنّعة (0).

labels (من نوع `torch.LongTensor` بأبعاد `(batch_size,)`، *اختياري*) : تسميات لحساب خسارة تصنيف/الانحدار للصور. يجب أن تكون الفهارس ضمن `[0, ..., config.num_labels - 1]`. إذا كان `config.num_labels == 1` يتم حساب خسارة الانحدار (خسارة متوسط المربع)، وإذا كان `config.num_labels > 1` يتم حساب خسارة التصنيف (الإنتروبيا المتقاطعة).

interpolate_pos_encoding (`bool`، *اختياري*، القيمة الافتراضية `False`) : ما إذا كان سيتم استيفاء ترميزات المواقع المُدرَّبة مسبقًا.

attention_mask (`torch.Tensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. قيم القناع المختارة من `[0, 1]`: - 1 للرموز التي **ليست مقنّعة**، - 0 للرموز التي **مقنّعة**.  [ما هي أقنعة الانتباه؟](../glossary#attention-mask)

**يعيد:** [MaskedLMOutput](/docs/transformers/main/ar/main_classes/output#transformers.modeling_outputs.MaskedLMOutput) أو `tuple(torch.Tensor)`

كائن [MaskedLMOutput](/docs/transformers/main/ar/main_classes/output#transformers.modeling_outputs.MaskedLMOutput) أو مجموعة مرتبة من `torch.Tensor` (في حال تمرير `return_dict=False` أو عند `config.return_dict=False`) تتضمّن عناصر مختلفة اعتمادًا على الإعداد ([BeitConfig](/docs/transformers/main/ar/model_doc/beit#transformers.BeitConfig)) والمدخلات.

تتجاوز طريقة [BeitForMaskedImageModeling](/docs/transformers/main/ar/model_doc/beit#transformers.BeitForMaskedImageModeling) الخاصة بالتقديم (forward) الطريقة الخاصة `__call__`.

على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن `Module` بدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.

- **loss** (`torch.Tensor` من الشكل `(1,)`، *اختياري*، يُعاد عند توفير `labels`) -- خسارة نمذجة اللغة المقنّعة (MLM).
- **logits** (`torch.Tensor` من الشكل `(batch_size, sequence_length, config.vocab_size)`) -- درجات التنبؤ لرأس نمذجة اللغة (درجات لكل رمز في المفردات قبل SoftMax).
- **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 على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

أمثلة:

```python
>>> from transformers import AutoImageProcessor, BeitForMaskedImageModeling
>>> import torch
>>> from PIL import Image
>>> import requests

>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> image = Image.open(requests.get(url, stream=True).raw)

>>> image_processor = AutoImageProcessor.from_pretrained("microsoft/beit-base-patch16-224-pt22k")
>>> model = BeitForMaskedImageModeling.from_pretrained("microsoft/beit-base-patch16-224-pt22k")

>>> num_patches = (model.config.image_size // model.config.patch_size) ** 2
>>> pixel_values = image_processor(images=image, return_tensors="pt").pixel_values
>>> # create random boolean mask of shape (batch_size, num_patches)
>>> bool_masked_pos = torch.randint(low=0, high=2, size=(1, num_patches)).bool()

>>> outputs = model(pixel_values, bool_masked_pos=bool_masked_pos)
>>> loss, logits = outputs.loss, outputs.logits
>>> list(logits.shape)
[1, 196, 8192]
```

## BeitForImageClassification[[transformers.BeitForImageClassification]]

#### transformers.BeitForImageClassification[[transformers.BeitForImageClassification]]

```python
transformers.BeitForImageClassification(config: BeitConfig)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/beit/modeling_beit.py#L675)

**المعاملات:**

config ([BeitConfig](/docs/transformers/main/ar/model_doc/beit#transformers.BeitConfig)) : فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. إن التهيئة باستخدام ملف إعدادات لا تُحمّل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة [from_pretrained()](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel.from_pretrained) لتحميل أوزان النموذج.

نموذج Beit transformer برأس تصنيف صور في الأعلى (طبقة خطية فوق متوسط الحالات المخفية النهائية لرموز الباتش) مثل ImageNet.

يرث هذا النموذج من [PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel). راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التنزيل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضاً فئة فرعية من [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

#### forward[[transformers.BeitForImageClassification.forward]]

```python
forward(pixel_values: typing.Optional[torch.Tensor] = None, labels: typing.Optional[torch.Tensor] = None, interpolate_pos_encoding: bool = False, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/beit/modeling_beit.py#L688)

**المعاملات:**

pixel_values (`torch.Tensor` بشكل `(batch_size, num_channels, image_size, image_size)`، *اختياري*) : المصفوفات المقابلة لصور الإدخال. يمكن الحصول على قيم البكسل باستخدام [BeitImageProcessor](/docs/transformers/main/ar/model_doc/beit#transformers.BeitImageProcessor). راجع [BeitImageProcessor.__call__()](/docs/transformers/main/ar/model_doc/molmo2#transformers.Molmo2ImageProcessor.__call__) للتفاصيل (`processor_class` يستخدم [BeitImageProcessor](/docs/transformers/main/ar/model_doc/beit#transformers.BeitImageProcessor) لمعالجة الصور).

labels (من نوع `torch.LongTensor` بأبعاد `(batch_size,)`، *اختياري*) : تسميات لحساب خسارة تصنيف/الانحدار للصور. يجب أن تكون الفهارس ضمن `[0, ..., config.num_labels - 1]`. إذا كان `config.num_labels == 1` يتم حساب خسارة الانحدار (خسارة متوسط المربع)، وإذا كان `config.num_labels > 1` يتم حساب خسارة التصنيف (الإنتروبيا المتقاطعة).

interpolate_pos_encoding (`bool`، *اختياري*، القيمة الافتراضية `False`) : ما إذا كان سيتم استيفاء ترميزات المواقع المُدرَّبة مسبقًا.

**يعيد:** [ImageClassifierOutput](/docs/transformers/main/ar/main_classes/output#transformers.modeling_outputs.ImageClassifierOutput) أو `tuple(torch.Tensor)`

كائن [ImageClassifierOutput](/docs/transformers/main/ar/main_classes/output#transformers.modeling_outputs.ImageClassifierOutput) أو مجموعة مرتبة من `torch.Tensor` (في حال تمرير `return_dict=False` أو عند `config.return_dict=False`) تتألف من عناصر مختلفة اعتمادًا على الإعداد ([BeitConfig](/docs/transformers/main/ar/model_doc/beit#transformers.BeitConfig)) والمدخلات.

تتجاوز طريقة [BeitForImageClassification](/docs/transformers/main/ar/model_doc/beit#transformers.BeitForImageClassification) الخاصة بالتقديم الأمامي الطريقة الخاصة `__call__`.

على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن `Module` بدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.

- **loss** (`torch.Tensor` من الشكل `(1,)`, *اختياري*، يُعاد عند تقديم `labels`) -- خسارة التصنيف (أو الانحدار إذا كان config.num_labels==1).
- **logits** (`torch.Tensor` من الشكل `(batch_size, config.num_labels)`) -- درجات التصنيف (أو الانحدار إذا كان config.num_labels==1) (قبل SoftMax).
- **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`) -- مجموعة مرتبة (Tuple) من `torch.Tensor` (واحدة لكل طبقة) بأبعاد `(batch_size, num_heads, patch_size, sequence_length)`.

  أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

مثال:

```python
>>> from transformers import AutoImageProcessor, BeitForImageClassification
>>> import torch
>>> from datasets import load_dataset

>>> dataset = load_dataset("huggingface/cats-image")
>>> image = dataset["test"]["image"][0]

>>> image_processor = AutoImageProcessor.from_pretrained("microsoft/beit-base-patch16-224-pt22k")
>>> model = BeitForImageClassification.from_pretrained("microsoft/beit-base-patch16-224-pt22k")

>>> inputs = image_processor(image, return_tensors="pt")

>>> with torch.no_grad():
...     logits = model(**inputs).logits

>>> # model predicts one of the 1000 ImageNet classes
>>> predicted_label = logits.argmax(-1).item()
>>> print(model.config.id2label[predicted_label])
...
```

## BeitForSemanticSegmentation[[transformers.BeitForSemanticSegmentation]]

#### transformers.BeitForSemanticSegmentation[[transformers.BeitForSemanticSegmentation]]

```python
transformers.BeitForSemanticSegmentation(config: BeitConfig)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/beit/modeling_beit.py#L978)

**المعاملات:**

config ([BeitConfig](/docs/transformers/main/ar/model_doc/beit#transformers.BeitConfig)) : فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. إن التهيئة باستخدام ملف إعدادات لا تُحمّل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة [from_pretrained()](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel.from_pretrained) لتحميل أوزان النموذج.

نموذج Beit مع رأس تقسيم دلالي في الأعلى، على سبيل المثال لـ ADE20K وCityScapes.

يرث هذا النموذج من [PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel). راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التنزيل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضاً فئة فرعية من [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

#### forward[[transformers.BeitForSemanticSegmentation.forward]]

```python
forward(pixel_values: typing.Optional[torch.Tensor] = None, labels: typing.Optional[torch.Tensor] = None, interpolate_pos_encoding: bool = False, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/beit/modeling_beit.py#L1000)

**المعاملات:**

pixel_values (`torch.Tensor` بشكل `(batch_size, num_channels, image_size, image_size)`، *اختياري*) : المصفوفات المقابلة لصور الإدخال. يمكن الحصول على قيم البكسل باستخدام [BeitImageProcessor](/docs/transformers/main/ar/model_doc/beit#transformers.BeitImageProcessor). راجع [BeitImageProcessor.__call__()](/docs/transformers/main/ar/model_doc/molmo2#transformers.Molmo2ImageProcessor.__call__) للتفاصيل (`processor_class` يستخدم [BeitImageProcessor](/docs/transformers/main/ar/model_doc/beit#transformers.BeitImageProcessor) لمعالجة الصور).

labels (`torch.LongTensor` بشكل `(batch_size, height, width)`، *اختياري*) : خرائط التقسيم الدلالي المرجعية لحساب الخسارة. يجب أن تكون الفهارس ضمن `[0, ..., config.num_labels - 1]`. إذا كان `config.num_labels > 1`، يتم حساب خسارة التصنيف (Cross-Entropy).

interpolate_pos_encoding (`bool`، *اختياري*، القيمة الافتراضية `False`) : ما إذا كان سيتم استيفاء ترميزات المواقع المُدرَّبة مسبقًا.

**يعيد:** [SemanticSegmenterOutput](/docs/transformers/main/ar/main_classes/output#transformers.modeling_outputs.SemanticSegmenterOutput) أو `tuple(torch.Tensor)`

إخراج [SemanticSegmenterOutput](/docs/transformers/main/ar/main_classes/output#transformers.modeling_outputs.SemanticSegmenterOutput) أو مجموعة مرتبة من `torch.Tensor` (في حال تمرير `return_dict=False` أو عند `config.return_dict=False`) تتألف من عناصر مختلفة اعتمادًا على الإعداد ([BeitConfig](/docs/transformers/main/ar/model_doc/beit#transformers.BeitConfig)) والمدخلات.

تتجاوز طريقة [BeitForSemanticSegmentation](/docs/transformers/main/ar/model_doc/beit#transformers.BeitForSemanticSegmentation) الخاصة بالتقديم الأمامي الطريقة الخاصة `__call__`.

على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن `Module` بدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.

- **loss** (`torch.Tensor` من الشكل `(1,)`, *اختياري*، يُعاد عند تقديم `labels`) -- خسارة التصنيف (أو الانحدار إذا كان config.num_labels==1).
- **logits** (`torch.Tensor` بأبعاد `(batch_size, config.num_labels, logits_height, logits_width)`) -- درجات التصنيف لكل بكسل.

  

  لا تتطابق بالضرورة أحجام logits المُعادَة مع أحجام `pixel_values` المُمرَّرة كمدخلات. وذلك لتجنّب إجراء عمليتي استيفاء وفقدان بعض الجودة عندما يحتاج المستخدم إلى تغيير حجم logits إلى حجم الصورة الأصلي كخطوة ما بعد المعالجة. يجب عليك دائمًا التحقق من شكل logits وتغيير حجمها حسب الحاجة.

  
- **hidden_states** (`tuple(torch.Tensor)`, *اختياري*, يُعاد عند تمرير `output_hidden_states=True` أو عند `config.output_hidden_states=True`) -- مجموعة مرتبة من `torch.Tensor` (واحدة لمخرجات التضمينات، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لمخرجات كل طبقة) من الشكل `(batch_size, patch_size, hidden_size)`.

  حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
- **attentions** (`tuple(torch.Tensor)`, *اختياري*, يُعاد عند تمرير `output_attentions=True` أو عند `config.output_attentions=True`) -- مجموعة مرتبة (Tuple) من `torch.Tensor` (واحدة لكل طبقة) بأبعاد `(batch_size, num_heads, patch_size, sequence_length)`.

  أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

أمثلة:

```python
>>> from transformers import AutoImageProcessor, BeitForSemanticSegmentation
>>> from PIL import Image
>>> import requests

>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> image = Image.open(requests.get(url, stream=True).raw)

>>> image_processor = AutoImageProcessor.from_pretrained("microsoft/beit-base-finetuned-ade-640-640")
>>> model = BeitForSemanticSegmentation.from_pretrained("microsoft/beit-base-finetuned-ade-640-640")

>>> inputs = image_processor(images=image, return_tensors="pt")
>>> outputs = model(**inputs)
>>> # logits are of shape (batch_size, num_labels, height, width)
>>> logits = outputs.logits
```

