MNIST手写数字集识别
一个完整的TensorFlow程序来解决MNIST手写体数字识别问题。用到了带指数衰减的学习率设置、正则化避免过拟合,以及滑动平均模型来增加模型鲁棒性。
1、第一次运行下面的代码会TensorFlow会自动下载数据集到下面的路径中,再用one_hot参数将y集热点化。
自动下载不成功的可以去http://yann.lecun.com/exdb/mnist/ 下载,下载完直接放到文件夹里面就好,不用解压。
import tensorflow as tf
import os
from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets('../datasets/MNIST_data/', one_hot=True)
2. 数据集会自动被分成3个子集,train、validation和test。以下代码会显示数据集的大小。
print("Training data size: ", mnist.train.num_examples)
print("Validating data size: ", mnist.validation.num_examples)
print("Testing data size: ", mnist.test.num_examples)
Training data size: 55000
Validating data size: 5000
Testing data size: 10000
3. 查看training数据集中某个成员的像素矩阵生成的一维数组和其属于的数字标签
print("Example training data: ", mnist.train.images[0] )
print("Example training data label: ", mnist.train.labels[0])
Example training data: [ 0. 0. 0. 0. 0. 0. 0.
·····
0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0. ]
Example training data label: [ 0. 0. 0. 0. 0. 0. 0. 1. 0. 0.]