Python 使用keras utils to_Category将分类数据转换回数字

Python 使用keras utils to_Category将分类数据转换回数字,python,keras,deep-learning,Python,Keras,Deep Learning,我正在使用从keras.utils对列表中的数字进行热编码。如何从分类数据中获取数字?有什么功能可以使用吗 Y=to_categorical(y, num_classes=79) 您只需通过以下方式即可完成: 为什么要使用argmax(轴=-1) 在上面的示例中,to_category返回一个具有形状(6,6)的矩阵。设置轴=-1平均值,提取每行中的最大索引 [[1. 0. 0. 0. 0. 0.] [0. 1. 0. 0. 0. 0.] [0. 0. 1. 0. 0. 0.] [1.

我正在使用
keras.utils
对列表中的数字进行热编码。如何从分类数据中获取数字?有什么功能可以使用吗

Y=to_categorical(y, num_classes=79)
您只需通过以下方式即可完成:


为什么要使用argmax(轴=-1)

在上面的示例中,
to_category
返回一个具有形状(6,6)的矩阵。设置轴=-1平均值,提取每行中的最大索引

[[1. 0. 0. 0. 0. 0.]
 [0. 1. 0. 0. 0. 0.]
 [0. 0. 1. 0. 0. 0.]
 [1. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 1. 0.]
 [0. 0. 0. 0. 0. 1.]]
请参阅关于索引的更多信息

如果我的数据有多个维度怎么办

没有区别。初步列表中的每个条目都转换为大小为
[1,nb_classes]
的一个热编码,其中只有一个索引为一,其余为零。与上面的示例类似,当您在每行中找到最大值时,它将转换为原始列表

y = [[0, 1], [2, 0], [4, 5]]
Y = keras.utils.to_categorical(y, num_classes=6)

#[[[1. 0. 0. 0. 0. 0.]
#  [0. 1. 0. 0. 0. 0.]]
#
# [[0. 0. 1. 0. 0. 0.]
#  [1. 0. 0. 0. 0. 0.]]
#
# [[0. 0. 0. 0. 1. 0.]
#  [0. 0. 0. 0. 0. 1.]]]

y = np.argmax(Y, axis=-1)

#[[0 1]
# [2 0]
# [4 5]]

谢谢你的回复,阿米尔。你能解释一下为什么轴的值是-1吗?好的,很好。如果Y的形状是三维的。在这种情况下,我们如何计算轴呢。。。将轴设置为-1。
y = [[0, 1], [2, 0], [4, 5]]
Y = keras.utils.to_categorical(y, num_classes=6)

#[[[1. 0. 0. 0. 0. 0.]
#  [0. 1. 0. 0. 0. 0.]]
#
# [[0. 0. 1. 0. 0. 0.]
#  [1. 0. 0. 0. 0. 0.]]
#
# [[0. 0. 0. 0. 1. 0.]
#  [0. 0. 0. 0. 0. 1.]]]

y = np.argmax(Y, axis=-1)

#[[0 1]
# [2 0]
# [4 5]]