MNIST是一套手写体数字的图像数据集,包含60000个训练样本和10,000个测试集,由纽约大学的Yann LeCun等人维护。
MNIST 手写体数字介绍
MNIST图像数据集使用形如【28,28】的二姐数组来表示每个手写体数字,数组中的每个元素对应一个像素点,即每张图像大小固定为28X28像素。
MNIST数据集中的图像都是256阶灰度图,即灰度值0表示白色( 背景),255表示黑色(前景),使用取值为【0,255】的uint8数据类型表示图像。为了加速训练,我们需要做数据规范化,将灰度值缩放为【0,1】的float32数据类型。
由于每张图像的尺寸是28X28像素,为了方便连续存储,我们可以将形如【28,28】的二姐数组“摊平”成形如【784,】的一阶数组,可以表示256*256*···*256 =256^784 张不同的图像。
但这些图像并非每一张都代表有效的手写体数字,其中绝大部分都是如下的噪声图:
下载和读取MNIST数据集
import tensorflow as tf
# 从tensorflow.examples.tutorials.mnist 导入模块
# 这是TensorFlow 为了教学MNIST而提前编制的程序
from tensorflow.examples.tutorials.mnist import input_data
# 从MNIST_data/中读取MNIST数据,这条语句在数据不存在时,会自动执行下载
mnist = input_data.read_data_sets("MNIST_data/")
(这种方法是被广泛使用的下载和读取的方法,如今被废弃,但仍然好用只是会多出一些警告,可以不用管。)
以下是最新的下载使用方式,使用kears:
from keras.datasets import mnist
(x_train,y_train),(x_test,y_test) = mnist.load_data()