首页 文章

tensorflow softmax_cross_entropy_with_logits和sigmoid_cross_entropy_with_logits之间的实现差异

提问于
浏览
4

我最近遇到了tensorflow softmax_cross_entropy_with_logits ,但我无法弄清楚实现与 sigmoid_cross_entropy_with_logits 的区别 .

3 回答

  • 1

    sigmoid和softmax之间的主要区别在于softmax函数在概率方面返回结果,这种结果更符合ML哲学 . softmax的所有输出总和为1.转向告诉您网络对答案的信心 .

    然而,sigmoid输出是谨慎的 . 它的正确或不正确 . 你必须编写代码来自己计算概率 .

    就网络的性能而言 . Softmax通常比sigmoid提供更好的准确性 . 但是,它也高度依赖于其他超参数 .

  • 0

    softmax_cross_entropy_with_logits 首先计算softmax然后计算交叉熵,而 sigmoid_cross_entropy_with_logits 首先计算sigmoid然后交叉熵 .

  • 0

    我知道我的回答有点晚了,但迟到总比没有好 . 所以我有完全相同的疑问,答案就在tensorflow文档中 . 答案是,我引用:

    softmax_cross_entropy_with_logits:测量离散分类任务中的概率误差,其中类是互斥的(每个条目恰好在一个类中) . sigmoid_cross_entropy_with_logits:测量离散分类任务中的概率误差,其中每个类是独立的而不是互斥的

    编辑:我想我应该补充一点,虽然这些类是互斥的,但它们的概率不一定如此 . 所需要的只是每行标签是有效的概率分布 . sparse_softmax_cross_entropy_with_logits 中不是这种情况,其中 label 是仅包含真实类索引的向量 .

    我还添加了文档的链接 . 希望这个答案很有帮助 .

相关问题