一、任务需求
mnist手写识别是经典的入门分类任务。给定28x28x1的输入图像,输出0-9共计十类的分类结果。
本次实现分两部分,一是用传统的全连接神经网络实现分类,二是用卷积神经网络(CNN)实现分类。
二、所用工具
python(Anaconda3)
tensorflow 1.0.0
Ubuntu 16.04.1 LTS
三、代码框架
代码地址:https://github.com/zhuangchen-nlp/mnist-tf
(一)传统神经网络
- 输入层:拉伸的手写文字图像,维度为[-1,28x28]。
- 全连接层:500个节点,维度为[-1,500]。
- 输出层:分类输出,维度为[-1,10]。
(二)卷积神经网络-CNN
- 输入层:手写文字图像,维度为[-1,28,28,1]。
- 卷积层1:filter的shape为5x5x32,strides为1,padding为“SAME”。卷积后维度为[-1,28,28,32]。
- 池化层2:max-pooling,ksize为2x2,步长为2。池化后维度为[-1,14,14,32]。
- 卷积层3:filter的shape为5x5x64,strides为1,padding为“SAME”。卷积后维度为[-1,14,14