# PPLCNetV4

يُوفَّر PPLCNetV4 كشبكة هيكلية فقط. لم يتم إصدار نقطة تحقق مسبقة التدريب لتصنيف الصور بشكل رسمي.

## PPLCNetV4Config[[transformers.PPLCNetV4Config]]

#### transformers.PPLCNetV4Config[[transformers.PPLCNetV4Config]]

```python
transformers.PPLCNetV4Config(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, scale: float | int = 1.0, block_configs: list | None = None, stem_channels: list[int] | tuple[int, ...] = (3, 48, 96), reduction: int = 4, hidden_act: str = 'relu', _out_features: list[str] | None = None, _out_indices: list[int] | None = None, num_channels: int = 3, stem_strides: Sequence = (2, 1, 1, 2, 1), stem_type: str = 'large', use_learnable_affine_block: bool = False)
```

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

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

scale (`float`، *اختياري*، القيمة الافتراضية 1.0) : عامل التوسيع لأبعاد القنوات في النموذج، يُستخدم لضبط حجم النموذج والتكلفة الحسابية دون تغيير البنية العامة (مثلًا: 0.25، 0.5، 1.0، 1.5).

block_configs (`list[list[tuple]]`، *اختياري*، القيمة الافتراضية `None`) : إعدادات كل كتلة في كل مرحلة. يحتوي كل tuple على: (kernel_size, in_channels, out_channels, stride, use_squeeze_excitation). إذا كانت `None`، يتم استخدام إعدادات PP-LCNet الافتراضية.

stem_channels (`list[int]`، *اختياري*، القيمة الافتراضية `[3, 48, 96]`) : أبعاد القنوات لطبقات الجذع: - الرقم الأول (3) هو قنوات صورة الإدخال - الرقم الثاني (48) هو قنوات الجذع الوسيطة - الرقم الثالث (96) هو قنوات الجذع الناتجة

reduction (`int`, *اختياري*, القيمة الافتراضية 4) : عامل الاختزال لأبعاد قنوات الميزات في كتل الضغط والإثارة (SE)، ويُستخدم لتقليل عدد معاملات النموذج والتعقيد الحسابي مع الحفاظ على قابلية تمثيل الميزات.

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

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

stem_strides (`Sequence[int | list[int] | tuple[int, ...]]`، *اختياري*، القيمة الافتراضية `(2, 1, 1, 2, 1)`) : أنماط التخطي لطبقات الجذع.

stem_type (`str`، *اختياري*، القيمة الافتراضية `large`) : نوع طبقة الجذر (stem) المستخدمة. يمكن أن تكون أحد الخيارات التالية: - `"large"`: جذر PP-LCNetV4 القياسي. - `"small"`: متغير بأبعاد قنوات أصغر.

use_learnable_affine_block (`bool`، *اختياري*، الافتراضي `False`) : ما إذا كان سيتم استخدام كتل التحويل التوافقي القابلة للتعلم (LAB) في الشبكة. تضيف LAB معاملات مقياس وانحياز قابلة للتعلم بعد عمليات معينة.

هذه فئة الإعدادات المخزنة لإعدادات نموذج Pp Lcnet V4Model. تُستخدم لاستحداث نموذج Pp Lcnet V4 وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى إعدادات مشابهة لتلك الخاصة بـ [PaddlePaddle/Not_yet_released](https://huggingface.co/PaddlePaddle/Not_yet_released)

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

## PPLCNetV4Backbone[[transformers.PPLCNetV4Backbone]]

#### transformers.PPLCNetV4Backbone[[transformers.PPLCNetV4Backbone]]

```python
transformers.PPLCNetV4Backbone(config: PPLCNetV4Config)
```

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

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

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

نموذج PPLCNetV4 الأساسي لاستخراج الميزات.

يرث هذا النموذج من [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.PPLCNetV4Backbone.forward]]

```python
forward(pixel_values: Tensor, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

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

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

pixel_values (`torch.Tensor` من الشكل `(batch_size, num_channels, image_size, image_size)`) : المصفوفات المتناظرة مع الصور المدخلة. يمكن الحصول على قيم البكسل باستخدام `image_processor_class`. راجع `image_processor_class.__call__` للتفاصيل (`processor_class` يستخدم `image_processor_class` لمعالجة الصور).

**يعيد:** `BackboneOutput` أو `tuple(torch.Tensor)`

`BackboneOutput` أو مجموعة من `torch.Tensor` (إذا تم تمرير `return_dict=False` أو عندما يكون `config.return_dict=False`) تتكون من عناصر مختلفة اعتماداً على الإعداد ([PPLCNetV4Config](/docs/transformers/main/ar/model_doc/pp_lcnet_v4#transformers.PPLCNetV4Config)) والمدخلات.

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

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

- **feature_maps** (`tuple(torch.Tensor)` من الشكل `(batch_size, num_channels, height, width)`) -- خرائط الميزات للمراحل.
- **hidden_states** (`tuple(torch.Tensor)`، *اختياري*، يُعاد عند تمرير `output_hidden_states=True` أو عند تعيين `config.output_hidden_states=True`) -- مجموعة من `torch.Tensor` (واحدة لإخراج التضمينات + واحدة لإخراج كل طبقة) بأبعاد `(batch_size, sequence_length, hidden_size)` أو `(batch_size, num_channels, height, width)`، اعتمادًا على الهيكل الأساسي.

  حالات النموذج المخفية عند مخرج كل مرحلة بالإضافة إلى مخرجات التضمين الأولي.
- **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 PPLCNetV4Config, PPLCNetV4Backbone
>>> import torch

>>> config = PPLCNetV4Config()
>>> model = PPLCNetV4Backbone(config)

>>> pixel_values = torch.randn(1, 3, 224, 224)

>>> with torch.no_grad():
...     outputs = model(pixel_values)

>>> feature_maps = outputs.feature_maps
>>> list(feature_maps[-1].shape)
```

