转置卷积(pytorch)

本文深入探讨PyTorch中转置卷积(ConvTranspose2d)API的使用,解析其在图像上采样过程中的作用及参数设置,包括in_channels、out_channels、kernel_size、stride、padding、dilation和output_padding。详细阐述了dilation的概念及其对特征图尺寸的影响,并解释了如何通过调整out_padding避免多对一的上采样问题。

pytorch 转置卷积api

nn.ConvTranspose2d(in_channels, out_channels, kernel_size=3, stride=2, padding=1, dilation=1, output_padding=1)

作用:进行转置卷积,用于上采样

设原本图像大小为in∗inin*ininin,图像的padding为1,经过一个为kernelkernelkernel_sizesizesize为3,卷积的dilationdilationdilation为1的给定卷积核,得到一个特征图大小为out∗outout*outoutout,而这个转置卷积就是用于将当前out∗outout*outoutout的特征图上采样成in∗inin*inininpadding,string,kernelpadding,string,kernelpadding,string,kernel​_size,dilation 都是指原来的图像经过的卷积操作的参数,从而变成大小当前的特征图。out_padding用于防止stride大于1的时候1对多的现象。

什么是dilation?

卷积运算时,卷积核元素之间的距离,如果dilation不为1,卷积核的作用点更加分散,最后输出的特征图会更小,大小等于用**kernel_size+(dilation-1)*(kernel_size-1)**大小的卷积核得到的特征图

卷积多对一现象

假设现在有一个卷积核3*3,stride = 2;那么一个5x5的图,经过卷积得到的大小为2x2,一个6x6的图经过卷积也是2x2,那给定2x2的特征图,经过转置卷积要恢复到哪个size呢?

卷积输出的特征图计算公式为out=in+2∗padding−kernelsizestride+1out = \frac{in + 2*padding-kernelsize}{stride} + 1out=stridein+2paddingkernelsize+1

这里的除法一般都是下取整,所以导致上面的问题。

现在逆卷积要做的是给定out和卷积核的参数,恢复in,那么将公式变换一下

in=(out−1)∗stride−2∗padding+kernelsizein = (out - 1)*stride -2*padding + kernelsizein=(out1)stride2padding+kernelsize

但是为了防止上面的现象,多加了一个out_padding参数,可以自己指定恢复的大小,新的公式变成

in=(out−1)∗stride−2∗padding+kernelsize+outpaddingin = (out - 1)*stride -2*padding + kernelsize + outpaddingin=(out1)stride2padding+kernelsize+outpadding

因此现在无论原来是否发生下整除现象,我们都可以指定恢复原来的大小。

就上述的例子,如果原来是5x5,那么我们令out_padding为0(原来是刚好整除的),如果原来是6x6,那么我们令out_padding为1,就代入公式就得到6了。这里的out_padding最多是stride−1stride - 1stride1,

因为进行下取整最多舍去stride-1,因此有了这个参数一定可以恢复成原来指定的大小。

一般为了保持卷积same模式(in=stride∗outin = stride*outin=strideout),我们令padding = (kernelsize-1)/2,out_padding = kersize - 1,带入式子就可以得到in=stride∗outin = stride*outin=strideout

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值