Python 在指定一个\u hot=True后,如何从MNIST示例中获取整数标签?
我一直在尝试(解释.cls和.labels at),这只是一个简单的MNIST分类器模型。但我无法完成它,因为Tensorflow中显然缺少一个函数Python 在指定一个\u hot=True后,如何从MNIST示例中获取整数标签?,python,tensorflow,mnist,one-hot-encoding,Python,Tensorflow,Mnist,One Hot Encoding,我一直在尝试(解释.cls和.labels at),这只是一个简单的MNIST分类器模型。但我无法完成它,因为Tensorflow中显然缺少一个函数 >>>from tensorflow.examples.tutorials.mnist import input_data >>>data = input_data.read_data_sets("data/MNIST", one_hot=True) >>>one_hot_labels = d
>>>from tensorflow.examples.tutorials.mnist import input_data
>>>data = input_data.read_data_sets("data/MNIST", one_hot=True)
>>>one_hot_labels = data.test.labels #mat shape=(num_images X num_classes)
>>>cls_labels = data.test.cls #mat shape=(num_images X 1)
Traceback (most recent call last):
File "/home/file.py", line 5, in <module>
cls_labels = data.test.cls
AttributeError: 'DataSet' object has no attribute 'cls'
我正在Linux上使用Tensorflow 0.10.0,不知道是否删除了.cls选项
如果是这样,是否有一种替代方法可以从一个热向量数组中编码分类器名称数组
谢谢目前我们使用属性
图像
作为图像数据,使用标签
作为类(标签)。比如说,
from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets("data/MNIST", one_hot=True)
# data
images = mnist.test.images
# label
labels = mnist.test.labels
# without one-hot
mnist = input_data.read_data_sets("data/MNIST", one_hot=False)
# original data
images = mnist.test.images.reshape([-1, 28, 28])
print(images.shape)
# label
labels = mnist.test.labels
print(labels)
目前,我们对图像数据使用属性
图像
,对类(标签)使用属性标签
。比如说,
from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets("data/MNIST", one_hot=True)
# data
images = mnist.test.images
# label
labels = mnist.test.labels
# without one-hot
mnist = input_data.read_data_sets("data/MNIST", one_hot=False)
# original data
images = mnist.test.images.reshape([-1, 28, 28])
print(images.shape)
# label
labels = mnist.test.labels
print(labels)
您的标签位于这种类型的数组(一个热)中,例如:
array([[ 0., 0., 0., ..., 1., 0., 0.],
[ 0., 0., 1., ..., 0., 0., 0.],
[ 0., 1., 0., ..., 0., 0., 0.],
1号。位于数组的位置,其中告诉您哪个标签是
要从该数据中获取整数标签,必须使用以下内容获取索引:
data.test.cls = np.argmax(data.test.labels, axis=1)
您的标签位于这种类型的数组(一个热)中,例如:
array([[ 0., 0., 0., ..., 1., 0., 0.],
[ 0., 0., 1., ..., 0., 0., 0.],
[ 0., 1., 0., ..., 0., 0., 0.],
1号。位于数组的位置,其中告诉您哪个标签是
要从该数据中获取整数标签,必须使用以下内容获取索引:
data.test.cls = np.argmax(data.test.labels, axis=1)
我注意到images函数,但是它是像素数据的平坦向量,而不是对应于其one_热向量的整数标签。例如:data.test.labels=[0,0,0,0,0,0,0,1,0,0,0]和data.test.cls=[7]是的,原始
read\u data\u set
函数将MNIST图像转换为一维向量,如果您想要获得原始数据,请对数据进行整形,然后您就会得到它。如果你想有整数标签,你需要在read\u data\u set
函数中使用one\u hot=False
。我注意到images函数,但是它是一个像素数据的平坦向量,而不是对应于其one_热向量的整数标签。例如:data.test.labels=[0,0,0,0,0,0,0,1,0,0,0]和data.test.cls=[7]是的,原始read\u data\u set
函数将MNIST图像转换为一维向量,如果您想要获得原始数据,请对数据进行整形,然后您就会得到它。如果你想有整数标签,你需要在read\u data\u set
函数中使用one\u hot=False
。我已经修改了代码来说明它们。我发现了一个使用Numpy的解决方法。当您指定一个_hot=True时,您可以使用:np.argmax(data.test.labels,axis=1)将其编码回整数标签数组。我发现了一个使用Numpy的解决方法。当指定一个_hot=True时,可以使用以下命令将其编码回整数标签数组:np.argmax(data.test.labels,axis=1)