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
决定。目前支持时间、空间和体积的上采样,即预期的输入形状为3维、4维或5维。
输入维度被解释为以下形式: 迷你批次 x 通道 x [可选深度] x [可选高度] x 宽度。
可用于上采样的模式有:最近邻、线性(仅限3D)、双线性、双三次(仅限4D)、三线性(仅限5D)
- Parameters
输入 (张量) – 输入张量
scale_factor (float 或 Tuple[float]) – 空间大小的乘数。如果是一个元组,则必须与输入大小匹配。
模式 (字符串) – 用于上采样的算法:
'nearest'
|'linear'
|'bilinear'
|'bicubic'
|'trilinear'
。默认值:'nearest'
align_corners (布尔值, 可选) – 几何上,我们将输入和输出的像素视为正方形而不是点。 如果设置为
True
,输入和输出张量通过其角像素的中心点对齐,保留角像素的值。 如果设置为False
,输入和输出张量通过其角像素的角点对齐,并且插值使用边缘值填充边界外的值,使得此操作在保持scale_factor
相同的情况下与输入大小无关。这仅在mode
为'linear'
、'bilinear'
、'bicubic'
或'trilinear'
时有效。 默认值:False
注意
使用
mode='bicubic'
时,可能会导致过冲,换句话说,它可能会产生小于0或大于255的值。如果您希望在显示图像时减少过冲,可以显式调用result.clamp(min=0, max=255)
。警告
当
align_corners = True
时,线性插值模式(线性、双线性和三线性)不会按比例对齐输出和输入像素,因此输出值可能会依赖于输入大小。在0.3.1版本之前,这是这些模式的默认行为。自那时起,默认行为变为align_corners = False
。 请参阅Upsample
以了解此设置如何影响输出的具体示例。