MNIST数据数组中的图像在哪里?

时间:2018-10-23 19:34:08

标签: python tensorflow mnist

我正在尝试查看用于机器学习的MNIST数据集。在Tensorflow中,可以使用

导入MNIST数据集
mnist = input_data.read_data_sets("/tmp/data/", one_hot=True)
full_data_x = mnist.train.images

但是,当我尝试使用可视化80x80数据数组时

test_x, test_y = mnist.test.images, mnist.test.labels
plt.gray()
plt.imshow(1-test_x[80:160,80:160])

看起来真的很奇怪:

Image of the dataset array

如何提取实际手写数字的图像,就像互联网上显示的那样:

Internet image of the MNIST dataset

我看到了类似的问题,例如this。但是,我尤其对训练数据数组中的 where 感兴趣,这些图像实际上是隐藏的。我知道张量流模块提供了显示图像的功能。

1 个答案:

答案 0 :(得分:1)

我想我现在已经理解了您的问题,与我认为重复的问题有些不同。

图像不一定是隐藏的。该列表的每个索引本身就是一张图片:

num_test_images, num_train_images = len(mnist.test.images), len(mnist.train.images)

size_of_first_test_image, size_of_first_train_image =  len(mnist.test.images[0]), len(mnist.train.images[0])

print num_test_images, num_train_images
print size_of_first_test_image, size_of_first_train_image

输出:

10000 55000
784 784

您可以看到训练和测试图像的数量是每个mnist列表的长度。每个图像都是大小为784的平面阵列。您必须自己重塑形状以使用numpy或类似的东西进行显示。

尝试一下:

first_test_image = np.array(mnist.test.images[0], dtype='float')
reshaped_image = first_image.reshape((28, 28))