卷积尺寸计算公式(含膨胀卷积和反卷积情况)

卷积尺⼨计算公式(含膨胀卷积和反卷积情况)
  在搭配深度学习多个卷积层时我们经常要计算卷积层的输出张量的尺⼨⼤⼩,可以⽤如下公式计算:小说村子
1, 公式
卷积层输出尺⼨: o = ⌊(i + 2p - k) / s⌋ + 1
式中,i:输⼊尺⼨;o:输出尺⼨;p:padding;k: kernel_size;s: stride。⌊…⌋表⽰向下取整。
2, 推导过程
e人e本t6  这个公式不⽤死记,下⾯我⽤⾮常便于理解的⽅法描述这个推导。卷积就是对相邻的⼀⽚数据进⾏加权求和得到⼀个数的⼀种“合并”操作,将此操作对输⼊张量进⾏滑动扫描以得到输出张量。循着这个过程,我们很容易推导出卷积输出尺⼨的计算公式。
(1)注意padding指的是两边同时补零,所以补零后输⼊尺⼨相当于变成了i+2p;
(2)⽤卷积核扫描的时候,想象⼀把尺⼦在桌⼦上从左移动到右,受到左右边框的界限,它的移动范围只有i+2p-k⼤⼩。
(3)如果每次移动的步长是s,实际上移动的步数就是 (i+2p-k)/s,但移动的步数必须是整数,因为不能出界,如果最后⼀步哪怕还差⼀点也不能算,所以必须要向下取整。
(4)即使⼀步不移动,也会在原位得到⼀个输出点,所以最后得到的输出尺⼨是移动的总步数再加上1。
3, 膨胀卷积
对于膨胀卷积,上公式不变,只需要把卷积核k改为膨胀后的卷积核k’,国家安全机关的主要任务是>gp5中文版下载
救护车打表计费膨胀后卷积核: k’ = d × (k-1) + 1
桥上书屋式中,k: 输⼊的卷积核尺⼨; d: 膨胀系数; k’: 膨胀后等效的卷积核尺⼨。⽤k’代⼊上公式的k,就可以计算出输出尺⼨。
4, 反卷积
反卷积就是把卷积的i, o调换就可以了,推导后得到
反卷积输出尺⼨: o = (i-1)×s + k - 2p
5, 常⽤等尺⼨变换配置
经常希望经过卷积后张量尺⼨不变,常⽤以下(k, s, p)组合:
(k, s, p) = (1, 1, 0) or (3, 1, 1) or (5, 1, 2) or (7, 1, 3)
对于更多其他情况,我们仍想要保持卷积后尺⼨不变,可以⽤下⾯的代码autopad⾃动计算p的值,该代码可⽤于⽤单个数字表⽰的正⽅形的卷积核或⽤元组表⽰的矩形的卷积核。
def autopad(k, p=None):  # kernel, padding
# Pad to 'same'
if p is None:
p = k // 2 if isinstance(k, int) else [x // 2 for x in k]  # auto-pad
return p
conv = nn.Conv2d(c1, c2, k, s, autopad(k, p), groups=g, bias=False)

本文发布于:2024-09-22 04:16:12,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/293229.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:卷积   输出   膨胀   移动   得到   操作   步数   机关
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议