Tensorflow 学习笔记–实现LeNet5模型(理论实现)
一、知识准备:
1.CNN基本步骤:输入层 -> 卷积层 -> 激活函数层 -> 池化层 -> 全连接
这里重点要理解卷积的过程。
2.输出的层数计算:output=(n+2 * pad-F)/stride+1,(n为输入层的层数,pad为边缘填充,F为卷积核的层数),当output不是一个整数时就向下取整。
二、实现过程
- INPUT(输入层):输入统一为3232.
-c1层(卷积)
输入图片:32 * 32
卷积核大小:5 * 5
卷积核种类:6
输出层数:(32-5)+1=28
神经元数量(就是有几个小方框):28 * 28 * 6
可训练参数:5 * 5+1(1是bias参数)
s2层(池化):
输入:28 * 28
采样区域:2 * 2
采样种类:6(由输入的维数决定)
输出:14
c3层:(再卷积)
输入图片:14146
卷积核大小:5 * 5
卷积核种类:16
输出层数:(14-5)+1=10
神经元数量(就是有几个小方框):10 * 10 * 16
可训练参数:55+1(1是bias参数)
**s4(再池化)
输入:10 * 10
采样区域:2 * 2
采样种类:16(由输入的维数决定)
输出:5
**c5(再卷积)
输入图片:5 * 5 * 16
卷积核大小:5 * 5
卷积核种类:120
输出层数:(5-5)+1=1
F6层:(全连接)
输入:就是神经元的数量:120
计算方式:计算输入向量和权重向量之间的点,再加上一个偏置,结果通过函数输出。