共计 2181 个字符,预计需要花费 6 分钟才能阅读完成。
1.1 感触野
1.1.1 定义
定义:卷积神经网络中的特色图上的 一个像素点 在输出图像上映射的 区域大小。
1.1.2 例子:
- 5×5的输出特色图通过 1 个 5×5 的卷积核,生成 1×1 的特色图,
- 5×5的输出特色图通过两个 3×3 的卷积核,生成 1×1 的特色图。
下面两个的感触野都为 5×5,且两个 3×3 的卷积核等于一个 5×5
注:下面满足卷积的计算公式:
$$H_{out} = \frac {H_{in} – k + 2p}{S}$$
1.1.3 感触野大小的计算
办法一:从后往前推
公式解说
感触野大小计算须要留神以下几点:
- == 最初一层感触野的大小等于核(不肯定是卷积核,还有可能是池化核)的大小 ==(以后的感触野相当于“长期感触野”,用于从后往前推)
- 感触野大小的计算不思考 padding 的大小
- 以后层 (i 层) 的感触野大小和以后层(i 层)的 卷积核大小 和步长 无关,同时也和网络后一层 (i+1) 层特色图的感触野大小无关
$$RF_i = (RF_{i+1} – 1) × stride + K$$
$RF_i$ 示意第 $i$ 层的感触野大小,stride 示意步长,K 示意卷积核大小
艰深解释
假如有如下网络,当初咱们要计算第 i+1 的感触野,那么,
- 首先确定 i + 1 层核(卷积核或池化核)大小即为感触野的大小
- 利用下面的公式计算第 i 层感触野的大小
- 按照下面的公式始终推到 input 层,== 最终计算的后果即为 i+1 的感触野的大小 ==
办法二:从前往后推
公式解说
顾名思义,从网络的输出层始终推到咱们想要计算层的感触野
$$RF_{i+1} = RF_i + (k – 1) * S_i$$
$$S_i$$ 示意 之前所有层的步长的乘积 ,== 不蕴含以后层==,即
$$S_i = \prod_{i=0}^n Stride_i $$
艰深了解
仍旧如图所示,咱们须要计算第 i+1 的层感触野的大小,那么,
- 首先确定 input 层前面的核(卷积核或池化核,个别为卷积核)大小,
- 按照公式逐步往后推到 i+1 的感触野大小
1.1.4 验证
验证下面例子
<img src=”/img/bVcZuTV” width=”400px” height=”300px”/>
办法一:从后往前推
如果第一种状况,应用 5×5 的卷积核,最初一层为 1×1,那么最初一层的感触野为卷积核大小,即 5
如果第二种状况,应用两个 3×3 的卷积核(步幅为 1),最初一层的“长期感触野”为卷积核大小,即 3×3,前一层的感触野为:
$$RF = (3 – 1) × 1 + 3 = 5$$,最终,最初一层的感触野大小为 5
办法二:从前往后推
第一种状况,应用 5×5 的卷积核,那么最初的感触野即为 5
第二种状况,第一个卷积核为 3×3,那么最开始的感触野为 3,第二个卷积核为 3×3,生成的特色图的感触野为:
$$S_i= 1 $$ 后面一个卷积核的步长为 1
$$$RF_2 = RF_1 + (K-1)*S = 3 + (3-1)*1 = 3 + 2 = 5$$
如上,两个状况的的感触野都为 5,和上图统一。
例子
layer | kernel size | stide | $\prod_i^nstide_i$ |
---|---|---|---|
input | |||
conv1 | 3*3 | 1 | |
pool1 | 2*2 | 2 | 1 |
conv2 | 3*3 | 1 | 2 |
pool2 | 2*2 | 2 | 2 |
conv3 | 3*3 | 1 | 4 |
conv4 | 3*3 | 1 | 4 |
pool3 | 2*2 | 2 | 4 |
办法一:从后向前推:
最初一层为 pool3:RF = 2 (长期感触野为核大小)
conv4 = (2 – 1) * 1 + 3 = 4
conv3 = (4 – 1) * 1 + 3 = 6
pool2 = (6 – 1) * 2 + 2 = 12
conv2 = (12 – 1) * 1 + 3 = 14
pool1 = (14 – 1) * 2 + 2 = 28
conv1 = (28 – 1) * 1 + 3 = 30
所以,pool3 的感触野为 30
办法二:从前往后推
为了不便计算,再下面表格中计算了 $\prod_i^nstide_i$,
conv1 的感触野即为卷积核大小,即
$$conv1 = 3$$
$$pool1= 3+(k-1) * s = 3 + (2-1) * 1 = 3 +1 = 4$$
$$conv2 = 4 +(k – 1)*s = 4+(3-1)*2=4+4 = 8$$
$$pool2 = 8 + (k-1)*s = 8 + (2-1)*2 = 8+2 = 10$$
$$conv3 = 10 + (k-1)*s = 10 + (3-1)*4 = 10+8 = 18$$
$$conv4 = 18 + (k-1)*s = 18+(3-1)*4 = 18+8 = 26$$
$$pool3 = 26+(k-1)*s = 26 +(2-1)*4 = 26 + 4 = 30$$
如上,两种计算失去的后果雷同
1.1.5 小结
感触野计算有两种办法,
- 从后往前推,失去的最终后果即为 计算起始地位 的感触野,
- 从返回后退,从网络开始到须要计算的层的 之间 的感触野 都会计算出 ,须要计算 连乘
参考文献
[1] https://zhuanlan.zhihu.com/p/113487374
[2] https://blog.csdn.net/program_developer/article/details/80958716
[3] https://blog.csdn.net/qq_41076797/article/details/114434415
[4] http://www.360doc.com/content/20/1012/21/32196507_940140443.shtml
本文作者: 胡侃有料,欢送来我的公众号 胡侃深度学习
版权申明: 本博客所有文章除特地申明外,均采纳 BY-NC-SA 许可协定。转载请注明出处!
声援博主 :如果您感觉文章对您有帮忙, 欢送点赞。您的激励是博主的最大能源!