CNN感受野的概念与计算详解

一、CNN前向传播特征图尺寸

我们从CNN的前向传播说起。

对于一个CNN而言,若输入特征图尺寸为n_in,卷积核尺寸为k,padding(周围填充0的圈数)为p,步长为s,则输出特征图的尺寸n_out可以表示为:

使用上式,我们可以从前往后,依此计算出多层CNN每一层的特征图尺寸。

二、感受野的概念

此时,我们想知道,对于一个第k层输出的特征图而言,它的其中任意一个值是由输入图像的多大尺寸的像素映射而来的。即第k层输出的特征图的一个点是由CNN输入图像中多大块的图像计算得到的。这就是感受野的概念,感受野越大,说明一个深层特征点使用了输入图像越多的像素信息。

三、感受野的计算

3.1 自后向前法

此时回顾前向传播的过程,我们发现,如果要计算第k层输出特征图的感受野信息,我们只需要假设第k层输出的特征图尺寸为1,然后利用逆运算,就可以逐层向前,推出输入图像的尺寸,这不就是我们需要的感受野吗!!

与此同时,由于padding填0,不影响输入图像的像素信息,我们在计算感受野时,可以直接忽略padding,假设padding为0.我们就可以得到逆运算:

n_{in}=(n_{out}-1)*s+k

我们由此逐层向前递推直到输入图像,就可以算出第k层输出的特征图的感受野了。

此时,我们已经掌握了计算某一层特征图感受野的方法,即假设其特征图尺寸为1,然后向前不断递推,得到输入层图像的尺寸。

3.2 自前向后法

对于3.1的方法,进一步的,我们写出递推式子:l_k=(((((1-1)*s_k+k_k-1)*s_{k-1}+k_{k-1}-1)*s_{k-2}+k_{k-2}-1)...+k_1 =(k_k-1)*s_{k-1}*s_{k-2}...*s_1+(k_{k-1}-1)*s_{k-2}*s_{k-3}...*s_1+...+k_1

所以有:l_k=l_{k-1}+(k_k-1)*s_{k-1}*s_{k-2}...*s_1

四、计算工具

https://fomoro.com/research/article/receptive-field-calculator

这里提供了计算感受野的小工具,可以直接输入层的设计,计算感受野

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

han-shuo

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值