深度学习基础 - MNIST实验(Tensorflow-CNN)
本文的完整代码托管在我的Github PnYuan - Practice-of-Machine-Learning - MNIST_tensorflow_demo,欢迎交流。
1.任务背景
这里,我们拟通过搭建卷积神经网络(CNN)来完成MNIST手写数字识别任务,关于MNIST任务的相关内容可参考前文深度学习基础 - MNIST实验(tensorflow+Softmax)或深度学习基础 - MNIST实验(tensorflow+MLP)。
2.实验过程
实验参考代码:python + tensorflow: cnn_demo.py & cnn_demo_self_test.py
实验分三步进行:
- 参考LeNet-5,搭建适用于该任务的CNN模型,开发实现基于tensorflow;
- 加载MNIST数据集,配置超参数,进行训练与测试,分析效果;
- 加载自制手写图片,采用训练好的CNN进行识别,分析效果;
2.1.CNN建模
LeNet-5是Y.LeCun等人早期所设计的一种CNN,是经典的神经网络架构之一,如下图所示:(参考原文献)
本实验采用python-tensorflow实现LeNet-5,其建模代码样例如下: