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

时间:2020-02-23 14:40:07  来源:igfitidea点击:

欢迎使用MNIST数据集上的本教程。
在本教程中,我们将学习什么是MNIST数据集,如何在Python中导入它,以及如何使用matplotlib对其进行绘制。

什么是MNIST数据集?

MNIST集是大量手写数字的集合。
它是图像处理领域中非常流行的数据集。
它通常用于对机器学习算法进行基准测试。

MNIST是美国国家标准与技术研究院数据库的缩写。

MNIST包含从0到9的70,000张28 x 28手写数字图像的集合。

数据集已经分为训练和测试集。
我们将在本教程的后面部分看到这一点。

有关MNIST的更多信息,请参阅其Wikipedia页面。
我们将从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

#loading the dataset
(train_X, train_y), (test_X, test_y) = mnist.load_data()

#printing the shapes of the vectors 
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数据绘制

这就是我们的数据!

想象一下像这些图像一样的70,000张图像。
这就是数据集中的内容。
数据量如此之大是数据集受欢迎的原因之一。

不管现在多么琐碎,手写识别问题都已不复存在。
需要一个更具挑战性的MNSIT数据集版本来替代它。