文章目录
- 一、 简介
- 二、下载MNIST数据集
- 训练集和测试集的长度
- 输出图像数据和标记数据的形状
- 显示手写数字图片
- 输出数据集中的第1个样本
- 显示图片
一、 简介
MNIST是一个非常有名的手写体数字识别数据集(手写数字灰度图像数据集),在很多资料中,这个数据集都会被用作深度学习的入门样例。
MNIST数据集是由0到9的数字图像构成的。训练图像有6万张,测试图像有1万张。MNIST数据集是NIST数据集的一个子集,它包含了60000张图片作为训练数据,10000张图片作为测试数据。由250个不同的人手写而成。
每一张图片都有对应的标签数字,训练图像一共有60000 张,供研究人员训练出合适的模型。测试图像一共有10000 张,供研究人员测试训练的模型的性能。
这些手写图片都是2828像素,灰度图像。
但是它们并不是作为图像文件存储的,而是2828的二维数组中。数组中的每个元素对应数组中的每个像素。
MNIST已经在keras内置模块里,因此可以直接使用keras的datesets来访问它。
二、下载MNIST数据集
import tensorflow as tf
minist = tf.keras.datasets.mnist
(train_x, train_y), (test_x, test_y) = minist.load_data()
下载中
下载完成
下载路径C:\Users\dell\.keras\datasets\
训练集和测试集的长度
print("Training set:", len(train_x))
print("Testing set:", len(test_x))
输出图像数据和标记数据的形状
print("train_x", train_x.shape, train_x.dtype)
print("train_y", train_y.shape, train_y.dtype)
运行结果
显示手写数字图片
输出数据集中的第1个样本
train[0]
一个28×28的二位数组,因为比较长,所以这里省略了中间的部分。数组中的每个元素对应图像中的一个像素,由于图片的背景是黑色,因此数组中有大量的0数值不为0的元素就是手写数字的笔画,主要集中在图片的中间。
显示图片
我们可以以图像的形式显示出来
import matplotlib.pyplot as plt
plt.axis("off")
plt.imshow(train_x[0], cmap="gray")
plt.show()
运行结果
下面输出这个图片的标签
train_y[0]
# 5
例:随机显示4幅手写数字图片
for i in range(4):
num = np.random.randint(1, 60000)
plt.subplot(1, 4, i+1)
plt.axis("off")
plt.imshow(train_x[num], cmap="gray")
plt.title(train_y[num])
plt.show()
运行结果