我找不到Keras如何定义“准确性”和“损失”。我知道我可以指定不同的度量指标(例如,均方误差,交叉熵),但Keras打印出一个标准的“准确性”。它是如何定义的?同样的对于损失;我知道我可以指定不同类型的正则化;它们是否包含在损失中?
理想情况下,我想打印出用于定义它的方程;如果不行,我将接受这里的答案。
我找不到Keras如何定义“准确性”和“损失”。我知道我可以指定不同的度量指标(例如,均方误差,交叉熵),但Keras打印出一个标准的“准确性”。它是如何定义的?同样的对于损失;我知道我可以指定不同类型的正则化;它们是否包含在损失中?
理想情况下,我想打印出用于定义它的方程;如果不行,我将接受这里的答案。
metrics.py
,您可以在其中找到所有可用指标的定义,包括不同类型的准确度。仅当您将其添加到所需指标列表中并编译模型时,才会打印准确度。Layer
类的add_loss
方法。
更新
accuracy
的类型是根据目标函数确定的,请参见training.py
。默认选择是categorical_accuracy
。当目标函数为二进制或稀疏时,选择其他类型,如binary_accuracy
和sparse_categorical_accuracy
。get()
方法来获取特定的度量函数,即tf.keras.metrics.get('binary_accuracy')
。另一方面,总是调用get()
方法来获取特定的损失函数。
而且,准确性的类型根据目标类型选择(例如binary_accuracy
、categorical_accuracy
等)。
可以通过调用模块的dir()
打印所有指标/损失。
metrics_list = [m for m in dir(tf.keras.metrics) if not m.startswith('_')]
losses_list = [m for m in dir(tf.keras.losses) if not m.startswith('_')]
'accuracy'
中,那么是哪个度量标准?在metrics.py
中有几个词中带有 "accuracy" 这个词? - SRobertJamesbinary_crossentropy
也不是categorical_crossentropy
,而是mse
,那么选择什么?在那种情况下,accuracy
是什么意思? - SRobertJamescategorical_accuracy
,根据文档的解释,它意味着“计算多类分类问题所有预测的平均准确率”。如果您的问题不是分类问题,则包括准确性就没有太多意义。@SRobertJames - Sergii Gryshkevychcategorical_accuracy
的链接。如果我没记错的话,categorical_accuracy
现在不再是标量,而是一个数组。categorical_accuracy
- Xiaohong Deng