Python Keras模型评价

Python Keras模型评价,python,keras,evaluate,Python,Keras,Evaluate,我正在训练一个模型通过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

我正在训练一个模型通过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

我的问题是,为什么报告的损失值不同?i、 e,
0.3099
0.2802
?这是某种臭虫吗?或者我在这里遗漏了什么?

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


进度条中显示的精度和损失是批次的指数平均值,以便于可视化。从<代码>模型中得到的损失和准确度。评估< /COD>是批处理的平均损失/精度,是您应该考虑的最终和正确的数字。

< P>不,它不是一个bug,一旦您知道如何计算这两个数字,都是有意义的。由于您在
model.evaluate
调用中设置了
verbose=2
,因此它显示了批处理在测试集上的进度


进度条中显示的精度和损失是批次的指数平均值,以便于可视化。从
模型返回的损失和准确度。evaluate
是批次平均的总损失/准确度,对于最后一批的测试和<代码>测试丢失=0.2802 < /代码>,

不是<代码>丢失=0.3099 < /代码>,对每一批测试数据集来说,最好的损失是:最后一批测试和<代码>测试丢失=0.2802 < /代码> >代码> > 0.3099 > <代码> >测试数据集的批处理?