转置卷积 反卷积 PyTorch torch.nn.ConvTranspose2d() output_padding

本文详细解释了转置卷积(反卷积)的概念,它是卷积的逆过程,用于增大特征图的大小。讨论了转置卷积的参数如padding、kernel_size、stride及其与卷积的关系。通过实例展示了如何根据output_padding调整输出大小,并在PyTorch中使用ConvTranspose2d()函数。输出_padding的设置可以消除输出大小的不确定性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转置卷积、又称反卷积其实是卷积的逆过程。卷积的过程通常会减小特征图的的大小,而转置卷积往往增大特征图的大小,一直以来对转置卷积的过程都不是很理解,最近认真学习了一下,在此分享。

卷积

卷积操作,输入是一个特征图i,参数padding(p), stride(s),kernel_size(k),输出是卷积后得到的特征图o,输出的特征图大小

o=\left \lfloor \frac{i+2p-k}{s} \right \rfloor +1

转置卷积

转置卷积是卷积的逆过程。在做的转置卷积的时候,我们同样会给转置卷积几个参数,如输入特征图i,p,k,s,分别对应padding,kernel_size,stride。

第一如何理解转置卷积是卷积的逆过程?假设卷积的输入为x,输出为y,而转置卷积作为卷积的逆过程,也就是说转置卷积的输入为y,输出为x。即

x \overset{Conv}{\rightarrow}y,y\overset{transConv}{\rightarrow}x

因此,给定转置卷积参数和输出a,我们相当于找到完成这样的过程

a \overset{transConv}{\rightarrow}b,同时b \overset{Conv}{\rightarrow}a

故我们知道卷积的输入大小和输出大小的关系,因此我们可以计算出b的大小:

a=\left \lfloor \frac{b+2p-k}{s} \right \rfloor +1\,\,\,\,\,\,\,\,\,\,\,\, (1)

假设a=2,s=1,k=1,p=0,此时

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值