LeNet-5+Mnist总结-由浅入深

文章目录

    • 一、经典神经网络LeNet-5介绍
    • 二、经典数据集Mnist介绍
    • 三、构建网络步骤及优化操作
    • 四、源代码
    • 五、遇到问题及解决方案
    • 六、 一般处理思路

一、经典神经网络LeNet-5介绍

在模型中,每个卷积层包含三个部分:卷积/池化/非线性激活函数.并采用MLP作为分类器.同时层与层的稀疏连接减少了计算的复杂度.
详见我的另一篇博客 LeNet-5的介绍

二、经典数据集Mnist介绍

MNIST数据集介绍及从给定的API读取

三、构建网络步骤及优化操作

  • 建立一个baseline,使网络能跑起来,输出训练精度与训练损失,测试精度与测试损失,验证精度与验证损失
  • 添加dropout层,优化网络
  • 添加记录损失函数值的功能,加入损失函数的集合,观察训练效果
  • 改变keep_prob值,观察实验效果
  • 添加学习率的优化及改进
  • 在权重参数上实现L2正则化,加入损失函数的集合,观察训练效果
  • 添加tensorboard,进行训练精度与训练损失,测试精度与测试损失,验证精度与验证损失的网络可视化,添加时间戳来记录训练与测试,验证文件夹
  • 保存模型参数,保存精度最高的模型
  • 预加载模型参数进行预测
  • 滑动平均变量的使用来提高预测性能

四、源代码

github源代码链接

五、遇到问题及解决方案

tensorflow使用总结

六、 一般处理思路

转载:TensorFlow学习笔记-实现经典LeNet5模型 将训练,验证,模型构建分开。
1、定义占位符tf.placeholder()生成的变量x,y_,方便后续数据的调用;
2、生成隐藏层和输出层的参数weights,biases;
3、计算前向传播的结果y;
4、定义交叉熵并计算平均交叉熵损失
5、计算L2正则化损失函数
6、总损失等于交叉熵损失和正则化损失的和
7、设置衰减的学习率
8、使用优化函数优化损失
9、定义反向传播优化更新参数的过程
10、检验模型正确率过程
11、初始化会话进行训练,并初始化所有变量
12、生成训练和测试数据集
13、迭代循环神经网络,注意的是:每次取batch数据。
14、评价模型的性能
15、网络可视化tensroboard使用

你可能感兴趣的:(深度学习)