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

博客围绕CNN展开,先介绍了前向传播中特征图尺寸的计算方法,依据输入特征图尺寸、卷积核尺寸、padding和步长来计算输出特征图尺寸。接着阐述感受野概念,即第k层输出特征图一点由输入图像多大块图像计算得到。还介绍了感受野的自后向前和自前向后两种计算方法,最后提供了计算感受野的工具。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、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

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

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值