# VideoPrism

قُدِّم نموذج VideoPrism في ورقة [VideoPrism: A Foundational Visual Encoder for Video Understanding](https://huggingface.co/papers/2402.13217) من Google DeepMind ([منشور مدونة](https://research.google/blog/videoprism-a-foundational-visual-encoder-for-video-understanding/)).

VideoPrism هو مُرمِّز فيديو متعدد الاستخدامات يتعامل مع مهام متنوعة لفهم الفيديو باستخدام نموذج مجمّد واحد. تم تدريب النموذج مسبقًا على قاعدة بيانات غير متجانسة واسعة النطاق تحتوي على 36 مليون زوج من مقاطع الفيديو والوصف النصي عالية الجودة، و582 مليون مقطع فيديو مع نصوص موازية غير دقيقة (مثل نصوص التعرف على الكلام الآلي). تحسّن نهج التدريب المسبق على الترميز التلقائي المقنّع من خلال التقطير الشامل والمحلي لتضمينات الفيديو الدلالية، ومخطط خلط الرموز، مما يتيح للنموذج التركيز بشكل أساسي على نمط الفيديو مع الاستفادة من النصوص المرتبطة بالفيديوهات. يحقق VideoPrism أداءً متقدمًا على 31 من أصل 33 معيارًا لفهم الفيديو عبر أربع مجموعات مهام واسعة، بدءًا من الإجابة على أسئلة الفيديو على الويب وصولًا إلى الرؤية الحاسوبية للعلوم.

    

يمكنك العثور على جميع نقاط التفتيش الأصلية لـ VideoPrism ضمن مجموعة [VideoPrism](https://huggingface.co/collections/google/videoprism).

ملاحظات:

- يستخدم VideoPrism معمارية مُفكّكة للمُشفِّر المكاني-الزمني، حيث يعالج مقاطع الفيديو عبر محوّلات مكانية وزمنية منفصلة.
- يدعم النموذج التعلّم التبايني بين الفيديو والنص من خلال `VideoPrismClipModel`، الذي يجمع بين مُشفِّر للفيديو ومُشفِّر للنص. يجب استخدام `VideoPrismConfig` مع هذا النموذج.
- لمهام تصنيف الفيديو، استخدم `VideoPrismForVideoClassification` الذي يضيف رأس تصنيف فوق مشفّر الفيديو. يجب استخدام `VideoPrismVisionConfig` مع هذا النموذج.
- يمكن استخدام مُشفِّر الرؤية بشكل مستقل عبر `VideoPrismVisionModel` لاستخراج ميزات الفيديو. يجب استخدام `VideoPrismVisionConfig` مع هذا النموذج.
- دقة الإدخال الافتراضية هي 288x288 بكسل مع 16 إطارًا لكل مقطع فيديو في النماذج الأساسية و8 إطارات للنماذج الكبيرة. اضبط interpolate_pos_encoding=True لاستخدام النماذج بدقة مخصصة وعدد إطارات لكل مقطع.

تمت مساهمة هذا النموذج من قِبل [MHRDYN7](https://github.com/MHRDYN7) ومراجعته من قِبل [vasqu](https://github.com/vasqu) و [zucchini-nlp](https://github.com/zucchini-nlp). يمكن العثور على الكود الأصلي [هنا](https://github.com/google-deepmind/videoprism).

## مثال على الاستخدام

يُظهر المقطع أدناه كيفية تحميل نموذج VideoPrismVisionModel لاستخراج الميزات باستخدام فئة `AutoModel`.

```py
import torch
from transformers import AutoModel, AutoVideoProcessor

processor = AutoVideoProcessor.from_pretrained("google/videoprism-base-f16r288", revision="refs/pr/4")
model = AutoModel.from_pretrained(
    "google/videoprism-base-f16r288",
    revision="refs/pr/4",
    device_map="auto",
    # use "flash_attention_2" for faster inference on supported hardware
    # attn_implementation="flash_attention_2" 
)

video_url = "https://huggingface.co/datasets/nateraw/kinetics-mini/resolve/main/val/archery/-Qz25rXdMjE_000014_000024.mp4"

# when do_sample_frames=True, 16/8 frames will be sampled by default depending on the checkpoint size base/large.
processed_video_inputs = processor(videos=[video_url], return_metadata=True, do_sample_frames=True)
video_metadata = processed_video_inputs["video_metadata"]
video_inputs = processed_video_inputs["pixel_values_videos"].to(model.device)
outputs = model(video_inputs)

# VideoPrism encoder outputs
encoder_outputs = outputs.last_hidden_state

```

## VideoPrismVisionConfig[[transformers.VideoPrismVisionConfig]]

#### transformers.VideoPrismVisionConfig[[transformers.VideoPrismVisionConfig]]

```python
transformers.VideoPrismVisionConfig(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, image_size: int | list[int] | tuple[int, int] = 288, num_frames: int = 16, tubelet_size: list[int] | tuple[int, ...] = (1, 18, 18), num_channels: int = 3, hidden_size: int = 768, num_attention_heads: int = 12, intermediate_size: int = 3072, hidden_act: str = 'gelu_python', 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-06, qkv_bias: bool = True, num_spatial_layers: int = 12, num_temporal_layers: int = 4, attn_logit_softcapping: float = 50.0, num_auxiliary_layers: int = 2, apply_l2norm: bool = True)
```

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

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

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

num_frames (`int`، *اختياري*، القيمة الافتراضية 16) : عدد الإطارات في الفيديو المُدخل.

tubelet_size (`List[int]`، *اختياري*، القيمة الافتراضية `[1, 18, 18]`) : حجم رقعة الأنبوب.

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

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

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

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

hidden_act (`str`، *اختياري*، القيمة الافتراضية `gelu_python`) : دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال، `"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-06`) : قيمة إيبسلون المستخدمة في طبقات تطبيع الطبقة.

qkv_bias (`bool`، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان يجب إضافة انحياز إلى الاستعلامات والمفاتيح والقيم.

num_spatial_layers (`int`، *اختياري*، القيمة الافتراضية 12) : عدد كتل المحوّل المكاني.

num_temporal_layers (`int`، *اختياري*، القيمة الافتراضية 4) : عدد كتل الترانسفورمر الزمنية.

attn_logit_softcapping (`float`، *اختياري*، القيمة الافتراضية 50.0) : ثابت التقييد الناعم (Softcapping) لقيم الاحتمالات (logits) في الانتباه.

num_auxiliary_layers (`int`، *اختياري*، القيمة الافتراضية 2) : عدد الطبقات المساعدة. يُستخدم هذا في VideoPrismVideoModel الذي يُشكّل جزءًا من VideoPrismClipModel.

apply_l2norm (`bool`، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان سيتم تطبيق تطبيع L2 على المخرجات. يُستخدم هذا في VideoPrismVideoModel الذي يُعد جزءًا من VideoPrismClipModel.

هذه فئة الإعدادات المخزنة لإعدادات نموذج VideoPrismClipModel. تُستخدم لاستحداث نموذج Videoprism وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيُنتج إعدادات مشابهة لتلك الخاصة بـ [google/videoprism-base-f16r288](https://huggingface.co/google/videoprism-base-f16r288)

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

## VideoPrismTextConfig[[transformers.VideoPrismTextConfig]]

#### transformers.VideoPrismTextConfig[[transformers.VideoPrismTextConfig]]

```python
transformers.VideoPrismTextConfig(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 = 32000, hidden_size: int = 768, intermediate_size: int = 3072, num_hidden_layers: int = 12, num_attention_heads: int = 12, max_position_embeddings: int = 64, hidden_act: str = 'relu', layer_norm_eps: float = 1e-06, pad_token_id: int | None = 0, bos_token_id: int | None = None, eos_token_id: int | list[int] | None = None, attention_probs_dropout_prob: float | int = 0.0, apply_l2norm: bool = True, qkv_bias: bool = True, hidden_dropout_prob: float = 0.0, initializer_range: float = 0.02, attn_logit_softcapping: float = 50.0)
```

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

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

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

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

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

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

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

max_position_embeddings (`int`، *اختياري*، القيمة الافتراضية `64`) : الحد الأقصى لطول التسلسل الذي قد يُستخدم به هذا النموذج على الإطلاق.

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

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

pad_token_id (`int`، *اختياري*، القيمة الافتراضية `0`) : معرّف الرمز المستخدم للتعبئة في المفردات.

bos_token_id (`int`, *اختياري*) : معرّف الرمز المستخدم لبدء البث في المفردات.

eos_token_id (`Union[int, list[int]]`، *اختياري*) : معرّف الرمز المستخدم لنهاية البث في المفردات.

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

apply_l2norm (`bool`، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان سيتم تطبيق تطبيع L2 على مخرج VideoPrismTextEncoder.

qkv_bias (`bool`، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان يجب إضافة انحياز إلى الاستعلامات والمفاتيح والقيم.

hidden_dropout_prob (`float`، *اختياري*، القيمة الافتراضية `0.0`) : احتمال الإسقاط (dropout) لجميع الطبقات المتصلة بالكامل في التضمينات، والمُشفِّر، والمُجمِّع.

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

attn_logit_softcapping (`float`، *اختياري*، القيمة الافتراضية 50.0) : ثابت التقييد الناعم (Softcapping) لقيم الانتباه (attention logits).

هذه فئة الإعدادات المخزنة لإعدادات نموذج VideoPrismClipModel. تُستخدم لاستحداث نموذج Videoprism وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ [google/videoprism-lvt-base-f16r288](https://huggingface.co/google/videoprism-lvt-base-f16r288)

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

## VideoPrismConfig[[transformers.VideoPrismConfig]]

#### transformers.VideoPrismConfig[[transformers.VideoPrismConfig]]

```python
transformers.VideoPrismConfig(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, text_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None, vision_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None)
```

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

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

text_config (`Union[dict, ~configuration_utils.PreTrainedConfig]`، *اختياري*) : كائن الإعداد أو قاموس العمود الفقري النصي.

vision_config (`Union[dict, ~configuration_utils.PreTrainedConfig]`، *اختياري*) : كائن الإعداد أو قاموس العمود الفقري البصري.

هذه فئة الإعدادات المخزنة لإعدادات نموذج VideoPrismClipModel. تُستخدم لتوليد نموذج Videoprism وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن إنشاء إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ [google/videoprism-lvt-base-f16r288](https://huggingface.co/google/videoprism-lvt-base-f16r288)

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

مثال:

```python
>>> from transformers import VideoPrismClipModel, VideoPrismConfig

>>> # Initializing a VideoPrismConfig with default values
>>> configuration = VideoPrismConfig()

>>> # Initializing a VideoPrismClipModel with the configuration
>>> model = VideoPrismClipModel(configuration)

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

## VideoPrismTokenizer[[transformers.VideoPrismTokenizer]]

#### transformers.VideoPrismTokenizer[[transformers.VideoPrismTokenizer]]

```python
transformers.VideoPrismTokenizer(vocab: str | list[tuple[str, float]] | None = None, eos_token = '</s>', unk_token = '<unk>', pad_token = '<pad>', _spm_precompiled_charsmap = None, extra_ids = 100, additional_special_tokens = None, **kwargs)
```

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

ينشئ مُرمِّز VideoPrism، وهو في جوهره مُرمِّز T5 دون مُعالِج ما بعده (الذي يُضيف رمز EOS في نهاية التسلسل).

يرث هذا المُجزِّئ من [T5Tokenizer](/docs/transformers/main/ar/model_doc/t5#transformers.T5Tokenizer) الذي يحتوي على معظم الطرق الرئيسية. ينبغي للمستخدمين الرجوع إلى هذه الفئة الأصلية لمزيد من المعلومات حول تلك الطرق.

#### get_sentinel_token_ids[[transformers.VideoPrismTokenizer.get_sentinel_token_ids]]

```python
get_sentinel_token_ids()
```

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

احصل على معرّفات الرموز (Token IDs) لرموز الحارس (sentinel tokens).

#### get_sentinel_tokens[[transformers.VideoPrismTokenizer.get_sentinel_tokens]]

```python
get_sentinel_tokens()
```

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

احصل على قائمة رموز الحارس (رموز extra_id) من additional_special_tokens.

## VideoPrismProcessor[[transformers.VideoPrismProcessor]]

#### transformers.VideoPrismProcessor[[transformers.VideoPrismProcessor]]

```python
transformers.VideoPrismProcessor(video_processor = None, tokenizer = None)
```

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

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

video_processor (`LlavaOnevisionVideoProcessor`) : معالج الفيديو هو مدخل مطلوب.

tokenizer (`VideoPrismTokenizer`) : المُجزِّئ (tokenizer) هو مدخل إلزامي.

ينشئ VideoPrismProcessor الذي يغلّف معالج فيديو ومُرمّز في معالج واحد.

يوفر [VideoPrismProcessor](/docs/transformers/main/ar/model_doc/videoprism#transformers.VideoPrismProcessor) جميع وظائف [LlavaOnevisionVideoProcessor](/docs/transformers/main/ar/model_doc/llava_onevision#transformers.LlavaOnevisionVideoProcessor) و[VideoPrismTokenizer](/docs/transformers/main/ar/model_doc/videoprism#transformers.VideoPrismTokenizer). راجع [~LlavaOnevisionVideoProcessor](/docs/transformers/main/ar/model_doc/llava_onevision#transformers.LlavaOnevisionVideoProcessor) و[~VideoPrismTokenizer](/docs/transformers/main/ar/model_doc/videoprism#transformers.VideoPrismTokenizer) لمزيد من المعلومات.

## VideoPrismVisionModel[[transformers.VideoPrismVisionModel]]

#### transformers.VideoPrismVisionModel[[transformers.VideoPrismVisionModel]]

```python
transformers.VideoPrismVisionModel(config: VideoPrismVisionConfig)
```

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

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

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

مُشفِّر الرؤية VideoPrism العاري الذي يُخرج حالات مخفية خام دون أي رأس محدد في الأعلى. هذا النموذج هو مُشفِّر الهيكل الأساسي المستخدم في VideoPrismVideoModel.

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

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

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

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

pixel_values_videos (`torch.Tensor` من الشكل `(batch_size, num_frames, num_channels, frame_size, frame_size)`، *اختياري*) : المصفوفات المقابلة لفيديو الإدخال. يمكن الحصول على قيم البكسل للفيديوهات باستخدام [LlavaOnevisionVideoProcessor](/docs/transformers/main/ar/model_doc/llava_onevision#transformers.LlavaOnevisionVideoProcessor). راجع [LlavaOnevisionVideoProcessor.__call__()](/docs/transformers/main/ar/model_doc/molmo2#transformers.Molmo2VideoProcessor.__call__) للتفاصيل ([VideoPrismProcessor](/docs/transformers/main/ar/model_doc/videoprism#transformers.VideoPrismProcessor) يستخدم [LlavaOnevisionVideoProcessor](/docs/transformers/main/ar/model_doc/llava_onevision#transformers.LlavaOnevisionVideoProcessor) لمعالجة الفيديوهات).

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

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

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

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

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

- **last_hidden_state** (`torch.Tensor` من الشكل `(batch_size, sequence_length, hidden_size)`) -- تسلسل من حالات الإخفاء (hidden-states) عند مخرج الطبقة الأخيرة من النموذج.
- **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 على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.
- **last_temporal_hidden_state** (`torch.Tensor`، *اختياري*) -- حالة المخفية الأخيرة لمشفّر الزمن، وعادةً ما يكون شكلها `(batch_size * num_patches, num_frames, hidden_size)`.
- **last_spatial_hidden_state** (`torch.Tensor`، *اختياري*) -- حالة الإخفاء الأخيرة لمُشفِّر الفضاء، وعادةً ما يكون شكلها `(batch_size * num_frames, num_patches, hidden_size)`.

مثال:

```python
```

## VideoPrismVideoModel[[transformers.VideoPrismVideoModel]]

#### transformers.VideoPrismVideoModel[[transformers.VideoPrismVideoModel]]

```python
transformers.VideoPrismVideoModel(config: VideoPrismVisionConfig)
```

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

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

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

نموذج فيديو VideoPrism يتكون من هيكل مشفر الرؤية مع طبقات مشفرات مساعدة ورأس تجميع انتباه في الأعلى. يُستخدم هذا النموذج في VideoPrismClipModel.

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

```python
forward(pixel_values_videos: Tensor, interpolate_pos_encoding: bool | None = False, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

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

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

pixel_values_videos (`torch.Tensor` من الشكل `(batch_size, num_frames, num_channels, frame_size, frame_size)`) : المصفوفات المتناظرة مع الفيديو المدخل. يمكن الحصول على قيم البكسل للفيديوهات باستخدام [LlavaOnevisionVideoProcessor](/docs/transformers/main/ar/model_doc/llava_onevision#transformers.LlavaOnevisionVideoProcessor). راجع [LlavaOnevisionVideoProcessor.__call__()](/docs/transformers/main/ar/model_doc/molmo2#transformers.Molmo2VideoProcessor.__call__) للتفاصيل ([VideoPrismProcessor](/docs/transformers/main/ar/model_doc/videoprism#transformers.VideoPrismProcessor) يستخدم [LlavaOnevisionVideoProcessor](/docs/transformers/main/ar/model_doc/llava_onevision#transformers.LlavaOnevisionVideoProcessor) لمعالجة الفيديوهات).

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

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

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

تُعيد طريقة [VideoPrismVideoModel](/docs/transformers/main/ar/model_doc/videoprism#transformers.VideoPrismVideoModel) الخاصة بالتقديم (forward) تعريف الطريقة الخاصة `__call__`.

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

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

## VideoPrismTextModel[[transformers.VideoPrismTextModel]]

#### transformers.VideoPrismTextModel[[transformers.VideoPrismTextModel]]

```python
transformers.VideoPrismTextModel(config: VideoPrismTextConfig)
```

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

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

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

مُشفِّر النص في VideoPrism الذي يُخرج حالات الإخفاء الأخيرة دون أي رأس محدد في الأعلى. يُستخدم هذا النموذج في VideoPrismClipModel.

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

```python
forward(input_ids: typing.Optional[torch.LongTensor] = None, attention_mask: typing.Optional[torch.Tensor] = None, inputs_embeds: typing.Optional[torch.Tensor] = None, position_ids: typing.Optional[torch.Tensor] = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

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

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

input_ids (`torch.LongTensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : فهارس رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا. يمكن الحصول على الفهارس باستخدام [AutoTokenizer](/docs/transformers/main/ar/model_doc/auto#transformers.AutoTokenizer). راجع [PreTrainedTokenizer.encode()](/docs/transformers/main/ar/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) و [PreTrainedTokenizer.__call__()](/docs/transformers/main/ar/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__) للتفاصيل. [ما هي معرّفات الإدخال؟](../glossary#input-ids)

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

inputs_embeds (`torch.Tensor` من الشكل `(batch_size, sequence_length, hidden_size)`، *اختياري*) : بدلاً من تمرير `input_ids`، يمكنك اختيار تمرير تمثيل مضمّن مباشرةً. هذا مفيد إذا كنت ترغب في الحصول على مزيد من التحكم في كيفية تحويل فهارس `input_ids` إلى المتجهات المرتبطة بها، مقارنةً بمصفوفة البحث المضمّنة الداخلية للنموذج.

position_ids (`torch.Tensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : فهارس مواضع رموز كل تسلسل إدخال في تضمينات المواضع. يتم اختيارها من النطاق `[0, config.n_positions - 1]`.  [ما هي معرّفات المواضع؟](../glossary#position-ids)

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

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

تُعيد طريقة [VideoPrismTextModel](/docs/transformers/main/ar/model_doc/videoprism#transformers.VideoPrismTextModel) الخاصة بالتقديم (forward) تعريف الطريقة الخاصة `__call__`.

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

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

## VideoPrismClipModel[[transformers.VideoPrismClipModel]]

#### transformers.VideoPrismClipModel[[transformers.VideoPrismClipModel]]

```python
transformers.VideoPrismClipModel(config: VideoPrismConfig)
```

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

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

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

نموذج VideoPrism للتعلم التبايني بين الفيديو والنص. يتكون هذا النموذج من VideoPrismVideoModel وVideoPrismTextModel، ويحسب درجات التشابه بين مدخلات الفيديو والنص.

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

```python
forward(pixel_values_videos: Tensor, input_ids: Tensor, attention_mask: typing.Optional[torch.Tensor] = None, interpolate_pos_encoding: bool | None = False, temperature: float | None = None, return_loss: bool | None = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

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

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

pixel_values_videos (`torch.Tensor` من الشكل `(batch_size, num_frames, num_channels, frame_size, frame_size)`) : المصفوفات المتناظرة مع الفيديو المدخل. يمكن الحصول على قيم البكسل للفيديوهات باستخدام [LlavaOnevisionVideoProcessor](/docs/transformers/main/ar/model_doc/llava_onevision#transformers.LlavaOnevisionVideoProcessor). راجع [LlavaOnevisionVideoProcessor.__call__()](/docs/transformers/main/ar/model_doc/molmo2#transformers.Molmo2VideoProcessor.__call__) للتفاصيل ([VideoPrismProcessor](/docs/transformers/main/ar/model_doc/videoprism#transformers.VideoPrismProcessor) يستخدم [LlavaOnevisionVideoProcessor](/docs/transformers/main/ar/model_doc/llava_onevision#transformers.LlavaOnevisionVideoProcessor) لمعالجة الفيديوهات).

input_ids (`torch.Tensor` من الشكل `(batch_size, sequence_length)`) : فهارس رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا. يمكن الحصول على الفهارس باستخدام [AutoTokenizer](/docs/transformers/main/ar/model_doc/auto#transformers.AutoTokenizer). راجع [PreTrainedTokenizer.encode()](/docs/transformers/main/ar/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) و [PreTrainedTokenizer.__call__()](/docs/transformers/main/ar/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__) للتفاصيل. [ما هي معرّفات الإدخال؟](../glossary#input-ids)

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

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

temperature (`float`، *اختياري*) : قيمة عددية (سكّالار) لدرجة الحرارة تُستخدم لتقليص درجات التشابه. إذا لم تُقدَّم، فلن يُطبَّق أي تقليص.

return_loss (`bool`، *اختياري*) : ما إذا كان يجب إرجاع خسارة التباينية أم لا.

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

A `VideoPrismClipOutput` or a tuple of `torch.Tensor` (if `return_dict=False` is passed or when `config.return_dict=False`) comprising various elements depending on the configuration ([VideoPrismConfig](/docs/transformers/main/ar/model_doc/videoprism#transformers.VideoPrismConfig)) and inputs.

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

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

- **logits_per_video** (`torch.Tensor` من الشكل `(video_batch_size, text_batch_size)`) -- درجات ضرب النقطة المُقيَّسة بين `video_embeds` و`text_embeds`. تمثل هذه الدرجات درجات التشابه بين الفيديو والنص.
- **logits_per_text** (`torch.Tensor` من الشكل `(text_batch_size, video_batch_size)`) -- درجات ضرب النقطة المُقيَّسة بين `text_embeds` و`video_embeds`. وهذا يمثل درجات التشابه بين النص والفيديو.
- **video_embeds** (`torch.Tensor` من الشكل `(batch_size, output_dim)`) -- تمثيلات الفيديو الناتجة عن تطبيق طبقة الإسقاط على المخرجات المجمعة لـ [VideoPrismVideoModel](/docs/transformers/main/ar/model_doc/videoprism#transformers.VideoPrismVideoModel).
- **text_embeds** (`torch.Tensor` من الشكل `(batch_size, output_dim)`) -- تمثيلات النص (embeddings) الناتجة عن تطبيق طبقة الإسقاط (projection layer) على المخرجات المجمعة (pooled output) لـ [VideoPrismTextModel](/docs/transformers/main/ar/model_doc/videoprism#transformers.VideoPrismTextModel).
- **video_model_output** (`~modeling_outputs.BaseModelOutputWithPooling`، *اختياري*) -- مخرجات [VideoPrismVideoModel](/docs/transformers/main/ar/model_doc/videoprism#transformers.VideoPrismVideoModel).
- **text_model_output** (`~modeling_outputs.BaseModelOutputWithPooling`، *اختياري*) -- مخرجات [VideoPrismTextModel](/docs/transformers/main/ar/model_doc/videoprism#transformers.VideoPrismTextModel).
- **loss** (`torch.Tensor` of shape `(1,)`, *اختياري*, يُعاد عندما تكون `return_loss` هي `True`) -- خسارة تباينية لتقييم التشابه بين الفيديو والنص.

مثال:

```python
```

## VideoPrismForVideoClassification[[transformers.VideoPrismForVideoClassification]]

#### transformers.VideoPrismForVideoClassification[[transformers.VideoPrismForVideoClassification]]

```python
transformers.VideoPrismForVideoClassification(config: VideoPrismVisionConfig)
```

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

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

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

نموذج VideoPrism مُحوِّل (transformer) مع رأس تصنيف فيديو في الأعلى (طبقة خطية فوق مجمّع الانتباه).

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

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

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

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

pixel_values_videos (`torch.Tensor` من الشكل `(batch_size, num_frames, num_channels, frame_size, frame_size)`) : المصفوفات المتناظرة مع الفيديو المدخل. يمكن الحصول على قيم البكسل للفيديوهات باستخدام [LlavaOnevisionVideoProcessor](/docs/transformers/main/ar/model_doc/llava_onevision#transformers.LlavaOnevisionVideoProcessor). راجع [LlavaOnevisionVideoProcessor.__call__()](/docs/transformers/main/ar/model_doc/molmo2#transformers.Molmo2VideoProcessor.__call__) للتفاصيل ([VideoPrismProcessor](/docs/transformers/main/ar/model_doc/videoprism#transformers.VideoPrismProcessor) يستخدم [LlavaOnevisionVideoProcessor](/docs/transformers/main/ar/model_doc/llava_onevision#transformers.LlavaOnevisionVideoProcessor) لمعالجة الفيديوهات).

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`) وتتضمن عناصر مختلفة اعتماداً على الإعداد ([VideoPrismConfig](/docs/transformers/main/ar/model_doc/videoprism#transformers.VideoPrismConfig)) والمدخلات.

تتجاوز طريقة [VideoPrismForVideoClassification](/docs/transformers/main/ar/model_doc/videoprism#transformers.VideoPrismForVideoClassification) الخاصة بالتقديم (forward) الطريقة الخاصة `__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
```

