我想知道Keras如何计算多类分类问题(即使用的函数)的验证和训练精度。我将我的模型编译如下:
model.compile(optimizer=Adam(lr=0.001), loss='categorical_crossentropy', metrics=['accuracy'])
但我试图了解如何计算验证准确度和训练准确度(即显式公式)。
我知道验证和培训损失由&{39; categorical_crossentropy
确定,但我不确定准确性。
注意:这不是此post的副本。我的问题是寻找对Keras用于计算准确性的python函数的解释,而不是上述帖子中给出的理论细节。
答案 0 :(得分:3)
您可以在Keras github repo中找到指标file及其实现。在这种情况下,遵循度量标准:
def categorical_accuracy(y_true, y_pred):
return K.cast(K.equal(K.argmax(y_true, axis=-1),
K.argmax(y_pred, axis=-1)),
K.floatx())
通过检查预测的类是否与真实类相同来计算单个(y_true,y_pred)对的准确性。这样做是为了比较y_pred向量中得分最高的类的索引和y_true向量中实际类的索引。它返回0或1。
使用此函数计算数据集的整体精度,使用传统的精度公式,定义为
(amount of correct guesses)/(total amount of guesses)