我是靠谱客的博主 沉默溪流,这篇文章主要介绍【PyTorch】转置卷积 ConvTranspose2d,现在分享给大家,希望可以做个参考。

  • 转置卷积在《卷积的实现与转置卷积》中已经出现过,在 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=(Hin1)×s2p+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+2pc+1(2)可以发现是完全对称的。
  • G i t H u b rm GitHub GitHub 上有一个对卷积以及反卷积进行可视化的网页,可以配合理解。

最后

以上就是沉默溪流最近收集整理的关于【PyTorch】转置卷积 ConvTranspose2d的全部内容,更多相关【PyTorch】转置卷积内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(66)

评论列表共有 0 条评论

立即
投稿
返回
顶部