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.utils.to_categorical 和 pd.get_dummies 之间有啥区别吗?
我试图在keras中使用to_categorical方法将我的变量转换为分类并面对问题
Python keras:多标签值的 to_categorical 给出 ValueError: invalid literal for int() with base 10