Source code for torchaug.transforms._temporal

# @Copyright: CEA-LIST/DIASI/SIALV/ (2023-    )
# @Author: CEA-LIST/DIASI/SIALV/ <julien.denize@cea.fr>
# @License: CECILL-C
#
# Code partially based on Torchvision (BSD 3-Clause License), available at:
#   https://github.com/pytorch/vision

from __future__ import annotations

from typing import Any, Dict

import torch

from . import functional as F
from ._transform import Transform


[docs] class UniformTemporalSubsample(Transform): """Uniformly subsample ``num_samples`` indices from the temporal dimension of the video. Videos are expected to be of shape ``[..., T, C, H, W]`` where ``T`` denotes the temporal dimension. When ``num_samples`` is larger than the size of temporal dimension of the video, it will sample frames based on nearest neighbor interpolation. Args: num_samples: The number of equispaced samples to be selected. """ _transformed_types = (torch.Tensor,) def __init__(self, num_samples: int): super().__init__() self.num_samples = num_samples def _transform(self, inpt: Any, params: Dict[str, Any]) -> Any: return self._call_kernel(F.uniform_temporal_subsample, inpt, self.num_samples)