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