以经典的LeNet-5例子来逐层分析各层的参数及连接个数:

CNN网络各层边长、参数个数、链接数的计算

C1卷积层:有6个feature map,每个feature map中的每个神经元(每个点)与一个5*5的卷积核相连接;该卷积核大小为5*5,padding为0,stride为1;

1、特征图的大小feature_map = (input_size + padding*2 - 卷积核的边长 + 步长stride) / 步长

                           特别注意:卷积向下取整,池化向上取整(计算方法都一样)

                          解释说明:input_size + pading*2 得到的是整个输入图片的全部有效边长;

                                          减去卷积核的边长是因为:卷积核沿原图边长一个像素点一个像素点的扫描,直到卷积核的右边沿触碰原图的右边沿,还有卷积核边长这么宽的位置没有扫描。

                                           加上步长:加上刚减去的卷积核的重叠的部分;

                                           除以步长:不知道是什么鬼?还没理解。。。

补充说明:padding的作用:当卷积核滑动出现空白时为图像补0,补一圈0时,padding=1,两圈0时padding=2;

2、参数的个数:c1层有(5*5+1)*6=156个参数,公式为(卷积核的大小+偏置项)*该层卷积核的个数

补充说明:偏置项的作用:类似于y=kx+b中的b,偏置项可以调整**函数,使得**函数左右移动

3、链接个数:(5*5+1)*6 *(28*28)=122,304个,公式为 6个feature map上每个神经元的所有参数即[(卷积核的大小+偏置项)*该层卷积核的个数 ] * 每个feature map上的神经元个数(即feature map的大小)


参考https://blog.csdn.net/qq_15192373/article/details/78536107


相关文章: