最近在复习CNN相关,记录一下很经典的cnn网络,LeNet-5,本文将输出层用softmax替换原来的gaussian connection
欢迎访问原文地址,https://www.casscw.cn/index.php/archives/101/
结构概览

除输入层外,总共7层网络,3层卷积,2层池化,1层全连接,1层输出
结构细节
C1-卷积层
shape |
tips |
输入 |
(None, 32, 32, 1) |
卷积核 |
6*(5*5) |
输出 |
(None, 28, 28, 6) |
参数 |
6*(5*5+1)=156 |
S2-池化层
shape |
tips |
输入 |
(None, 28, 28, 6) |
输出 |
(None, 14, 14, 6) |
参数 |
0 |
C3-卷积层
shape |
tips |
输入 |
(None, 14, 14, 6) |
卷积核 |
16*(5*5) |
输出 |
(None, 10, 10, 16) |
参数 |
16*(6*5*5+1)=2416 |
值得注意的是,上面的参数不一定是表中这样。因为C3中的每个特征map是连接到S2中的所有6个或者几个特征map的,表示本层的特征map是上一层提取到的特征map的不同组合。表中表示的是连接到所有6个特征图的情况。【每个特征图都需要对应一个不同参数的卷积核,最后直接相加得到卷积后的一个特征图】
S4-池化层
shape |
tips |
输入 |
(None, 10, 10, 16) |
输出 |
(None, 5, 5, 16) |
参数 |
0 |
C5-卷积层
shape |
tips |
输入 |
(None, 5, 5, 16) |
卷积核 |
120*(5*5) |
输出 |
(None, 1, 1, 120) |
参数 |
120*(16*5*5+1)=48120 |
F6-全连接层
shape |
tips |
输入 |
(None, 120) |
输出 |
(None, 84) |
参数 |
84*(120+1)=10164 |
OUTPUT-输出层
输出层,也可以看做一个全连接,输出维度就是类别数目
shape |
tips |
输入 |
(None, 84) |
输出 |
(None, 10) |
参数 |
10*(84+1)=850 |
参数核对
利用keras编写lenet-5,调用model.summary()输出训练参数情况
