MNIST数据集是在图像处理领域广泛应用的数据集,很多书籍和教程都会对它“下手”,其几乎成为一个图像处理中的“hello world”。MNIST数据集是由杨·乐昆(Yann LeCun)教授对自美国国家标准与技术研究所(National Institute of Standards and Technology)收集的数据集进行整理得到。训练集(training set)由250个不同人手写的60000个数字构成,其中50%是美国高中学生,50%来自美国人口普查局(The Census Bureau)的工作人员。测试集(test set)也是同样比例的10000个手写数字数据。在杨·乐昆(Yann LeCun)教授的网站中(http://yann.lecun.com/exdb/mnist)对MNIST数据集做了详细的介绍并提供下载。本书采用Keras深度学习框架实现手写数字识别,这样可以利用Keras自动导入MNIST数据集进行查看和使用,需要注意一点,第一次导入MNIST数据集时需要花费一定时间完成网络下载。示例代码如下:
import keras
from keras. datasets import mnist#导入mnist模块
(x_train_image, y_train_label),
(x_test_image, y_test_label)=mnist.load_data()#下载读取mnist数据集
print('train data=',len(x_train_image))
print('test data=',len(x_test_image))
print('x_train_image:',x_train_image. shape)
print('y_train_label:',y_train_label. shape)
运行输出,可以得到数据集的相关信息:
train data=60000(www.xing528.com)
test data=10000
x_train_image:(60000,28,28)
y_train_label:(60000,)
在上面代码行中,x_train_image, y_train_label, x_test_image, y_test_label可以返回训练集数据、训练集标签以及测试集数据、测试集标签,通过打印输出可以发现训练数据集包括60000个样本,测试数据集包括10000个样本。在训练和测试数据集中的每个样本代表一张手写数字灰度图片,每张图片均由28×28个像素组成。训练集标签和测试集标签包含了对应样本代表的类别标签,分别用0~9表示。可以用如下代码显示一张手写数字图片(图4-20):
import matplotlib. pyplot as plt
image=x_train_image[0]#取第一个样本图片的数据
plt. imshow(image, cmap='binary')
plt. show()
print(y_train_label[0])#输出第一个样本的标签,结果为5
图4-20 数字5图片
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。