关于MNIST数据库的推理

时间:2019-06-06 11:50:32

标签: keras mnist keras-2

由于代理,我无法以简单的方式下载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,)

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

1 个答案:

答案 0 :(得分:1)

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)

对您来说更清楚吗?