首页 > 解决方案 > 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?这是某种错误吗?或者我在这里错过了什么?

标签: pythonkerasevaluate

解决方案


不,这不是一个错误,一旦你知道这两个数字是如何计算的,它就有意义了。由于您verbose=2model.evaluate调用中进行了设置,因此它显示了测试集上批次的进度。

进度条中显示的准确率和损失是批次的指数平均值,以简化可视化。您作为回报获得的损失和准确度model.evaluate是批次平均的总损失/准确度,并且是您应该认为是最终和正确的数字。


推荐阅读