keras如何定义“准确度”和“损失”?

Posted

技术标签:

【中文标题】keras如何定义“准确度”和“损失”?【英文标题】:How does keras define "accuracy" and "loss"? 【发布时间】:2017-05-22 18:00:52 【问题描述】:

我找不到 Keras 如何定义“准确性”和“损失”。我知道我可以指定不同的指标(例如 mse、交叉熵)——但 keras 会打印出标准的“准确性”。那是怎么定义的?损失也是如此:我知道我可以指定不同类型的正则化——那些在损失中吗?

理想情况下,我想打印出用于定义它的方程式;如果没有,我会在这里回答。

【问题讨论】:

【参考方案1】:

查看metrics.py,您可以在其中找到所有可用指标的定义,包括不同类型的准确度。除非您在编译模型时将其添加到所需指标列表中,否则不会打印准确度。

根据定义,正则化器被添加到损失中。例如,参见Layerclass 的add_loss 方法。

更新

accuracy 的类型是根据目标函数确定的,参见training.py。默认选择是categorical_accuracy。当目标函数是二进制或稀疏时,会选择其他类型,如 binary_accuracysparse_categorical_accuracy

【讨论】:

如果我添加到指标'accuracy',那是哪个指标? metrics.py 里面有几个有“准确”二字? 谢谢。但是如果目标函数两者都不是,而是mse,那么选择什么? accuracy 在这种情况下是什么意思? 在这种情况下,categorical_accuracy 被选中,这意味着根据文档“计算多类分类问题的所有预测的平均准确率”。如果您的问题不是分类,那么包括准确性就没有多大意义。 @SRobertJames @SergiiGryshkevych 我点击了categorical_accuracy 的链接。似乎 categorical_accuracy 不再是标量。如果我没记错的话,它现在是一个数组。 categorical_accuracy

以上是关于keras如何定义“准确度”和“损失”?的主要内容,如果未能解决你的问题,请参考以下文章

TensorFlow 低级模型(没有 Keras 和 Sklearn) - 每一步都获得损失 = 0 和准确度 = 100%

Keras - 具有经常丢失的 GRU 层 - 损失:'nan',准确度:0

keras 和 scikit-learn 中 MLP 回归器的不同损失值和准确度

当损失是均方误差 (MSE) 时,啥函数定义 Keras 中的准确性?

在 keras 中实现三元组损失的准确性

为啥在 Keras 中 fit_generator 的准确度、evaluate_generator 的准确度和自定义准确度不同?