Keras 如何计算多类分类问题的验证准确率和训练准确率?

use*_*121 4 python machine-learning deep-learning keras

我想知道 Keras 如何计算多类分类问题的验证和训练精度(即使用的函数)。我设置我的模型编译如下:

model.compile(optimizer=Adam(lr=0.001), loss='categorical_crossentropy', metrics=['accuracy'])
Run Code Online (Sandbox Code Playgroud)

但我试图了解验证准确度和训练准确度是如何计算的(即,显式公式)。

我知道验证和训练损失由 决定categorical_crossentropy,但我不确定准确性。

注意:这不是这篇文章的副本。我的问题是寻找对 Keras 用于计算准确性的 Python 函数的解释,而不是上述帖子中给出的理论细节。

lma*_*ens 5

您可以在 Keras github 存储库中找到指标文件及其实现。在这种情况下,以下指标适用:

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()) 
Run Code Online (Sandbox Code Playgroud)

这通过检查预测类是否与真实类相同来计算单个 (y_true, y_pred) 对的准确性。它这样做是为了比较 y_pred 向量中得分最高的类的索引和 y_true 向量中实际类的索引。它返回 0 或 1。

它使用这个函数来计算数据集的整体精度,通过使用常规的精度公式,定义为

(amount of correct guesses)/(total amount of guesses) 
Run Code Online (Sandbox Code Playgroud)