美文网首页
nn.ConvTranspose2d的参数output_padd

nn.ConvTranspose2d的参数output_padd

作者: zelda2333 | 来源:发表于2020-11-20 16:13 被阅读0次

原文:nn.ConvTranspose2d的参数output_padding的作用

same卷积操作:
是通过padding使得卷积之后输出的特征图大小保持不变(相对于输入特征图),不代表得到的输出特征图的大小与输入特征图的大小完全相同,<u>而是</u>他们之间的比例保持为 输入特征图大小/输出特征图大小 = stride

举例:

比如输入特征图为6*6,stride=2, kernel_size = 3, 进行same padding得到输出特征图为3*3 (6 / 2 = 3)

如果输入特征图为5*5,stride=2,kernel_size = 3,进行same padding,那么也会得到输出特征图为3*3

那么这样的情况就会导致在逆卷积时出现一个问题。

不同大小的图片经过卷积运算能得到相同尺寸的输出,那么作为逆运算,同样的一张输入图像经过反卷积是否会有不同尺寸的合法输出?这样的话就存在争议了

上面还只是进行same卷积的情况,如果考虑valid卷积,stride=2, kernel_size = 3,padding=0时,输入特征图为7*7和8*8的结果也是3*3

解决争议的办法就是使用output_padding参数

output_padding的作用是:
当stride > 1时,Conv2d将多个输入形状映射到相同的输出形状。output_padding通过在一边有效地增加计算出的输出形状来解决这种模糊性。

首先我们要认同一个前提:

大多数情况下我们都希望经过卷积/反卷积处理后的图像尺寸比例与步长相等,即输入特征图大小/输出特征图大小 = stride,也就是same模式

所以我们只要通过添加output_padding这一参数来使得结果满足这一前提,那么输出的图片的大小就能够保证为输入图片*stride的大小,而不是任意可能的大小

实现办法:

因为pytorch将参数padding(注意与output_padding区别)建议设置为(kernel_size - 1)/2,由式子padding= kernel - 1 - padding转换而来

那么根据式子:

image

当我们希望得到输入特征图大小/输出特征图大小 = stride的话,代入上面的式子能够得到结果:

padding = (kernel\_size - stride + output\_padding ) /2

所以为了让padding = (kernel_size - 1)/2,则output_padding应该取值为stride - 1,这样就能够满足输入特征图大小/输出特征图大小 = stride

当然,你可以取别的值,这并不会影响到逆卷积的计算,但是在后面进行有关大小的操作时就很可能出现问题,因为输出的图片的大小并不能保证是 输入图片*stride的大小,可能是任意正确的大小,如上面举的例子,可能是7*7或8*8等

相关文章

  • nn.ConvTranspose2d的参数output_padd

    原文:nn.ConvTranspose2d的参数output_padding的作用[https://www.cnb...

  • pytorch中ConvTranspose2d()

    nn.ConvTranspose2d() 在由多个输入平面组成的输入图像上应用二维转置卷积运算符。该模块可以看作是...

  • 函数的参数

    函数的参数顺序是 必选参数、默认参数、可变参数、关键字参数、命名关键字参数 必选参数 默认参数 可变参数 关键...

  • Python之函数的参数

    Python中函数的参数有五种:位置参数(必选参数)、默认参数、可变参数、关键字参数、命名关键字参数。 位置参数 ...

  • Python 函数

    调用函数 定义函数 函数的参数必选参数、默认参数、可变参数、关键字参数、命名关键字参数 位置参数 默认参数 可变参...

  • 参数,非参数,半参数

    非参数与参数理解 non-parametric model中参数是distribution free的,参数函数空...

  • 参数、非参数、半参数

    如何理解参数、非参数和半参数的概念?先回顾一下医学统计学参数检验和非参数检验的内容:参数检验(parametric...

  • 【计算和控制流】29、代码组织:函数的参数

    目录一、形式参数与实际参数二、定义函数的参数三、固定参数/可变参数四、调用函数的参数五、位置参数/关键字参数 一、...

  • python函数的参数

    参数定义的顺序:必选参数,默认参数,可变参数,命名的关键字参数,关键字参数 默认参数一定要用不可变参数。 *arg...

  • 函数

    1. 函数的参数 必选参数、默认参数、可变参数和关键字参数 位置参数 默认参数 多个默认参数,调用时.1.按顺序提...

网友评论

      本文标题:nn.ConvTranspose2d的参数output_padd

      本文链接:https://www.haomeiwen.com/subject/tmodiktx.html