这可能是一个愚蠢的问题但是:
我注意到损失函数的选择会修改评估期间获得的准确度 .
我认为损失仅在训练期间使用,当然,它取决于模型在预测中的优点,而不是准确性,即正确预测的数量超过样本总数 .
EDIT
我没有正确解释我的自我 .
我的问题是因为我最近训练了一个损失 binary_crossentropy
的模型,而来自model.evaluate()的准确率为96% . 但这不正确!我检查了"manually",模型得到了预测总数的44% . 然后我改为 categorical_crossentropy
然后准确性是正确的 .
MAYBE ANSWER 来自:another question
我发现了问题 . metrics = ['accuracy']自动从成本函数计算准确度 . 因此,使用binary_crossentropy显示二进制精度,而不是分类精度 . 使用categorical_crossentropy会自动切换到分类精度,现在它与使用model1.predict()手动计算的相同 .
3 回答
Keras根据您的损失功能选择使用性能指标 . 当您使用binary_crossentropy时,它虽然使用binary_accuracy,其计算方式与categorical_accuracy不同 . 如果您有多个输出神经元,则应始终使用categorical_crossentropy .
该模型试图最小化所选择的损失函数 . 它会调整权重来执行此操作 . 不同的损失函数导致不同的权重 .
这些权重确定了对样本总数进行了多少次正确预测 . 因此,选择损失函数会影响模型精度是正确的行为 .
来自:another question