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
决定。目前支持时序、空间和体积上的上采样,输入的数据形状可以是三维、四维或五维。
输入维度的解释格式为:小批量 x 通道数 x [可选深度] x [可选高度] x 宽度。
可用的上采样模式有:nearest、linear(仅3D)、bilinear、bicubic(仅4D)、trilinear(仅5D)
- 参数
-
-
输入 (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, optional) – 从几何角度来看,我们将输入和输出的像素视为正方形而非点。如果设置为
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 = True
。从那时起,默认行为改为align_corners = False
。有关此设置如何影响输出的具体示例,请参见Upsample
。