首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >AI面试题之(反)卷积输出尺寸计算

AI面试题之(反)卷积输出尺寸计算

作者头像
机器学习炼丹术
发布2020-07-14 11:10:03
发布2020-07-14 11:10:03
2.5K0
举报

1 给我背住

【卷积计算公式】

output=\frac{input+2*padding-kernel}{stride}+1

【反卷积计算公式】

output=stride*(input-1)+2*padding-kernel+2

【其实只用记住卷积的计算公式就行了,反卷积的可以从卷积中的推导出来】

2 为什么是这样算

2.1 卷积

其实晚上很多都是仅仅告诉你,计算公式是:

output=\frac{input+2*padding-kernel}{stride}+1

这里简单的来讲解一下为什么。

input+2*padding

】这个就是原来的图片,外面加了一圈padding,因为padding是一圈,所以左右、上下都有,所以是两倍的。

input+2*padding-kernel

】是计算kernel要走多少步。来举个例子就好理解了:

图中是input为7,然后kernel_size为3,podding是1的一个例子。从下图中可以看出来,kernel总共要走6步

这个六步,就是

input+2*padding-kernel

的含义,kernel要滑动的步数。

那么stride就是步长,如果是2的话,那么kernel移动就是这样的(如下图):

就变成3步了。那么为什么计算公式最后还要加上1呢?就是在kernel还没有迈出步子的时候,最开始的处于左上角的那个位置,也是一个点。

【总结:卷积输出尺寸计算的时候,前面的分式,就是计算卷积核可以走几步,然后再加上卷积核的初始位置,就是输出尺寸了】


来看个正经的例子:

【这个例子展示了,如果输入尺寸是一个偶数,卷积核是奇数的情况,如何计算——向下取整】

2.2 反卷积

其实反卷积就是另外一种形式的卷积。

反卷积中,stride就是在相邻元素之间添加stride-1个0元素

从图中可以看到,假设输入图片是3*3的,假设反卷积的stride为2,那么输入图像其实就是5*5的。

所以,实际的输入图像应该是:

input'=input+(stride-1)(input-1)

剩下的内容就和之前一样了,执行卷积的过程,不过反卷积的stride是用在扩展输入图像上的,而不是kernel移动的步长,所以反卷积中kernel步长永远是1.

所以计算公式如下,先把

output=input'+2*padding-kernel+1

带入

input'=input+(stride-1)(input-1)

得到:

output = stride(input-1)+2*padding-kernel+2

【总结:反卷积中,就是先扩展输入input的尺寸,然后再去卷积】

2.3 两个例题

输入尺寸input=2,kernel_size=3,stride=1,padding=2,计算反卷积的输出尺寸?

【答案:output=4】


输入尺寸input=3,kernel=3,stride=2,padding=1,计算反卷积的输出尺寸?

【答案:output=5】

喜欢的话,长按下面的二维码关注下【机器学习炼丹术】,成为炫酷的炼丹师吧!公众号中回复【下载】有免费的精选的机器学习相关的学习资料哦,并且持续更新!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-07-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习炼丹术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 给我背住
  • 2 为什么是这样算
    • 2.1 卷积
    • 2.2 反卷积
    • 2.3 两个例题
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档