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 papers 19.02.2026 и добавлена в Hugging Face Transformers 25.03.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 вводит лёгкий механизм распространения запросов, который передаёт информацию между кадрами, повторно используя запросы из предыдущего кадра. Для баланса между этим и адаптивностью к новому контенту используется стратегия слияния запросов, которая комбинирует распространённые запросы с набором обученных запросов, не зависящих от временного контекста. В результате VidEoMT получает преимущества трекера без дополнительной сложности, достигая конкурентоспособной точности при скорости в 5–10 раз выше и работая со скоростью до 160 FPS с бэкбоном ViT-L.

Советы:

  • VidEoMT в настоящее время поддерживает только backbone DINOv2 (с register tokens). Доступные размеры моделей: ViT-S, ViT-B и ViT-L.
  • Модель принимает видео как вход в виде 5-мерного тензора с формой (batch_size, num_frames, 3, height, width).
  • VidEoMT поддерживает три задачи сегментации видео: сегментацию инстансов, семантическую сегментацию и паноптическую сегментацию, для каждой из которых предусмотрен собственный метод постобработки в видео-процессоре.

Эта модель была предоставлена пользователем nielsr. Исходный код можно найти здесь.

Информация об архитектуре

VidEoMT основан на EoMT, который использует обычный Vision Transformer, предварительно обученный на DINOv2, с register tokens в качестве модели сегментации. EoMT вводит обучаемые object queries и лёгкий mask prediction head непосредственно внутри энкодера ViT, что исключает необходимость в декодерах, специфичных для конкретной задачи.

VidEoMT расширяет этот подход на видео с двумя ключевыми дополнениями:

  1. Передача запросов: объектные запросы из предыдущего кадра переносятся в следующий кадр с помощью линейной проекции (query_updater), что обеспечивает временнóе рассуждение без выделенного трекера.
  2. Слияние запросов: распространённые запросы добавляются к набору обученных запросов, не зависящих от времени, что позволяет модели адаптироваться к новым объектам, появляющимся в видео.

Ранние слои энкодера обрабатывают все кадры независимо (параллельно), тогда как финальные блоки работают по кадрам с объединёнными запросами, формируя предсказания масок и классов для каждого кадра.

Примеры использования

Используйте реализацию VidEoMT от Hugging Face для инференса с предобученными моделями. Приведённые ниже примеры переиспользуют публичный чекпоинт tue-mps/videomt-dinov2-small-ytvis2019, чтобы продемонстрировать постобработку видео для instance, semantic и panoptic сегментации на примере видео.

Сегментация экземпляров на видео

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, optional, по умолчанию True) — Следует ли преобразовать изображение в RGB.
  • do_resize (bool, kwargs, optional, по умолчанию True) — Указывает, нужно ли изменять размер изображения.
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, по умолчанию {'height' -- 640, 'width': 640}): Определяет максимальные размеры входных данных для модели.
  • default_to_square (bool, kwargs, optional, по умолчанию True) — Определяет, следует ли по умолчанию использовать квадратное изображение при изменении размера, если size задано как int.
  • resample (Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, по умолчанию 2) — Фильтр ресемплинга, используемый при изменении размера изображения. Может быть одним из значений перечисления PILImageResampling. Влияет только в том случае, если do_resize установлено в True.
  • do_rescale (bool, kwargs, optional, по умолчанию True) — Указывает, следует ли выполнять рескейлинг изображения.
  • rescale_factor (float, kwargs, optional, по умолчанию 0.00392156862745098) — Коэффициент масштабирования, применяемый к изображению, если do_rescale установлен в True.
  • do_normalize (bool, kwargs, optional, по умолчанию True) — Указывает, следует ли нормализовать изображение.
  • image_mean (Union[float, list[float], tuple[float, ...]], kwargs, optional, по умолчанию [0.485, 0.456, 0.406]) — Среднее значение изображения, используемое для нормализации. Влияет только в том случае, если do_normalize установлено в True.
  • image_std (Union[float, list[float], tuple[float, ...]], kwargs, optional, по умолчанию [0.229, 0.224, 0.225]) — Стандартное отклонение изображения, используемое для нормализации. Влияет только в том случае, если do_normalize установлено в True.
  • do_center_crop (bool, kwargs, optional, по умолчанию False) — Выполнять ли центрированный обрез изображения.
  • do_pad (bool, kwargs, optional) — Определяет, нужно ли выравнивать изображение. Выравнивание выполняется либо до максимального размера в батче, либо до фиксированного квадратного размера для каждого изображения. Точная стратегия выравнивания зависит от модели.
  • crop_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Размер выходного изображения после применения center_crop.
  • data_format (Union[str, ~image_utils.ChannelDimension], kwargs, optional) — Поддерживается только 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: изображение в формате (height, width).
  • device (Annotated[Union[str, torch.device, NoneType], None], kwargs) — Устройство, на котором будут обрабатываться видео. Если не задано, устройство определяется на основе входных видео.
  • do_sample_frames (bool, kwargs, optional, по умолчанию 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, optional, по умолчанию False) — Указывает, следует ли возвращать метаданные видео. Метаданные видео — это объект, содержащий информацию о длительности видео, частоте кадров (fps), используемом бэкенде декодирования и т. д.
  • return_tensors (Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Если задано, возвращает тензоры конкретного фреймворка. Допустимые значения:
    • 'pt': возвращает объекты torch.Tensor PyTorch.
    • 'np': возвращает объекты NumPy np.ndarray.
  • **kwargs (VideosKwargs, optional) — Дополнительные параметры обработки для каждой модальности (текст, изображения, видео, аудио). Специфичные для модели параметры перечислены выше; полный список поддерживаемых аргументов см. в классе 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]]) — Список кортежей (height, width), соответствующих требуемому итоговому размеру каждого предсказания. Длина должна совпадать с количеством кадров в выводе.
  • 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) соответствует целевому размеру.

Преобразует выход VideomtForUniversalSegmentation в предсказания семантической сегментации.

post_process_instance_segmentation

< >

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

Параметры

  • outputs (VideomtForUniversalSegmentationOutput) — Сырые выходные данные модели.
  • target_sizes (list[tuple[int, int]]) — Список кортежей (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]]) — Список кортежей (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) — Значение epsilon, используемое слоями нормализации.
  • 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 для слияния патчей.
  • 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 в функции потерь паноптической сегментации.
  • train_num_points (int, необязательный, по умолчанию 12544) — Количество точек, отбираемых для вычисления потерь маски во время обучения.
  • 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): цепочки доступа к атрибутам и вызовы работают как пропускные декораторы, repr возвращает путь с точками, а использование в качестве базового класса подставляет обычный базовый класс type (PEP 560 __mro_entries__), благодаря чему реальные дочерние классы сохраняют обычный метакласс, а 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], необязательный) — Не поддерживается для 5D-видеовходов.
  • class_labels (list[torch.LongTensor], необязательный) — Не поддерживается для 5D-видеовходов.
  • patch_offsets (list[torch.Tensor], необязательный) — Не используется для видеовходов и сохраняется только для модульной совместимости.

Возвращает

VideomtForUniversalSegmentationOutput или tuple(torch.Tensor)

VideomtForUniversalSegmentationOutput или кортеж из torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные элементы в зависимости от конфигурации (VideomtConfig) и входных данных.

Метод forward класса VideomtForUniversalSegmentation переопределяет специальный метод __call__.

Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.

  • loss (torch.Tensor, необязательный) — вычисленная функция потерь, возвращается при наличии меток.
  • class_queries_logits (torch.Tensor, optional) — тензор формы (batch_size, num_queries, num_labels + 1), представляющий предложенные классы для каждого запроса. Обратите внимание, что + 1 необходимо, так как мы учитываем нулевой класс.
  • 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)), optional, возвращается, если передано output_attentions=True или если config.output_attentions=True) — Кортеж tuple(torch.Tensor) (по одному для каждого слоя) формы (batch_size, num_heads, sequence_length, sequence_length). Веса Self и Cross Attention из декодера трансформера.
Update on GitHub