我是靠谱客的博主 沉默溪流,最近开发中收集的这篇文章主要介绍【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】转置卷积 ConvTranspose2d所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部