MNIST数据库推理

Reasoning about MNIST database

由于代理,我无法以简单的方式下载 Keras MNIST 数据库。

所以我从这里下载了本地版本:https://s3.amazonaws.com/img-datasets/mnist.pkl.gz

我正在使用以下代码将其导入到我的笔记本中:

import gzip
import pickle
f = gzip.open('mnist.pkl.gz', 'rb')
if sys.version_info < (3,):
    data = pickle.load(f)
else:
    data = pickle.load(f, encoding='bytes')
f.close()
print(data)
(X_train, y_train), (X_test, y_test) = data

但我不太确定如何使用它。

我正在尝试像这样打印形状:

print(X_train.shape)
print(y_train.shape)

但这给出了输出:

(60000, 28, 28)
(60000,)

这对我来说真的没有意义。这到底是什么意思?我怎样才能更有意义地打印它?

X_train 的形状意味着您有 60,000 个形状示例 (28, 28),所以基本上有 60,000 张大小为 28 x 28 的黑白图像,因为您没有第三个渠道。

对于您的y_train,这意味着您有 60.000 个标签,因此每个对应的图像都有一个标签。

如果您想打印图像以查看它的外观,您可以这样做:
(这里是第一张图片)

plt.imshow(X_train[0, :, :], 'gray')
plt.title("image label: "+ str(y_train[0]), fontsize=14)

你是不是更清楚了?