Numpy反向keras to_categorical

Posted

技术标签:

【中文标题】Numpy反向keras to_categorical【英文标题】:Numpy reverse keras to_categorical 【发布时间】:2018-05-03 00:03:09 【问题描述】:

在 keras 中,我使用to_categorical 将二进制 nx1 向量 y 转换为 nx2 矩阵,如果 y=1,则第一列为 1,第二列为 y=0。如何使用 numpy 反转此操作?

【问题讨论】:

你可以使用argmax np.argmax(a, axis = 1) 【参考方案1】:

简单。

numpy.argmax(a, axis=None, out=None)

这将返回沿轴的最大值的索引。

【讨论】:

【参考方案2】:

添加到 MazeRunner09 的答案。如果您使用 keras 中的 to_categorical,您将拥有一个列表,并且可以对整个 one-hot 编码列表使用列表推导:

y_classes = [np.argmax(y, axis=None, out=None) for y in y_test]

【讨论】:

【参考方案3】:

无需进行列表理解。简单的

numpy.argmax(a, axis=1)

将在所有行的每一行中找到 argmax

【讨论】:

这应该是答案。【参考方案4】:

这是一个如何在 tensorflow keras 中反转标签的完整示例:

label = [0,1,1,0]
label = tf.keras.utils.to_categorical(label)
print(label) #output: label = [[1,0],[0,1],[0,1],[1,0]]
label = tf.math.argmax(label, axis=1)
print(label) #output back to [0,1,1,0]

【讨论】:

以上是关于Numpy反向keras to_categorical的主要内容,如果未能解决你的问题,请参考以下文章

colab 在使用 keras.utils.to_categorical 时崩溃

keras中to_categorical()函数解析

keras.utils.to_categorical 和 pd.get_dummies 之间有啥区别吗?

我试图在keras中使用to_categorical方法将我的变量转换为分类并面对问题

np_utils.to_categorical 反向

Python keras:多标签值的 to_categorical 给出 ValueError: invalid literal for int() with base 10