CNN-LENET参数计算

cnn之LeNet5模型参数浅谈

鄙人最近一直在学习cnn,对于cnn基本流程,工作原理和简单的模型代码都比较熟练了,但是对于经典的cnn模型(如LeNet5,inception3)还是知之甚少。本文就先总结浅谈LeNet,下篇文章再论述Inception-3模型。话不多说,上正文

LeNet-5的背景

只需要记住LeNet模型是第一个应用于数字识别问题的卷积神经网络模型,在Mnist数据集上,正确率可达到99.2%
lenet模型使用tanh和sigmoid来获得非线性输出,一般在池化层之后引入非线性操作。

LeNet-5的结构

总论:Lenet一共有七层(输入层不计算在内),输入为32 * 32 * 1,即为长宽为32,深度为1(rgb = 1时,图片为黑白色),c代表convolution,卷积操作,s代表subsampling,池化操作。数字代表第几层,而不是第几层卷积或者第几层池化。w为权重(注意同一层的权重共享原则),b为偏置,每一层偏置相同。 p代表padding。轮廓填充。s代表stride,移动步长。
LENET lenet moxing

训练参数计算

C1层
输入:32 * 32 * 1
卷积核:5 * 5
卷积核种类:6(map:特征图)
padding=0
stride=1
本层输出:28 * 28((32-5+2p)/s+1 )= 28
下层神经元个数:28* 28* 6
可训练参数:(5* 5+1)* 6 = 156 (6个5*5的内核,每个内核有一个偏置)
连接数:(5 * 5+1)*6 *28 *28 (input 和C1之间的连接个数)

S2层
输入:28 * 28 * 6
卷积核种类:6
p = 0
s = 2(采样方式: 2*2区域的4个值相加,乘以一个可训练参数,再加上一个偏置参数,结果通过Sigmoid非线性化)
输出:14(28/2)
下层神经元个数:14 * 14 * 6
可训练参数:6 * (1+1)(采样的权重+偏置参数)
连接数:6 *(1+1)1414

C3层
输入:14 * 14 * 6
卷积核:5 * 5
卷积核种类:16
p= 0
s = 1
本层输出:1010
下层神经元个数:10
1016
可训练参数:由于S2和C3并不是全链接,因此有两种链接情况 1.c3中的所有map都和S2中的6个map链接2.C3和S2中的部分map链接,表示本层的map是由上层map提取得到的不同组合。Lenet中的组合方式是:C3的前面6个map以S2中相邻的3个map子集作为输入,接下来C3中的6个map以S2中相邻的4个map子集作为输入。然后的3个以不相邻的4个特征图子集为输入。最后一个将S2中所有特征图为输入。
则可训练参数为:6 * (3 * 5 * 5+1)+6 * (4 * 25+1)+3 * ( 4 * 25+1)+(25 * 6+1)=1516
S4层
输入:10 * 10 * 16
采样区域p:2
2
采样方式:4个输入相加,乘以一个可训练参数,再加上一个可训练偏置。结果通过sigmoid
卷积核种类:16
输出:5 * 5(10/2)
下层神经元个数:5 * 5 * 16
可训练参数:(1+1)16
连接数:(2 * 2+1)16 * 5 * 5
S4中每个特征图的大小是C3中特征图大小的1/4
C5层
输入:5
5
16(全连接,因为卷积核与输入尺寸相同)
卷积核:55
卷积种类:120
输出:1 * 1(单位特征图)
下层神经元个数:120
可训练参数:120
(5 * 5+1)* 16
连接数:120*(5*5+1)*16(全连接训练参数即为链接参数)
F6-full connettion层
输入:c5 120维向量

计算方式:计算输入向量和权重向量之间的点积,再加上一个偏置,结果通过sigmoid函数

可训练参数/连接数 :84*(12011+1)=10164

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值