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
确定。目前支持时间、空间和体积上采样,即期望的输入形状为 3D、4D 或 5D。
The input dimensions are interpreted in the form: 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, 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 = False
。有关此如何影响输出的具体示例,请参阅Upsample
。