最近复习了一下卷积神经网络,好久没看都搞忘了。
计算特征图的公式如下:
其中n表示原来图像的大小,p表示padding的大小,f表示filter的大小,s表示stride,计算完成之后向下取整,就可以了。这里记录一下这个公式,以免自己搞忘了。同时,还有一个容易搞忘的地方是,在图像的卷积当中,一组filter的channel数量一定和图像的channel相同,但是我们可以拥有多组filter,每多一组filter,就多出一个特征图,如下图所示:
还有一个容易搞错的点,也是很多企业常见的面试题目,如下:
问一共有10个filter,每个都是3*3*3的大小,对于这层卷积神经网络而言,一共有多少个参数?由于我们只考虑了这层神经网络,不管输入图像的大小是多少,因此其参数量的大小为:
(3*3*3+1)*10=280个参数。为什么要在3*3*3后面+1?
因为每做一次cnn,我们还有一个偏置项,然后再进行relu,或者tanh。这个偏置项b,也要考虑到我们的参数计算当中。
同时,还有一个是用来计算(avg)max-pooling的一个公式,如下:
nh表示原始图像的高度,nw表示原始图像的宽度,s表示stride,f表示要想得到pool layer所需要的filter的size。因为在pooling的过程当中,也需要有一个filter,和convolution的过程是有点类似的。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:计算卷积神经网络中特征图大小的公式 - Python技术站