torch.nn.functional.upsample
-
torch.nn.functional.upsample(input, size=None, scale_factor=None, mode='nearest', align_corners=None)[исходный код] -
Увеличивает размер входных данных.
Предоставленный тензор увеличивается до заданного
sizeили до заданногоscale_factorПредупреждение
Эта функция устарела; вместо неё следует использовать
torch.nn.functional.interpolate(). Это эквивалентноnn.functional.interpolate(...).Примечание
Эта операция может приводить к недетерминированным градиентам при работе с тензорами на устройстве CUDA. Подробнее см. в разделе Воспроизводимость.
Используемый алгоритм увеличения размера определяется параметром
mode.В настоящее время поддерживается увеличение размера временных, пространственных и объёмных данных, то есть ожидаются входные данные размерностью 3-D, 4-D или 5-D.
Размерности входных данных интерпретируются в следующем виде:
mini-batch x channels x [optional depth] x [optional height] x width.Доступны следующие режимы увеличения размера:
nearest,linear(только для 3D),bilinear,bicubic(только для 4D),trilinear(только для 5D),lanczos(только для 4D)- Параметры:
-
- input (Тензор) – входной тензор
- size (int or Tuple[int] or Tuple[int, int] or Tuple[int, int, int]) – размер выходных пространственных данных.
- scale_factor (float or Tuple[float]) – множитель для размера пространственных данных. Если это кортеж, его длина должна соответствовать размерности входных данных.
-
mode (str) – алгоритм увеличения размера:
'nearest'|'linear'|'bilinear'|'bicubic'|'trilinear'|'lanczos'. По умолчанию:'nearest' -
align_corners (bool, optional) – С геометрической точки зрения пиксели входных и выходных данных рассматриваются как квадраты, а не как точки. Если задано значение
True, входные и выходные тензоры выравниваются по центральным точкам угловых пикселей, сохраняя значения угловых пикселей. Если задано значениеFalse, входные и выходные тензоры выравниваются по угловым точкам угловых пикселей, а при интерполяции для значений за пределами границ используются значения на краях. Это делает операцию независимой от размера входных данных, еслиscale_factorостаётся неизменным. Параметр влияет на результат только при значенииmode, равном'linear','bilinear','bicubic'или'trilinear'. По умолчанию:False
Примечание
При использовании
mode='bicubic'илиmode='lanczos'возможно превышение диапазона, то есть могут появляться отрицательные значения или значения больше 255 для изображений. Явно вызовитеresult.clamp(min=0, max=255), если хотите уменьшить превышение диапазона при отображении изображения.Предупреждение
При использовании
align_corners = Trueрежимы линейной интерполяции (linear,bilinearиtrilinear) не обеспечивают пропорционального выравнивания выходных и входных пикселей, поэтому выходные значения могут зависеть от размера входных данных. До версии 0.3.1 это было поведением по умолчанию для этих режимов. С тех пор поведением по умолчанию являетсяalign_corners = False. ВUpsampleприведены конкретные примеры влияния этого параметра на результаты.
© 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.upsample.html