keras如何定义“准确度”和“损失”?
Posted
技术标签:
【中文标题】keras如何定义“准确度”和“损失”?【英文标题】:How does keras define "accuracy" and "loss"? 【发布时间】:2017-05-22 18:00:52 【问题描述】:我找不到 Keras 如何定义“准确性”和“损失”。我知道我可以指定不同的指标(例如 mse、交叉熵)——但 keras 会打印出标准的“准确性”。那是怎么定义的?损失也是如此:我知道我可以指定不同类型的正则化——那些在损失中吗?
理想情况下,我想打印出用于定义它的方程式;如果没有,我会在这里回答。
【问题讨论】:
【参考方案1】:查看metrics.py
,您可以在其中找到所有可用指标的定义,包括不同类型的准确度。除非您在编译模型时将其添加到所需指标列表中,否则不会打印准确度。
根据定义,正则化器被添加到损失中。例如,参见Layer
class 的add_loss
方法。
更新
accuracy
的类型是根据目标函数确定的,参见training.py
。默认选择是categorical_accuracy
。当目标函数是二进制或稀疏时,会选择其他类型,如 binary_accuracy
和 sparse_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 中 fit_generator 的准确度、evaluate_generator 的准确度和自定义准确度不同?