通俗理解CNN感受野的计算方法

x o u t = x i n − k s + 1 x_{out} = \frac{x_{in} - k}{s} + 1 xout=sxink+1
如果不考虑padding,卷积输出的feature map的计算公式如上,那么 x i n = ( x o u t − 1 ) ∗ s + k x_{in} = (x_{out} - 1) * s + k xin=(xout1)s+k。因此计算模型的感受野可以从最后一层往前推。下面举个例子说明:
在这里插入图片描述
图片来自于https://paddlepedia.readthedocs.io/en/latest/tutorials/CNN/convolution_operator/Convolution.html
一个输入大小为6x6的图像经过两层大小为3x3的卷积核之后,输出特征图变为2x2。现在要计算输出的这个特征图上的每个点对应输入的6x6的图像上多大范围的像素点(感受野)。很直观的,输出的2x2图像上每个点来自于中间特征图的3x3区域。即:
x i n = ( x o u t − 1 ) ∗ s + k = ( 2 − 1 ) × 1 + 3 = 4 x_{in} = (x_{out} - 1)*s + k = (2 - 1)\times 1 + 3 = 4 xin=(xout1)s+k=(21)×1+3=4
那么中间的特征图上点影响多大范围的来自第一个特征图像素点?类似的过程代入以上公式:
x i n = ( x o u t − 1 ) ∗ s + k = ( 4 − 1 ) ∗ 1 + 3 = 6 x_{in} = (x_{out} - 1) * s + k = (4 - 1) * 1 + 3 = 6 xin=(xout1)s+k=(41)1+3=6
因此我们得到输出的2x2的特征图上的点对应于原始特征图上6x6范围的像素点,即感受野为6x6。池化层的感受的计算同上。如果是遇到空洞卷积的感受野计算,可以先把空洞卷积转换成等效的卷积核 (参考: 直观理解Dilated Convolution)
空洞卷积的等效卷积核大小为 k ′ = k + ( k − 1 ) ( d − 1 ) = d ( k − 1 ) + 1 k' = k + (k-1)(d-1) = d(k-1)+1 k=k+(k1)(d1)=d(k1)+1,其中d为膨胀率。换成等效卷积核后再套用以上方法计算感受野即可。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

daimashiren

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

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值