pytorch中反卷积torch.nn.ConvTranspose2d()的使用

11 篇文章 0 订阅
6 篇文章 1 订阅

卷积:

class torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, groups=1, bias=True)

蓝色为输入,蓝色上的阴影为卷积核(kernel),绿色为输出,蓝色边缘的白色框为padding
在这里插入图片描述
反卷积:

class torch.nn.ConvTranspose2d(in_channels, out_channels, kernel_size, stride=1, padding=0, output_padding=0, bias=True)

卷积和反卷积函数中的in_channels与out_channels以及kernel_size的含义相同。

需要注意的是反卷积中的padding、stride和conv2d中的padding、stride不同。在反卷积中,padding不是蓝色的留白,是kernel向图像中心移动的单位。如下当padding=0时,卷积核刚好和输入边缘相交一个单位。因此padding可以理解为卷积核向中心移动的步数。 同时stride也不再是kernel移动的步数,变为输入单元彼此散开的步数。
即:
padding=0时,卷积核的起始位置和输入层相交一个像素,当padding=1时,卷积核的起始位置和输入层相交2个像素,依此类推;
stride=1时,输入层元素之间没有间隔,当stride=2时,输入层元素之间间隔为1,stride=3时,输入层元素之间间隔为2,以此类推。

示意图如下图所示:

padding=0,kernel_size=3,stride=1
output_padding是对反卷积后的特征图进行边缘填补0.
output_padding=0表示不进行填补,output_padding=1表示进行填补一圈0,等于2表示进行填补2圈0.
在这里插入图片描述

padding=2,kernel_size=4,stride=1
在这里插入图片描述
padding=2,kernel_size=3,stride=1
在这里插入图片描述
padding=0,kernel_size=3,stride=2
在这里插入图片描述
padding=1,kernel_size=3,stride=2
在这里插入图片描述
欢迎留言讨论~ ^ _ ^

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值