[一起学习pytorch吧]之interpolate函数

今天主要翻译一下官方的interpolate函数~
链接:https://pytorch.org/docs/master/nn.functional.html?highlight=interpolate#torch.nn.functional.interpolate

Interpolate

torch.nn.functional.interpolate(input: torch.Tensor, size: Optional[int] = None, scale_factor: Optional[List[float]] = None, mode: str = ‘nearest’, align_corners: Optional[bool] = None, recompute_scale_factor: Optional[bool] = None) → torch.Tensor

函数作用:向下/向上采样输入到任意给定的尺寸或比例。
其中,差值算法是由mode参数来决定的。目前支持时间采样、空间采样和体积采样,即输入为3-D,4-D或5-D。
输入的维度为mini-batch x channels x [optional depth] x [optional height] x width。
用于resize的mode有6种选择:nearest, linear (仅用于3D), bilinear, bicubic (仅用于4D), trilinear (仅用于5D), area。

参数

  • input(Tensor)——输入的tensor
  • size(int or Tuple[int] or Tuple[int, int] or Tuple[int, int, int])——输出的大小
  • scale_factor (float or Tuple[float])——尺寸的乘子(应该就是缩放因子的意思)。如果是tuple,需要与输入的大小相匹配
  • mode (str)——上采样所用的算法:‘nearest’ | ‘linear’ | ‘bilinear’ | ‘bicubic’ | ‘trilinear’ | ‘area’。默认值是 ‘nearest’
  • align_corners (bool, optional)——几何上,我们将输入和输出的像素看作方形而不是点。如果设为True,输入和输出tensor按照角点像素的中心点来对齐,并保留角点像素的值。如果设为False,输入和输出tensor按照角点像素的角点来对齐,并且插值使用边界值填充边界外的值,在缩放因子保持不变的情况下使此操作与输入的大小无关。这只在 ‘linear’, ‘bilinear’, ‘bicubic’ 或 'trilinear’模式下有效。默认值:False。
  • recompute_scale_factor (bool, optional)——重新计算用于插值运算的scale_factor。当scale_factor以参数的形式被传进来后,它被用于计算输出的大小。如果recompute_scale_factor为False或没有指定,传入的scale_factor将被用于插值计算。否则,将会基于输入和输出的大小重新计算一个用于插值计算的scale_factor(即计算结果将与传入计算的输出大小相同)。当scale_factor是浮点数时,由于四舍五入和精度问题,重新计算的scale_factor可能会和传入的scale_factor不同。

注意

当mode='bicubic’时,有可能会出现越界问题,也就是说可能会产生负的或超过255的像素值。在显示图像时,可以通过result.clamp(min=0, max=255)来解决越界问题。

警告

  1. 当align_corners = True时,线性插值模式(linear、bilinear 和 trilinear)不会按照比例对齐输出和输入像素,因此输出值可以依据输入的尺寸。0.3.1版本之前,align_corners = True为默认值。之后的默认值为align_corners = False。
  2. 当scale_factor明确时,如果recompute_scale_factor=True,scale_factor将被用于计算output_size,并且output_size将被用于推理插值运算的新的scale。在1.6.0版本中recompute_scale_factor的默认值变为False,并且scale_factor被用于插值运算。
  3. 当在CUDA设备上给定tensor时,可能会产生不确定的梯度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值