首页 文章

为什么在Keras的model.evaluate()中,损失用于计算准确度?

提问于
浏览
0

这可能是一个愚蠢的问题但是:

我注意到损失函数的选择会修改评估期间获得的准确度 .

我认为损失仅在训练期间使用,当然,它取决于模型在预测中的优点,而不是准确性,即正确预测的数量超过样本总数 .

EDIT

我没有正确解释我的自我 .

我的问题是因为我最近训练了一个损失 binary_crossentropy 的模型,而来自model.evaluate()的准确率为96% . 但这不正确!我检查了"manually",模型得到了预测总数的44% . 然后我改为 categorical_crossentropy 然后准确性是正确的 .

MAYBE ANSWER 来自:another question

我发现了问题 . metrics = ['accuracy']自动从成本函数计算准确度 . 因此,使用binary_crossentropy显示二进制精度,而不是分类精度 . 使用categorical_crossentropy会自动切换到分类精度,现在它与使用model1.predict()手动计算的相同 .

3 回答

  • 0

    Keras根据您的损失功能选择使用性能指标 . 当您使用binary_crossentropy时,它虽然使用binary_accuracy,其计算方式与categorical_accuracy不同 . 如果您有多个输出神经元,则应始终使用categorical_crossentropy .

  • 0

    该模型试图最小化所选择的损失函数 . 它会调整权重来执行此操作 . 不同的损失函数导致不同的权重 .

    这些权重确定了对样本总数进行了多少次正确预测 . 因此,选择损失函数会影响模型精度是正确的行为 .

  • 1

    来自:another question

    我发现了问题 . metrics = ['accuracy']自动从成本函数计算准确度 . 因此,使用binary_crossentropy显示二进制精度,而不是分类精度 . 使用categorical_crossentropy会自动切换到分类精度,现在它与使用model1.predict()手动计算的相同 .

相关问题