MINIS手写体识别相当于机器学习中的Hello world,作为深度学习领域的入门任务是初学者的首选。
数据集下载 download.py
1. MINIST数据集
MINIST数据集是一个图片压缩包,包含大量手写数字图片;
其中一个数据样本有两部分构成:手写图片和label;
数据集每个样本都是(1,784)维度的图片,为了方便展示就像下图一样画成二维矩阵,实际上后面要将向量转换为28*28的二维矩阵;
2. 读取数据
TensorFlow为了教学MNIST而提前编制了程序,所以只需两行代码就可自动下载数据集文件
from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)
# 从MNIST_data/中读取MNIST数据,这条语句在数据不存在时,会自动执行下载
运行后可以在相应目录下查看到如下数据压缩包
3. 打印数据集基本信息
数据集可分为:
训练集 | 测试集 | 验证集 |
---|---|---|
minist.train | minist.test | minist.validation |
55,000 | 10,000 | 5,000 |
训练模型 | 多次使用调参 | 评估模型 |
将MINIST保存为图片 save_pic.py
1. 创建文件夹保存原始图片
save_dir = 'MNIST_data/raw/'
if os.path.exists(save_dir) is False: # 判断save_dir文件是否存在
os.makedirs(save_dir) # os.makedirs()方法用于递归创建目录
2. reshape图片
# 注意:mnist.train.images[i, :]就表示第i张图片(序号从0开始)
image_array = mnist.train.images[i, :]
# TensorFlow中的MNIST图片是一个784维的向量,我们重新把它还原为28x28