在 Keras 中进行模型评估

Model Evaluate in Keras

我正在训练模型以通过 Keras 执行二元分类。训练好模型后,我尝试对其进行评估,如下所示:

# Evaluate the model
print('Evaluate on test data')
loss, acc = model.evaluate(X_test, y_test, verbose=2)
print('Test loss: %.4f' % loss)
print('Test accuracy: %.4f' % acc)

我得到了这个结果:

Evaluate on test data
116/1 - 0s - loss: 0.3099 - accuracy: 0.8793
Test loss: 0.2802
Test accuracy: 0.8793

我的问题是,为什么报告的损失值不同?即 0.30990.2802?这是某种错误吗?或者我在这里遗漏了什么?

不,这不是错误,一旦您了解这两个数字的计算方式,它就有意义了。由于您在 model.evaluate 调用中设置了 verbose=2,它会显示测试集上的批处理进度。

进度条中显示的准确性和损失是批次的指数平均值,以便于可视化。您从 model.evaluate 得到的 return 的损失和准确度是批次的总 loss/accuracy 平均值,并且是您应该认为是最终和正确的数字。