Spec-Zone.ru › PyTorch 2.14

torch.nn.functional.interpolate

torch.nn.functional.interpolate(input, size=None, scale_factor=None, mode='nearest', align_corners=None, recompute_scale_factor=None, antialias=False) [source]

Увеличивает или уменьшает размер входных данных.

Тензор интерполируется до заданного size или до заданного scale_factor

Алгоритм интерполяции определяется параметром mode.

В настоящее время поддерживается временная, пространственная и объемная выборка, то есть ожидаются входные данные размерностью 3, 4 или 5.

Размерности входных данных интерпретируются в виде: mini-batch x channels x [optional depth] x [optional height] x width.

Доступные режимы изменения размера: nearest, linear (только для 3D), bilinear, bicubic (только для 4D), trilinear (только для 5D), lanczos (только для 4D, только CPU), area, nearest-exact

Параметры:
  • input (Tensor) – входной тензор
  • size (int or Tuple[int] or Tuple[int, int] or Tuple[int, int, int]) – размер выходного пространства.
  • scale_factor (float or Tuple[float]) – множитель размера пространства. Если scale_factor — кортеж, его длина должна соответствовать числу пространственных размерностей; input.dim() - 2.
  • mode (str) – алгоритм увеличения размера: 'nearest' | 'linear' | 'bilinear' | 'bicubic' | 'trilinear' | 'lanczos' | 'area' | 'nearest-exact'. По умолчанию: 'nearest'
  • align_corners (bool, optional) – С геометрической точки зрения пиксели входных и выходных данных рассматриваются как квадраты, а не как точки. Если задано значение True, входной и выходной тензоры выравниваются по центральным точкам угловых пикселей, сохраняя значения этих пикселей. Если задано значение False, входной и выходной тензоры выравниваются по угловым точкам угловых пикселей, а при интерполяции для значений за границами используются значения краев; благодаря этому операция не зависит от размера входных данных, если scale_factor остается неизменным. Это влияет только на режимы mode: 'linear', 'bilinear', 'bicubic' или 'trilinear'. По умолчанию: None. Значение None оставляет align_corners незаданным для режимов, в которых он не используется. В режимах, использующих align_corners, значение None рассматривается как False.
  • recompute_scale_factor (bool, optional) – повторно вычислять scale_factor для использования при интерполяции. Если recompute_scale_factor равно True, необходимо передать scale_factor, а scale_factor используется для вычисления выходного size. Вычисленное выходное size будет использовано для определения новых коэффициентов масштабирования для интерполяции. Обратите внимание: если scale_factor имеет тип с плавающей запятой, оно может отличаться от повторно вычисленного scale_factor из-за округления и проблем с точностью. Если recompute_scale_factor равно False, для интерполяции напрямую используются size или scale_factor. По умолчанию: None.
  • antialias (bool, optional) – флаг включения сглаживания. По умолчанию: False. При использовании сглаживания вместе с align_corners=False результат интерполяции при уменьшении размера будет совпадать с результатом Pillow. Поддерживаемые режимы: 'bilinear', 'bicubic', 'lanczos'.
Тип возвращаемого значения:

Tensor

Примечание

При использовании mode='bicubic' или mode='lanczos' возможен выброс значений за допустимый диапазон. Для некоторых типов данных это может приводить к появлению отрицательных значений или значений больше 255 для изображений. Чтобы уменьшить выброс значений при отображении изображения, явно вызовите result.clamp(min=0,max=255). Для входных данных uint8 операция насыщенного приведения типа выполняется автоматически. Поэтому вручную выполнять операцию clamp не требуется.

Примечание

В режиме mode='lanczos' используется оконный sinc-фильтр Lanczos-3 (6 отсчетов), для которого требуется antialias=True. Он поддерживает только входные данные 4D (то есть двумерные пространственные данные) и только CPU. При использовании antialias=True и align_corners=False результат совпадает с фильтром ресэмплинга Image.LANCZOS из PIL.

Примечание

Режим mode='nearest-exact' соответствует алгоритмам интерполяции ближайшего соседа в Scikit-Image и PIL и исправляет известные проблемы с mode='nearest'. Этот режим добавлен для обеспечения обратной совместимости. Режим mode='nearest' соответствует некорректному алгоритму интерполяции INTER_NEAREST в OpenCV.

Примечание

Градиенты для типа данных float16 на CUDA при операции увеличения размера могут быть неточными при использовании режимов ['linear', 'bilinear', 'bicubic', 'trilinear', 'area']. Подробнее см. обсуждение в issue#104157.

Примечание

Эта операция может приводить к недетерминированным градиентам, если тензоры находятся на устройстве CUDA. Дополнительные сведения см. в разделе Воспроизводимость.

© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/generated/torch.nn.functional.interpolate.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API