快捷键

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][source]

对输入进行下/上采样。

张量插值到给定的 size 或给定的 scale_factor

用于插值的算法由 mode 确定。

目前支持时间、空间和体积采样,即期望的输入形状为 3-D、4-D 或 5-D。

输入维度以以下形式解释:批大小 x 通道 x [可选深度] x [可选高度] x 宽度。

可用的缩放模式有:最近邻、线性(仅 3D)、双线性、双三次(仅 4D)、三线性(仅 5D)、面积、最近邻精确

参数:
  • 输入(张量)- 输入张量

  • 大小(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 计算输出大小。计算出的输出大小将用于推断新的插值尺度。注意,当 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' 与有缺陷的 OpenCV 的 INTER_NEAREST 插值算法匹配。

注意

在使用模式 ['linear', 'bilinear', 'bicubic', 'trilinear', 'area'] 时,CUDA 上 dtype float16 的梯度在上采样操作中可能不准确。有关更多详细信息,请参阅 issue#104157 的讨论。

注意

当在 CUDA 设备上给定张量时,此操作可能会产生非确定性的梯度。有关更多信息,请参阅可重现性。


© 版权所有 PyTorch 贡献者。

使用 Sphinx 构建,并使用 Read the Docs 提供的主题。

文档

PyTorch 的全面开发者文档

查看文档

教程

深入了解初学者和高级开发者的教程

查看教程

资源

查找开发资源并获得您的疑问解答

查看资源