1、卷积操作后输出特征图的尺寸大小
- 如下图所示,卷积核在输入图像进行滑动操作,每滑动一次,计算一次,获取一个值,该值为卷积核提取的当前区域的特征值。
- 在水平方向上,从左侧开始滑动,滑动的距离为(Input_s - Filter_s),设滑动步长为Stride,那么滑动的次数为 (Input_s - Filter_s) / Stride
- 未滑动之前,卷积核已经在蓝色位置提取了一个值
- 所以,在水平方向上的获得的特征图尺寸为 (Input_s - Filter_s)/ Stride + 1
- 因此下图卷积操作后的输出特征图的尺寸为 (7 - 3)/ 1 + 1 = 5
由上所述,输出特征图尺寸大小Output_s计算公式为:Output_s = (Input_s - Filter_s)/ Stride + 1
注:有padding时,即滑动距离(Input_s - Filter_s)变成了(Input_s - Filter_s + padding)
那么,输出特征图尺寸大小计算公式变为:Output_s =(Input_s - Filter_s + padding)/ Stride + 1
2、感受野计算
感受野的计算,其实是上述特征图尺寸计算反过来,求解特征图尺寸大小为1X1的时候,输入的特征图的大小,根据上面特征图的计算反推过来:Input_s = (Output_s - 1)x Stride + Filter_s。下图为同义不同名的计算过程。此图链接
3、空洞卷积的感受野、输出特征图大小的计算
参考链接这个链接里,尺寸乘了2,个人认为是错的,k-1是表示size为k的核中间有几个可插入的位置,rate-1表示要插入的0的个数,所以总共要插入(rate - 1)* (k-1) 个0,加上卷积核本身的尺寸,就获得了一层感受野的大小
感受野计算公式
感受野尺寸=(rate-1)*(k-1)+k #k是kernel size
输出特征图的大小:
Output=(W-F+2P)/S+1 #w是上层feature的size,F是kernel size,S是stride
这里普通卷积跟空洞卷积的feature size计算公式都是一样,计算时只需要把空洞卷积的F替换成其感受野(即换成普通卷积的kernel size)。
4、参数量计算
通过上述的感受野计算可知,一个7X7的卷积和的感受野,与堆叠的3x3的卷积核感受野相同,他们的参数量分别如下所示,可见堆叠的3x3卷积在保证感受野不变的情况下,减少了参数量。
参考文献: