VGGNet+Mnist总结-由浅入深

文章目录

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

一、经典神经网络VGGNet介绍

在大型网络结构中,可以定义多个函数来定义卷积操作,池化操作,全连接操作,以及前向传播操作,方便简洁,例如VGGNet。

VGGNet把网络分成了5段,每段都把多个3*3的卷积网络串联在一起,每段卷积后面接一个最大池化层,最后面是3个全连接层和一个softmax层。

模型探索了卷积神经网络的深度和其性能之间的关系,通过反复的堆叠3 * 3的小型卷积核和2 * 2的最大池化层,成功的构建了16~19层深的卷积神经网络。 VGGNet全部使用3 * 3的卷积核和2 * 2的池化核,通过不断加深网络结构来提升性能。网络层数的增长并不会带来参数量上的爆炸,因为参数量主要集中在最后三个全连接层中。

详见我的另一篇博客关于VGGNet的介绍
VGGNet介绍1
VGGNet介绍2
VGGNet+Mnist总结-由浅入深_第1张图片

二、经典数据集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使用

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