在Keras中对同一批次的培训和评估结果不同

时间:2018-10-30 11:19:59

标签: python tensorflow keras deep-learning

如何可能出现以下情况?

In[20] model.test_on_batch(x, y)
Out[20]: [4.861001, 0.0]
In[21]: model.train_on_batch(x, y)
Out[21]: [0.019215763, 0.99609375]

两个输出值分别对应于二进制交叉熵和二进制精度。

即,同一批次上的模型的训练和测试结果完全不同。培训结果大概是好的。 (带有model.predict的预测也不正确。

在Tensorflow 1.8.0下运行Keras 2.2.4。

1 个答案:

答案 0 :(得分:2)

如果您使用具有Dropout或BatchNormalization层的模型,这是完全正常的,因为它们在训练和测试期间的行为不同。如果您添加任何正则化条款,则这些条款会在测试过程中被禁用,并且会影响您从model.evaluate

中获得的任何损失