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-D、4-D 或 5-D。
输入维度以以下形式解释:小批量 x 通道 x [可选深度] x [可选高度] x 宽度。
可用于上采样的模式有: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以了解有关这如何影响输出的具体示例。