我知道这可能是一个愚蠢的问题,但我真的不知道为什么。以下是我尝试从火车数据中的相同索引打印单个图像和标签的代码

import matplotlib.pyplot as plt
from tensorflow.examples.tutorials.mnist import      input_data
import tensorflow as tf

mndata = input_data.read_data_sets("MNIST_data/", one_hot=True)

images_train=mndata.train.images    # training set
labels_train=mndata.train.labels
images_test=mndata.test.images     # testing set
labels_test=mndata.test.labels

##### Testing single image to network

train_index=4

image = images_train[train_index]
label = labels_train[train_index]

plt.imshow(image.reshape(28,28))
plt.show()
print('label',label)


图片显示为一
但是label是[0. 0. 0. 0. 0. 0. 0. 0. 0. 1.]

最佳答案

在文件“ train-labels.idx1-ubyte”中,您有一个偏移量,请看:

[偏移量] [类型] [值] [描述]

0000 32位整数0x00000801(2049)幻数(MSB优先)

0004 32位整数10000个项目

0008无符号字节标签

0009无符号字节标签

........

xxxx无符号字节标签

添加偏移量8即可完成!

资料来源:http://yann.lecun.com/exdb/mnist/

10-07 21:53