【问题标题】:Reasoning about MNIST databaseMNIST 数据库的推理
【发布时间】:2019-06-06 11:50:32
【问题描述】:

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

所以我从这里下载了本地版本: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,)

这对我来说真的没有意义。这实际上意味着什么?我怎样才能更有意义地打印它?

【问题讨论】:

  • 为什么它对你没有意义?你到底在期待什么?
  • @MatiasValdenegro 嗨,Matias,感谢您的回复。我只是想知道每个 numpy 数组包含什么以及如何存储这些数据/如何有意义地显示它。我对需要 4 个数组感到困惑。

标签: keras mnist keras-2


【解决方案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)

你更清楚了吗?

【讨论】:

  • 太好了,谢谢。唯一让我感到困惑的是标签 - X_train 中位置 [0] 的图像,是 y_train[0] 中的标签,是吗?
  • 实际上'label'表示,在那种情况下,'图像上有什么数字',所以如果 X_train[0] 处的图像表示'5',则 y_train[ 位置处的标签0] 将是“5”。 y_train 包含标签,X_train 包含图像
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-09
  • 1970-01-01
  • 2021-05-23
  • 1970-01-01
  • 1970-01-01
  • 2017-08-26
相关资源
最近更新 更多