torch.nn.functional.upsample
-
torch.nn.functional.upsample(input, size=None, scale_factor=None, mode='nearest', align_corners=None)[source] -
Увеличивает размер входных данных до заданного
sizeили заданногоscale_factor.Предупреждение
Эта функция устарела и рекомендуется использовать
torch.nn.functional.interpolate(). Это эквивалентноnn.functional.interpolate(...).Примечание
Эта операция может производить недетерминированные градиенты при использовании тензоров на устройстве CUDA. Подробнее см. Воспроизводимость.
Алгоритм, используемый для увеличения размера, определяется
mode.В настоящее время поддерживается увеличение размера по временной, пространственной и объёмной оси, т.е. ожидаемые входные данные имеют форму 3D, 4D или 5D.
Размерности входных данных интерпретируются в виде:
mini-batch x channels x [optional depth] x [optional height] x width.Доступные режимы увеличения размера:
nearest,linear(только для 3D),bilinear,bicubic(только для 4D),trilinear(только для 5D)- Параметры
-
- input (Tensor) – входной тензор
- size (int или Tuple[int] или Tuple[int, int] или Tuple[int, int, int]) – размер выходного пространства.
- scale_factor (float или Tuple[float]) – множитель для размера пространственных осей. Должен соответствовать размеру входных данных, если это кортеж.
-
mode (str) – алгоритм, используемый для увеличения размера:
'nearest'|'linear'|'bilinear'|'bicubic'|'trilinear'. По умолчанию:'nearest' -
align_corners (bool, необязательно) – Геометрически мы рассматриваем пиксели входных и выходных данных как квадраты, а не точки. Если установлено
True, входные и выходные тензоры выравниваются по центрам углов пикселей, сохраняя значения в углах пикселей. Если установленоFalse, входные и выходные тензоры выравниваются по углам пикселей, и интерполяция использует заполнение значением края для значений за пределами границ, делая эту операцию независимой от размера входных данных при сохраненииscale_factor. Это имеет эффект только тогда, когдаmodeравно'linear','bilinear','bicubic'или'trilinear'. По умолчанию:False
Примечание
При использовании
mode='bicubic', возможно переполнение, другими словами, могут получиться отрицательные значения или значения, превышающие 255 для изображений. Явно вызовитеresult.clamp(min=0, max=255), если хотите уменьшить переполнение при отображении изображения.Предупреждение
При использовании
align_corners = True, линейные интерполирующие режимы (linear,bilinear, иtrilinear) не обеспечивают пропорционального выравнивания пикселей выходного и входного тензоров, и, следовательно, выходные значения могут зависеть от размера входных данных. Это было стандартным поведением для этих режимов до версии 0.3.1. С тех пор стандартным поведением являетсяalign_corners = False. См.Upsampleдля конкретных примеров, как это влияет на выходные данные.
© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/2.1/generated/torch.nn.functional.upsample.html