感想
今年对我来说是非常重要的一年,面临着找工作和发论文的压力,因此,我打算把我机器学习刷题之路记录下来,我认为刷题要把原理弄明白,所以我整理了分析的内容,作为对自己的提高,也希望对大家能够有所帮助。
Problem
输入图片大小为200×200,依次经过一层卷积(kernel size 5×5,padding 1,stride 2),pooling(kernel size 3×3,padding 0,stride 1),又一层卷积(kernel size 3×3,padding 1,stride 1)之后,输出特征图大小为:
答案:97
analysis
计算尺寸不被整除只在GoogLeNet中遇到过。卷积向下取整,池化向上取整。
(200-5+2*1)/2+1 为99.5,取99
(99-3)/1+1 为97
(97-3+2*1)/1+1 为97
我搜索的公式:
这里提供一个计算每一层输出图像的size的公式。无论是卷积层还是pooling层,公式都是这样的:
( input_size + 2*padding - kernel_size ) / stride+1 = output_size
其中,padding指对input的图像边界补充一定数量的像素,目的是为了计算位于图像边界的像素点的卷积响应;kernel_size指卷积核的大小;stride指步长,即卷积核或者pooling窗口的滑动位移。另外需要注意,上面公式建立在所有参数都为整数的假设基础上。
如果padding在题目中指的是图片外围补充边界的话,我模拟手算了一下,确实是这样的,可能题目就是题目,我们要按照题目的意思来才行吧。
参考文献
[1].卷积神经网络.http://blog.csdn.net/l281865263/article/details/46378149
[2].机器学习笔试题.http://blog.csdn.net/u011204487/article/details/77370278