卷积神经网络之感受野的计算

                                                                      卷积神经网络感受野之计算公式
                                                                  (pengfei.ma, [email protected], v1.0, 20180917)
最近在找工作的时候, 经常会出现让求 CNN 中一层的感受野(receptive field)的大小的问题,然后在前辈大佬的总结指引之下, 融入了自己对求感受野的公式, 如果有理解错误的地方,请前辈们给予指正。


1 首先给出前一层 fm 的 size 和当前的 fm 的 size 之间的计算公式(这个大家都会, 哈哈)
设先前的 fm 的 size 为 x * x, 当前的 fm 的 size 是 y * y, 设滤波器的尺寸为 kernal * kernal,这里考虑 padding, 并且步长为 stride, 则我们知道它们之间的计算公式为
  


2 感受野的概念
在卷积神经网络中, 对于每一层而言, 该层的感受野的定义是该层特征图( feature map)上的像素点在原始图像上映射的区域大小。

3 感受野大小的计算
感受野计算时有下面的几个情况需要说明:
( 1) 第一层卷积层的输出特征图像素的感受野的大小等于滤波器的大小
( 2) 深层卷积层的感受野大小和它之前所有层的滤波器大小和步长有关系
( 3) 计算感受野大小时, 考虑了 padding 的影响
求每一层的感受野时, 采用 top to down 的方式, 即先求出待求层在前一层上的感受野, 然后逐渐传递到第一层, 使用的公式如下所示:
                                                             RF = 1 #待求层的 feature map 上的感受野大小
                                                             for layer in (top layer To down layer):
                                                             RF = (RF - 1) *stride - 2*padding + kernal
其中:
stride: 前层到待求层的步长
kernal : 前层到待求层的滤波器尺寸
padding: 前层到待求层的填充
这样我们不断地迭代上面的公式, 最后就可以求出待求层在原始输入图像上的 RF, 也就是感受野了。
 

猜你喜欢

转载自blog.csdn.net/qq_33221533/article/details/82746623
今日推荐