Transformers documentation

VidEoMT

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

and get access to the augmented documentation experience

to get started

نُشر هذا النموذج في أوراق HF في 19 فبراير 2026، وسُهم به إلى Hugging Face Transformers في 25 مارس 2026.

VidEoMT

نظرة عامة

قُدِّم نموذج VidEoMT في Your ViT is Secretly Also a Video Segmentation Model من قِبل Narges Norouzi وIdil Esen Zulfikar وNiccolò Cavagnero وTommie Kerssies وBastian Leibe وGijs Dubbelman وDaan de Geus. يُعد Video Encoder-only Mask Transformer (VidEoMT) نموذجًا خفيف الوزن يعتمد على المشفّر فقط، مخصص للتقطيع الفوري للفيديو، ومبني على Vision Transformer (ViT) عادي. وهو امتداد بسيط لنموذج EoMT لتطبيقه على الفيديو، حيث يؤدي الاستدلال المكاني والزمني معًا داخل مشفّر ViT، دون الاعتماد على وحدات تتبع مخصصة أو رؤوس مهام ثقيلة.

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

تدمج نماذج تجزئة الفيديو عبر الإنترنت الحالية عادةً مُجزِّئًا لكل إطار مع وحدات تتبع متخصصة ومعقدة. وعلى الرغم من فعاليتها، فإن هذه الوحدات تُدخل تعقيدًا معماريًا كبيرًا وتكاليف حسابية مرتفعة. تشير الدراسات الحديثة إلى أن مُشفِّرات Vision Transformer (ViT) الأساسية، عند توسيعها بسعة كافية وتدريب مسبق على نطاق واسع، قادرة على إجراء تجزئة دقيقة للصور دون الحاجة إلى وحدات متخصصة. بدافع من هذه الملاحظة، نقترح نموذج Video Encoder-only Mask Transformer (VidEoMT)، وهو نموذج بسيط لتجزئة الفيديو يعتمد على المُشفِّر فقط، ويستغني عن الحاجة إلى وحدات تتبع مخصصة. لتمكين النمذجة الزمنية في مُشفِّر ViT يعتمد على المُشفِّر فقط، يُدخل VidEoMT آلية خفيفة لنشر الاستعلامات (query propagation) التي تنقل المعلومات عبر الإطارات عن طريق إعادة استخدام الاستعلامات من الإطار السابق. ولتوازن ذلك مع المرونة في التكيف مع محتوى جديد، يستخدم استراتيجية دمج للاستعلامات تجمع بين الاستعلامات المنقولة ومجموعة من الاستعلامات المتعلمة المستقلة زمنيًا. ونتيجةً لذلك، يحقق VidEoMT فوائد مُتتبّع دون تعقيد إضافي، محققًا دقة تنافسية مع كونه أسرع بمقدار 5 إلى 10 أضعاف، ويعمل بسرعة تصل إلى 160 إطارًا في الثانية مع هيكل أساسي ViT-L.

نصائح:

  • يدعم VidEoMT حاليًا هيكل DINOv2 فقط (مع رموز التسجيل). الأحجام المتاحة للنماذج هي ViT-S وViT-B وViT-L.
  • يقبل النموذج مدخلات الفيديو على شكل متجه خماسي الأبعاد (5D) بأبعاد (batch_size, num_frames, 3, height, width).
  • يدعم VidEoMT ثلاث مهام لتجزئة الفيديو: تجزئة الأفراد، وتجزئة الدلالية، وتجزئة الشاملة، ولكل منها طريقة معالجة لاحقة مخصصة على معالج الفيديو.

تمت مساهمة هذا النموذج من قِبل nielsr. يمكن العثور على الكود الأصلي هنا.

معلومات البنية

يبني VidEoMT على EoMT، الذي يعيد توظيف نموذج Vision Transformer المدرّب مسبقًا باستخدام DINOv2 مع رموز تسجيل كنموذج للتجزئة. يقدّم EoMT استعلامات كائنات متعلّمة ورأسًا خفيفًا لتنبؤ الأقنعة مباشرةً داخل مُشفِّر ViT، مما يلغي الحاجة إلى مُفكّكات مخصّصة للمهمة.

يمدّد VidEoMT هذا المفهوم إلى الفيديو من خلال إضافتين رئيسيتين:

  1. انتشار الاستعلامات: تُنقل استعلامات الكائنات من الإطار السابق إلى الإطار التالي عبر إسقاط خطي (query_updater)، مما يتيح الاستدلال الزمني دون الحاجة إلى متتبع مخصص.
  2. دمج الاستعلامات: تُضاف الاستعلامات المنقولة إلى مجموعة من الاستعلامات المُتعلَّمة المستقلة زمنياً، مما يتيح للنموذج التكيف مع ظهور كائنات جديدة في الفيديو.

تعالج طبقات المُشفِّر المبكرة جميع الإطارات بشكل مستقل (بالتوازي)، بينما تعمل الكتل النهائية لكل إطار على حدة باستخدام الاستعلامات المدمجة، مما ينتج عنه تنبؤات للأقنعة والفئات لكل إطار.

أمثلة على الاستخدام

استخدم تطبيق Hugging Face لنموذج VidEoMT للاستدلال باستخدام النماذج المُدرَّبة مسبقًا. تعيد الأمثلة أدناه استخدام نقطة التفتيش العامة tue-mps/videomt-dinov2-small-ytvis2019 لإظهار المعالجة اللاحقة للكشف عن الكائنات في الفيديو، والمعالجة الدلالية، والمعالجة الشاملة على فيديو نموذجي.

تجزئة الكائنات في الفيديو

import matplotlib.pyplot as plt
import numpy as np
import torch

from transformers import AutoModelForUniversalSegmentation, AutoVideoProcessor
from transformers.video_utils import load_video


model_id = "tue-mps/videomt-dinov2-small-ytvis2019"
processor = AutoVideoProcessor.from_pretrained(model_id)
model = AutoModelForUniversalSegmentation.from_pretrained(model_id, device_map="auto")

video_url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/videos/pexels-allan-mas-5362370.mp4"
# Sample 8 frames to keep the example lightweight.
video_frames, _ = load_video(video_url, num_frames=8)

inputs = processor(videos=[video_frames], return_tensors="pt").to(model.device)

with torch.inference_mode():
    outputs = model(**inputs)

original_height, original_width = video_frames[0].shape[:2]
target_sizes = [(original_height, original_width)] * len(video_frames)

results = processor.post_process_instance_segmentation(
    outputs,
    target_sizes=target_sizes,
)

fig, axes = plt.subplots(2, 4, figsize=(16, 8))
for idx, (ax, frame, result) in enumerate(zip(axes.flatten(), video_frames, results)):
    ax.imshow(frame)
    seg = result["segmentation"].cpu().numpy()
    masked = np.ma.masked_where(seg == -1, seg)
    ax.imshow(masked, alpha=0.6, cmap="tab20")
    ax.set_title(f"Frame {idx}")
    ax.axis("off")
plt.suptitle("Video Instance Segmentation")
plt.tight_layout()
plt.show()

التجزئة الدلالية للفيديو

import matplotlib.pyplot as plt
import torch

from transformers import AutoModelForUniversalSegmentation, AutoVideoProcessor
from transformers.video_utils import load_video


model_id = "tue-mps/videomt-dinov2-small-ytvis2019"
processor = AutoVideoProcessor.from_pretrained(model_id)
model = AutoModelForUniversalSegmentation.from_pretrained(model_id, device_map="auto")

video_url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/videos/pexels-allan-mas-5362370.mp4"
# Sample 8 frames to keep the example lightweight.
video_frames, _ = load_video(video_url, num_frames=8)

inputs = processor(videos=[video_frames], return_tensors="pt").to(model.device)

with torch.inference_mode():
    outputs = model(**inputs)

original_height, original_width = video_frames[0].shape[:2]
target_sizes = [(original_height, original_width)] * len(video_frames)

preds = processor.post_process_semantic_segmentation(
    outputs,
    target_sizes=target_sizes,
)

fig, axes = plt.subplots(2, 4, figsize=(16, 8))
for idx, (ax, frame, seg_map) in enumerate(zip(axes.flatten(), video_frames, preds)):
    ax.imshow(frame)
    ax.imshow(seg_map.cpu().numpy(), alpha=0.6, cmap="tab20")
    ax.set_title(f"Frame {idx}")
    ax.axis("off")
plt.suptitle("Video Semantic Segmentation")
plt.tight_layout()
plt.show()

التجزئة البانورامية للفيديو

import matplotlib.pyplot as plt
import numpy as np
import torch

from transformers import AutoModelForUniversalSegmentation, AutoVideoProcessor
from transformers.video_utils import load_video


model_id = "tue-mps/videomt-dinov2-small-ytvis2019"
processor = AutoVideoProcessor.from_pretrained(model_id)
model = AutoModelForUniversalSegmentation.from_pretrained(model_id, device_map="auto")

video_url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/videos/pexels-allan-mas-5362370.mp4"
# Sample 8 frames to keep the example lightweight.
video_frames, _ = load_video(video_url, num_frames=8)

inputs = processor(videos=[video_frames], return_tensors="pt").to(model.device)

with torch.inference_mode():
    outputs = model(**inputs)

original_height, original_width = video_frames[0].shape[:2]
target_sizes = [(original_height, original_width)] * len(video_frames)

results = processor.post_process_panoptic_segmentation(
    outputs,
    target_sizes=target_sizes,
)

fig, axes = plt.subplots(2, 4, figsize=(16, 8))
for idx, (ax, frame, result) in enumerate(zip(axes.flatten(), video_frames, results)):
    ax.imshow(frame)
    seg = result["segmentation"].cpu().numpy()
    masked = np.ma.masked_where(seg == -1, seg)
    ax.imshow(masked, alpha=0.6, cmap="tab20")
    ax.set_title(f"Frame {idx}")
    ax.axis("off")
plt.suptitle("Video Panoptic Segmentation")
plt.tight_layout()
plt.show()

VideomtVideoProcessor

فئة transformers.VideomtVideoProcessor

< >

( **kwargs: *<class 'transformers.processing_utils.VideosKwargs'> )

المعاملات

  • do_convert_rgb (bool، kwargs، اختياري، القيمة الافتراضية True) — ما إذا كان يجب تحويل الصورة إلى RGB.
  • do_resize (bool، kwargs، اختياري، القيمة الافتراضية True) — ما إذا كان يجب تغيير حجم الصورة.
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]، kwargs، القيمة الافتراضية {'height' -- 640, 'width': 640}): يصف الأبعاد القصوى للمدخلات إلى النموذج.
  • default_to_square (bool، kwargs، اختياري، القيمة الافتراضية True) — ما إذا كان يجب افتراض صورة مربعة عند تغيير الحجم، إذا كانت قيمة size من نوع int.
  • resample (Annotated[Union[int, PILImageResampling, NoneType], None]، kwargs، القيمة الافتراضية 2) — مرشّح إعادة العينة (Resampling filter) المستخدم عند تغيير حجم الصورة. يمكن أن يكون أحد قيم التعداد PILImageResampling. لا يكون له أي تأثير إلا إذا كانت قيمة do_resize هي True.
  • do_rescale (bool، kwargs، اختياري، القيمة الافتراضية True) — ما إذا كان يجب إعادة تحجيم الصورة.
  • rescale_factor (float، kwargs، اختياري، القيمة الافتراضية 0.00392156862745098) — عامل إعادة التحجيم لإعادة تحجيم الصورة إذا كان do_rescale مضبوطًا على True.
  • do_normalize (bool، kwargs، اختياري، القيمة الافتراضية True) — ما إذا كان سيتم تطبيع الصورة.
  • image_mean (Union[float, list[float], tuple[float, ...]]، kwargs، اختياري، القيمة الافتراضية [0.485, 0.456, 0.406]) — متوسط الصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيين do_normalize إلى True.
  • image_std (Union[float, list[float], tuple[float, ...]]، kwargs، اختياري، القيمة الافتراضية [0.229, 0.224, 0.225]) — الانحراف المعياري للصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيين do_normalize إلى True.
  • do_center_crop (bool، kwargs، اختياري، القيمة الافتراضية False) — ما إذا كان يجب قص الصورة من المنتصف.
  • do_pad (bool، kwargs، اختياري) — ما إذا كان سيتم توسيط الصورة. يتم التوسيط إما إلى أكبر حجم في الدفعة أو إلى حجم مربع ثابت لكل صورة. تعتمد استراتيجية التوسيط الدقيقة على النموذج.
  • crop_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — حجم الصورة الناتجة بعد تطبيق center_crop.
  • data_format (Union[str, ~image_utils.ChannelDimension]، kwargs، اختياري) — يُؤمَّن دعم ChannelDimension.FIRST فقط. أُضيف من أجل التوافق مع المعالجات البطيئة.
  • input_data_format (Union[str, ~image_utils.ChannelDimension], kwargs, اختياري) — تنسيق بُعد القناة للصورة المدخلة. إذا لم يُضبط، يُستنتج تنسيق بُعد القناة من الصورة المدخلة. يمكن أن يكون أحد ما يلي:
    • "channels_first" أو ChannelDimension.FIRST: صورة بتنسيق (num_channels, height, width).
    • "channels_last" أو ChannelDimension.LAST: صورة بصيغة (الارتفاع، العرض، عدد القنوات).
    • "none" أو ChannelDimension.NONE: صورة بصيغة (الارتفاع، العرض).
  • device (Annotated[Union[str, torch.device, NoneType], None], kwargs) — الجهاز الذي تتم عليه معالجة مقاطع الفيديو. إذا لم يتم تعيينه، يُستنتج الجهاز من مقاطع الفيديو المدخلة.
  • do_sample_frames (bool، kwargs، اختياري، القيمة الافتراضية False) — ما إذا كان يجب أخذ عينات من الإطارات من الفيديو قبل المعالجة، أو معالجة الفيديو بالكامل.
  • video_metadata (Annotated[~video_utils.VideoMetadata | dict | list[dict | ~video_utils.VideoMetadata] | list[list[dict | ~video_utils.VideoMetadata]] | None, None], kwargs) — بيانات وصفية للفيديو تتضمن معلومات عن المدة الإجمالية، ومعدل الإطارات في الثانية (fps)، والإجمالي عدد الإطارات. ستُستخدم هذه البيانات لعينة الإطارات من الفيديو أو لحساب الطوابع الزمنية. لا تقم بتمرير أي بيانات وصفية إلا إذا كنت تحاول فك ترميز الفيديو يدوياً قبل المعالجة.
  • fps (Annotated[int | float | None, None], kwargs) — عدد الإطارات المستهدفة التي يجب أخذها كل ثانية عند تعيين do_sample_frames=True.
  • num_frames (Annotated[int | None, None]، kwargs) — الحد الأقصى لعدد الإطارات التي يجب أخذها عينة عند تعيين do_sample_frames=True.
  • return_metadata (bool، kwargs، اختياري، القيمة الافتراضية False) — ما إذا كان يجب إرجاع بيانات وصفية للفيديو أم لا. بيانات الوصفية للفيديو هي كائن يحتوي على معلومات حول مدة الفيديو، ومعدل الإطارات في الثانية (fps)، وخلفية فك الترميز، وما إلى ذلك.
  • return_tensors (Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — إذا تم ضبطه، فسيُعاد تينسورات من إطار عمل محدد. القيم المقبولة هي:
    • 'pt': إرجاع كائنات torch.Tensor من PyTorch.
    • 'np': إرجاع كائنات np.ndarray من NumPy.
  • **kwargs (VideosKwargs، اختياري) — خيارات معالجة إضافية لكل نمط (نص، صور، مقاطع فيديو، صوت). تُدرج المعلمات الخاصة بالنموذج أعلاه؛ راجع فئة TypedDict للحصول على القائمة الكاملة للحجج المدعومة.

ينشئ معالج فيديو من نوع VideomtVideoProcessor.

post_process_semantic_segmentation

< >

( outputstarget_sizes: listreturn_segmentation_scores: bool = False ) → list[torch.Tensor] or list[SemanticSegmentationPostProcessorOutput]

المعاملات

  • outputs (VideomtForUniversalSegmentationOutput) — المخرجات الخام للنموذج.
  • target_sizes (list[tuple[int, int]]) — قائمة من tuples من نوع (height, width) تتوافق مع الحجم النهائي المطلوب لكل تنبؤ. يجب أن يطابق طول القائمة عدد الإطارات في المخرجات.
  • return_segmentation_scores (bool, اختياري، القيمة الافتراضية False) — ما إذا كان يجب إرجاع درجات التقسيم (segmentation scores) إلى جانب خريطة التقسيم. عند تعيين True، يكون كل عنصر من القائمة المُرجعة من نوع SemanticSegmentationPostProcessorOutput ويحتوي على الحقول segmentation (معرّفات الفئات، الشكل (height, width)) وsegmentation_scores (الشكل (num_classes, height, width)).

يعيد

list[torch.Tensor] أو list[SemanticSegmentationPostProcessorOutput]

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

يحوّل مخرجات VideomtForUniversalSegmentation إلى تنبؤات تجزئة دلالية.

post_process_instance_segmentation

< >

( outputstarget_sizes: listthreshold: float = 0.5 ) → list[dict]

المعاملات

  • outputs (VideomtForUniversalSegmentationOutput) — المخرجات الخام للنموذج.
  • target_sizes (list[tuple[int, int]]) — قائمة من tuples من نوع (height, width) تتوافق مع الحجم النهائي المطلوب لكل تنبؤ. يجب أن يطابق طول القائمة عدد الإطارات في المخرجات.
  • threshold (float، اختياري، القيمة الافتراضية 0.5) — الحد الأدنى للدرجة المجمّعة للاحتفاظ بالكيان.

يعيد

list[dict]

قائمة من القواميس (واحد لكل إطار)، يحتوي كل منها على:

  • "segmentation" — torch.Tensor بأبعاد (height, width) يحتوي على معرّفات الكائنات (أو -1 للخلفية).
  • "segments_info" — قائمة من القواميس تحتوي على "id" و"label_id" و"score" لكل حالة.

يحوّل مخرجات VideomtForUniversalSegmentation إلى تنبؤات تجزئة الكائنات.

post_process_panoptic_segmentation

< >

( outputstarget_sizes: listthreshold: float = 0.8mask_threshold: float = 0.5overlap_mask_area_threshold: float = 0.8label_ids_to_fuse: set[int] | None = None ) → list[dict]

المعاملات

  • outputs (VideomtForUniversalSegmentationOutput) — المخرجات الخام للنموذج.
  • target_sizes (list[tuple[int, int]]) — قائمة من tuples (height, width) المقابلة للحجم النهائي المطلوب لكل تنبؤ. يجب أن يطابق الطول عدد الإطارات في المخرجات.
  • threshold (float، اختياري، القيمة الافتراضية 0.8) — الحد الأدنى للدرجة للاحتفاظ بالمقطع المتوقع.
  • mask_threshold (float، اختياري، القيمة الافتراضية 0.5) — العتبة المستخدمة لتحويل احتمالات القناع إلى قيم ثنائية.
  • overlap_mask_area_threshold (float، اختياري، القيمة الافتراضية 0.8) — حد التداخل لدمج الأقنعة في مقطع واحد.
  • label_ids_to_fuse (set[int]، اختياري) — معرّفات التسميات التي يجب دمجها عبر المناطق المنفصلة.

يعيد

list[dict]

قائمة من القواميس (واحد لكل إطار)، يحتوي كل منها على:

  • "segmentation" — torch.Tensor بأبعاد (height, width) يحتوي على معرّفات المقاطع (أو -1 للخلفية).
  • "segments_info" — قائمة من القواميس تحتوي على "id" و"label_id" و"score" لكل مقطع.

يحوّل مخرجات VideomtForUniversalSegmentation إلى تنبؤات تجزئة بانوبتية.

VideomtConfig

فئة transformers.VideomtConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonehidden_size: int = 1024num_hidden_layers: int = 24num_attention_heads: int = 16hidden_act: str = 'gelu'hidden_dropout_prob: float | int = 0.0initializer_range: float = 0.02layer_norm_eps: float = 1e-06image_size: int | list[int] | tuple[int, int] = 640patch_size: int | list[int] | tuple[int, int] = 16num_channels: int = 3mlp_ratio: int = 4layerscale_value: float = 1.0drop_path_rate: float | int = 0.0num_upscale_blocks: int = 2attention_dropout: float | int = 0.0use_swiglu_ffn: bool = Falsenum_blocks: int = 4no_object_weight: float = 0.1class_weight: float = 2.0mask_weight: float = 5.0dice_weight: float = 5.0train_num_points: int = 12544oversample_ratio: float = 3.0importance_sample_ratio: float = 0.75num_queries: int = 200num_register_tokens: int = 4 )

المعاملات

  • hidden_size (int، اختياري، القيمة الافتراضية 1024) — أبعاد التمثيلات المخفية.
  • num_hidden_layers (int، اختياري، القيمة الافتراضية 24) — عدد الطبقات المخفية في مُفكِّك Transformer.
  • num_attention_heads (int، اختياري، القيمة الافتراضية 16) — عدد رؤوس الانتباه لكل طبقة انتباه في مُفكِّك Transformer.
  • hidden_act (str، اختياري، القيمة الافتراضية gelu) — دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال، "gelu"، "relu"، "silu"، وما إلى ذلك.
  • hidden_dropout_prob (Union[float, int]، اختياري، القيمة الافتراضية 0.0) — احتمالية الإسقاط (dropout) لجميع الطبقات المتصلة بالكامل في التضمينات، والمُشفِّر، والمُجمِّع.
  • initializer_range (float، اختياري، القيمة الافتراضية 0.02) — الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان.
  • layer_norm_eps (float, اختياري، القيمة الافتراضية 1e-06) — قيمة الإيبسلون المستخدمة في طبقات تطبيع الطبقة.
  • image_size (Union[int, list[int], tuple[int, int]]، اختياري، القيمة الافتراضية 640) — حجم (دقة) كل صورة.
  • patch_size (Union[int, list[int], tuple[int, int]]، اختياري، القيمة الافتراضية 16) — حجم (دقة) كل رقعة.
  • num_channels (int، اختياري، القيمة الافتراضية 3) — عدد قنوات الإدخال.
  • mlp_ratio (int، اختياري، القيمة الافتراضية 4) — نسبة بُعد مخفي MLP إلى بُعد التضمين.
  • layerscale_value (float، اختياري، القيمة الافتراضية 1.0) — القيمة الأولية لمعامل LayerScale.
  • drop_path_rate (Union[float, int], اختياري، القيمة الافتراضية 0.0) — معدل إسقاط المسار (Drop path) لدمج البقع (patch fusion).
  • num_upscale_blocks (int، اختياري، القيمة الافتراضية 2) — عدد كتل رفع الدقة المستخدمة في فك الترميز أو رأس التقطيع.
  • attention_dropout (Union[float, int]، اختياري، القيمة الافتراضية 0.0) — نسبة إسقاط (dropout) لاحتمالات الانتباه.
  • use_swiglu_ffn (bool، اختياري، القيمة الافتراضية False) — ما إذا كان سيتم استخدام شبكة العصبونات الأمامية SwiGLU.
  • num_blocks (int، اختياري، القيمة الافتراضية 4) — عدد كتل الميزات أو المراحل في البنية.
  • no_object_weight (float، اختياري، القيمة الافتراضية 0.1) — وزن الدالة الخاسرة لفئة "لا يوجد كائن" في التقطيع البانورامي/المشهدي.
  • class_weight (float، اختياري، القيمة الافتراضية 2.0) — وزن الدالة الخاسرة لأهداف التصنيف.
  • mask_weight (float، اختياري، القيمة الافتراضية 5.0) — وزن الدالة الخاسرة للتنبؤ بالقناع.
  • dice_weight (float، اختياري، القيمة الافتراضية 5.0) — الوزن النسبي لخسارة الداي (dice loss) في خسارة التقطيع البانورامي (panoptic segmentation).
  • train_num_points (int، اختياري، القيمة الافتراضية 12544) — عدد النقاط التي يتم أخذ عينات منها لحساب خسارة القناع (mask loss) أثناء التدريب.
  • oversample_ratio (float، اختياري، القيمة الافتراضية 3.0) — نسبة الإفراط في العينة المستخدمة في أخذ العينات من النقاط لتدريب الأقنعة.
  • importance_sample_ratio (float، اختياري، القيمة الافتراضية 0.75) — نسبة النقاط التي يتم أخذ عينة منها بناءً على الأهمية أثناء التدريب.
  • num_queries (int، اختياري، القيمة الافتراضية 200) — عدد استعلامات الكائنات في Transformer.
  • num_register_tokens (int، اختياري، القيمة الافتراضية 4) — عدد رموز التسجيل القابلة للتعلّم المضافة إلى مدخلات المحوّل.

هذه فئة الإعدادات المخزنة لإعدادات نموذج VideomtModel. تُستخدم لاستحداث نموذج Videomt وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ tue-mps/videomt-dinov2-small-ytvis2019

ترث كائنات التهيئة من PreTrainedConfig ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ PreTrainedConfig لمزيد من المعلومات.

مثال:

>>> from transformers import VideomtConfig, VideomtForUniversalSegmentation

>>> # Initialize configuration
>>> config = VideomtConfig()

>>> # Initialize model
>>> model = VideomtForUniversalSegmentation(config)

>>> # Access config
>>> config = model.config

VideomtPreTrainedModel

فئة transformers.VideomtPreTrainedModel

< >

( config: PreTrainedConfig*inputs**kwargs )

المعاملات

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

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

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

forward

( *args**kwargs )

قيمة وهمية لمسار منقّط (مثل torch.float32): سلاسل الوصول إلى السمات، والاستدعاءات تتصرف كمُزيّنات (decorators) مرّرة، وrepr هو المسار المنقّط، وعند استخدامه كصنف أساسي يُستبدل بصنف أساسي من نوع type عادي (بموجب __mro_entries__ في PEP 560)، بحيث تحتفظ الصنوف الفرعية الحقيقية بفئة ميتا (metaclass) عادية، وتقرأ inspect.signature دالة __init__ الحقيقية الخاصة بها بدلاً من تلك الوهمية.

VideomtForUniversalSegmentation

فئة transformers.VideomtForUniversalSegmentation

< >

( config: VideomtConfig )

المعاملات

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

نموذج Videomt مع رأس في الأعلى للتجزئة على مستوى الكائنات/الدلالية/الشاملة.

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

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

forward

< >

( pixel_values_videos: typing.Optional[torch.Tensor] = Nonemask_labels: list[torch.Tensor] | None = Noneclass_labels: list[torch.Tensor] | None = Nonepatch_offsets: list[torch.Tensor] | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → VideomtForUniversalSegmentationOutput or tuple(torch.Tensor)

المعاملات

  • pixel_values_videos (torch.Tensor، اختياري) — مدخلات فيديو بأبعاد (batch_size, num_frames, num_channels, height, width).
  • mask_labels (list[torch.Tensor]، اختياري) — غير مدعوم لإدخالات الفيديو ذات الأبعاد الخمسة.
  • class_labels (list[torch.LongTensor]، اختياري) — غير مدعوم لإدخالات الفيديو ذات الأبعاد الخمسة.
  • patch_offsets (list[torch.Tensor]، اختياري) — غير مستخدم في مدخلات الفيديو، ويُحفظ فقط من أجل التوافق المعياري.

يعيد

VideomtForUniversalSegmentationOutput أو tuple(torch.Tensor)

VideomtForUniversalSegmentationOutput أو مجموعة مرتبة من torch.Tensor (إذا تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة اعتماداً على الإعداد (VideomtConfig) والمدخلات.

تُعيد طريقة VideomtForUniversalSegmentation الخاصة بالتقديم (forward) تعريف الطريقة الخاصة __call__.

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

  • loss (torch.Tensor، اختياري) — الخسارة المحسوبة، تُعاد عند وجود التسميات.
  • class_queries_logits (torch.Tensor، اختياري) — متجه (Tensor) على شكل (batch_size, num_queries, num_labels + 1) يمثل الفئات المقترحة لكل استعلام. لاحظ أن + 1 ضروري لأننا ندمج فئة فارغة (null class).
  • masks_queries_logits (torch.Tensor، اختياري) — متجه ذو شكل (batch_size, num_queries, height, width) يمثل الأقنعة المقترحة لكل استعلام.
  • last_hidden_state (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). حالات مخفية لجميع طبقات النموذج.
  • attentions (tuple(tuple(torch.Tensor))، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من tuple(torch.Tensor) (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length). أوزان الانتباه الذاتي والتقاطعي من فاحش التحويل (transformer decoder).
Update on GitHub