本项目是作者(MRL Liu)基于TensorFlow框架训练的一个全连接网络的手写数字识别器,是作者一个阶段总结性项目。基于MNIST的手写数字识别项目已是深度学习入门的必备项目,但区别于其他,本项目的特色是添加了模型的保存与加载功能、TensorFlow可视化功能、指数衰减法的学习率、滑动平均模型技术、L2正则化等常见技术和可视化手写数字图片功能等。整个项目基于良好的面向对象思想,方法定义层层推进,可以说是非常好的总结性学习材料。例如:
本项目的所有代码共分为2个模块:
步骤 | 模块名称 | 主要任务 |
---|---|---|
一 | datahelper.py | 提供可视化读取后的图片文件数据的方法 |
二 | Model_Constructor.py | 提供定义模型、训练模型、评估模型的方法 |
定义的计算图结构在TensorBoard中的可视化效果:
定义的loss和accuracy在TensorBoard中的可视化效果:
定义的模型变量在TensorBoard中的可视化效果:
在随机抽取图片的可视化预测效果:
在训练3000次后模型在验证集中可以达到的准确率:0.9838
本项目使用的一些其他参考信息:
条目 | 说明 |
---|---|
本项目GitHub开源地址 | https://github.com/MagicDeveloperDRL/MRL-Mnist-Number-Master |
本项目作者博客地址 | https://blog.csdn.net/qq_41959920/article/details/115875588 |
本项目用到的第三方库 | Numpy,TensorFlow1.14.1,matplotlib, |
主要参考书籍 | 《TensorFlow实战Google深度学习框架》(第2版) |
数据集来源 | http://yann.lecun.com/exdb/mnist(本项目原工程中包含有数据集及保存的训练数据) |
本项目包含的文件目录结构如下:
如果读者不想下载多余的网络模型和TesorBoard文件,可以只下载代码datahelper.py和net_model.py和数据集mnist,然后仿照上述目录新建logs和models文件夹即可运行生成新的网络模型和TesorBoard文件。