如何可能出现以下情况?
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。
答案 0 :(得分:2)
如果您使用具有Dropout或BatchNormalization层的模型,这是完全正常的,因为它们在训练和测试期间的行为不同。如果您添加任何正则化条款,则这些条款会在测试过程中被禁用,并且会影响您从model.evaluate