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