在Python中的MNIST数据集 – 基本导入和绘图

欢迎参加关于MNIST数据集的教程。在本教程中,我们将学习什么是MNIST数据集,如何在Python中导入它,并如何使用matplotlib进行绘图。

什么是MNIST数据集?

MNIST数据集是一个大型的手写数字集合。它在图像处理领域非常流行,并经常用于机器学习算法的基准测试。

MNISTModified National Institute of Standards and Technology(美国国家标准与技术研究所)数据库的缩写。

MNIST包含了一系列28 x 28像素的手写数字图像,总数为70,000张,涵盖了从0到9的数字。

该数据集已经被划分为训练集和测试集。我们稍后将在教程中看到这一点。

有关MNIST的更多信息,请参阅其维基百科页面。我们将从Keras中导入数据集。

让我们从将数据集加载到我们的Python笔记本中开始吧。

从Keras加载MNIST

我们首先需要从Keras模块导入MNIST数据集。

我们可以使用以下代码行来完成:

from keras.datasets import mnist

现在我们将训练集和测试集加载到不同的变量中。

(train_X, train_y), (test_X, test_y) = mnist.load_data()

让我们找出训练集和测试集中有多少图像。换句话说,让我们尝试找出这个数据集的拆分比。

要了解更多关于拆分比的信息,请参考这篇关于如何将数据拆分为训练集和测试集的教程。

为了找到拆分比,我们将打印所有向量的形状。

print('X_train: ' + str(train_X.shape))
print('Y_train: ' + str(train_y.shape))
print('X_test:  '  + str(test_X.shape))
print('Y_test:  '  + str(test_y.shape))

输出:

X_train: (60000, 28, 28)
Y_train: (60000,)
X_test:  (10000, 28, 28)
Y_test:  (10000,)

我们可以看到训练集中有60k张图像,测试集中有10k张图像。

我们的训练向量的维度是(60000, 28, 28),这是因为有60,000张灰度图像,尺寸为28X28。

加载MNIST数据集的完整代码

这是本节的完整代码:

from keras.datasets import mnist

#加载数据集
(train_X, train_y), (test_X, test_y) = mnist.load_data()

#打印向量的形状
print('X_train: ' + str(train_X.shape))
print('Y_train: ' + str(train_y.shape))
print('X_test:  '  + str(test_X.shape))
print('Y_test:  '  + str(test_y.shape))

让我们学习如何绘制这个数据集。

使用matplotlib绘制MNIST数据集

始终绘制正在处理的数据集是个好主意。这将让您对正在处理的数据有一个很好的了解。

作为负责任的数据科学家,始终将数据集绘制为第零步应该是您的责任。

要绘制数据集,请使用以下代码段:

from matplotlib import pyplot
for i in range(9):  
pyplot.subplot(330 + 1 + i)
pyplot.imshow(train_X[i], cmap=pyplot.get_cmap('gray'))
pyplot.show()

输出:

MNIST Data Plotted

这就是我们的数据样式!

想象一下有70,000张这样的图片。这就是数据集内部的内容。数据集如此庞大是它受欢迎的原因之一。

手写识别的问题,无论多么琐碎,现在都已经过时了。需要一个更具挑战性的MNIST数据集的版本,它可以作为其替代品。

是否存在MNIST数据集的更具挑战性的版本?

是的,有的。这就是Fashion MNIST数据集。

时尚MNIST数据集

时尚MNIST数据集是对旧的MNIST数据集的更具挑战性的替代品。

该数据集包含70,000个小正方形,28×28像素的灰度图像,显示了10种类型的服装,如鞋子、T恤、裙子等。

要了解如何导入和绘制时尚MNIST数据集,请阅读这篇教程

结论

这个教程是关于在Python中导入和绘制MNIST数据集的。我们还讨论了这个数据集的更具挑战性的替代品,即时尚MNIST集。希望你在学习中玩得愉快!

Source:
https://www.digitalocean.com/community/tutorials/mnist-dataset-in-python