【问题标题】:How should I interpret the output of the sparse_categorical_crossentropy function?我应该如何解释 sparse_categorical_crossentropy 函数的输出?
【发布时间】:2018-11-23 12:40:34
【问题描述】:

作为输入 a 有一个浮点数 1.0 或 0.0。当我尝试使用我的模型和 sparse_categorical_crossentropy 损失进行预测时,我得到如下信息: [[0.4846592 0.5153408]].

我怎么知道它预测的是什么类别?

【问题讨论】:

    标签: python tensorflow machine-learning keras loss


    【解决方案1】:

    您看到的这些数字是给定输入样本的每个类别的概率。例如,[[0.4846592 0.5153408]] 表示给定样本属于 0 类的概率约为 0.48,属于 1 类的概率约为 0.51。因此,您想选择概率最高的课程,因此您可以使用np.argmax 来查找哪个索引(即 0 或 1)是最大的:

    import numpy as np
    
    pred_class = np.argmax(probs, axis=-1) 
    

    此外,这与模型的损失函数无关。这些概率由模型中的最后一层给出,很可能它使用softmax 作为激活函数将输出归一化为概率分布。

    【讨论】:

    • 我知道这是一个老问题,但是您怎么知道“0 类”指的是哪个类别名称? sklearn 的 One Hot Encoder 中是否有类似 OHE.categories_ 的内容?
    • @alan.elkin 如果使用sparse_categorical_crossentropy,您分配给数字0的类别实际上是0类;您分配给数字 1 的类别实际上是 1 类;等等。例如,如果您使用 sklearn 中的 LabelEncoder,则可以通过 .classes_ 属性找到此映射(请参阅文档和示例)。
    猜你喜欢
    • 2011-05-01
    • 2021-07-06
    • 2018-11-26
    • 2017-06-20
    • 2012-09-22
    • 2018-01-13
    • 1970-01-01
    • 2017-12-16
    • 1970-01-01
    相关资源
    最近更新 更多