概述
- 转置卷积在《卷积的实现与转置卷积》中已经出现过,在 P y T o r c h rm PyTorch PyTorch 中转置卷积层的定义如下 (以二维为例):
torch.nn.ConvTranspose2d(in_channels, out_channels, kernel_size,
stride=1, padding=0, output_padding=0, groups=1, bias=True,
dilation=1, padding_mode='zeros', device=None, dtype=None)
- 其中 i n _ c h a n n e l s , o u t _ c h a n n e l s , k e r n e l _ s i z e rm in_channels,out_channels,kernel_size in_channels,out_channels,kernel_size 是三个常用参数,其意义与卷积层完全一致,二者区别主要体现在计算规则。
- 我们记 c c c 是转置卷积核的维度, s , p s,p s,p 分别代表步长与填充, H i n , H o u t H_{in},H_{out} Hin,Hout 分别代表输入数据和输出数据的维度,那么有: H o u t = ( H i n − 1 ) × s − 2 p + c (1) H_{out}=big(H_{in}-1big)times s-2p+ctag{1} Hout=(Hin−1)×s−2p+c(1)
- 这里将卷积层维度计算式回顾如下,二维卷积中,假定原图像大小为 H i n × H i n H_{in}times H_{in} Hin×Hin,卷积核大小为 c × c ctimes c c×c,步长 s t r i d e rm stride stride 记为 s s s,填充 p a d d i n g rm padding padding 记为 p p p,那么卷积层的每输出维度为: H o u t = H i n + 2 p − c s + 1 (2) H_{out}=frac{H_{in}+2p-c}{s}+1tag{2} Hout=sHin+2p−c+1(2)可以发现是完全对称的。
- 在 G i t H u b rm GitHub GitHub 上有一个对卷积以及反卷积进行可视化的网页,可以配合理解。
最后
以上就是沉默溪流为你收集整理的【PyTorch】转置卷积 ConvTranspose2d的全部内容,希望文章能够帮你解决【PyTorch】转置卷积 ConvTranspose2d所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复