<
pytorch的interpolate函数
>
上一篇

实用软件整理
下一篇

Docker命令记录
pytorch中的上下采样

torch.nn.functional.interpolate函数

参考文档

  1. pytorch官方文档
  2. 立夏之光的知乎文章:详细介绍了align_corners的涵义

interpolate

定义

torch.nn.functional.interpolate(input, size=None, scale_factor=None, mode='nearest', align_corners=None)

说明

参数

注意

如果mode使用bicubic时,可能生成的图像有大于255或小于0的值,可以使用tensor.clamp(min=0, max=255)做截断。

警告

0.3.1版本之前默认值是True,之后默认值为False,使用别人的源码时要注意一下这个问题。

图解align_corners参数

参考 立夏之光的知乎文章

原图

原图

上采样

上采样

左边为False,右边为True

说明

两种方式在中间像素的插值上区别不大,主要差别还是边界像素。一般的任务中边界的值不那么重要,但是会影响语义分割的mIoU指标,使用True能更好的保留边界。

插值方式的区别

飞信天下的csdn blog

已知bug

具体改动见我的pull request

CPU模式下,如果scale_factor为1时,使用bicubic插值方式,本来预计的处理结果是把原图复制一下,不做任何处理。但是处理的时候忘了乘mini-batch了,导致复制的时候只复制了n==1的图,其它的图均为初始值0

Top
Foot