CNN感受野大小计算

之前对感受野只是有主观的认识,但没有精确的计算过,导致在分析模型时带来了很大不便,现在做如下记录:

1 感受野的概念

在卷积神经网络中,感受野的定义是 卷积神经网络每一层输出的特征图(feature map)上的像素点在原始图像上映射的区域大小。

2 感受野的计算

感受野计算时有下面的几个情况需要说明:

(1)第一层卷积层的输出特征图像素的感受野的大小等于滤波器的大小。

(2)深层卷积层的感受野大小和它之前所有层的滤波器大小和步长有关系

(3)计算感受野大小时,忽略了图像边缘的影响,即不考虑padding的大小。

这里的每一个卷积层还有一个strides的概念,这个strides是之前所有层stride的乘机。

即:strides(i) = stride(1)*stride(2)*....*stride(i-1)

关于感受野大小的计算采用top to down的方式,即先计算最深层的前一层上的感受野,然后逐渐传递到第一层,使用的公式可以表示如下:

L(k) = L(k-1)+(F(k)-1)*strides

其中L(k-1)为第k-1层对应的感受野大小,F(k)为第k层卷积核大小,或者是池化层的池化尺寸大小。

举个例子:

感受野的计算是逐层进行的,以下表中的网络结构为例:

感受野初始值L(0)=1,每层的感受野计算过程如下:

L(0)=1

L(1)=1+(3-1)=3

L(2)=3+(2-1)*1=4

L(3)=4+(3-1)*1*2=8

L(4)=8+(2-1)*1*2*1=10

L(5)=10+(3-1)*1*2*1*2=18

L(6)=18+(3-1)*1*2*1*2*1=26

L(7)=26+(2-1)*1*2*1*2*1*1=30

参考:(1)https://blog.csdn.net/wangkun1340378/article/details/76199700

           (2)https://www.jianshu.com/p/e875117e5372

猜你喜欢

转载自www.cnblogs.com/zhibei/p/12658888.html