I trained a model with tensorflow.keras.applications.Xception
. The model after training got loss
less than 0.2 and accuracy
more than 0.9. I predicted with the test dataset, its result matches the accuracy, more than 90% are correct. But when I called model.evaluate()
with the same test dataset, its loss
decreased from high to low until less than 0.2, and its accuracy
grows from 0 to just more than 0.02. I repeated this function with just one sample each time, its result kept as the first time called, with loss
quite high, and accuracy
of 0.
Why is the accuracy
so low? Is it the correct behavior that the loss
decreases the same as in training? Thanks!
This is the last result of the batch-evaluate:
loss: 0.6401 - dense_loss: 0.1283 - dense_1_loss: 0.1789 - dense_2_loss: 0.1638 - dense_3_loss: 0.1691 - dense_accuracy: 0.0137 - dense_1_accuracy: 0.0265 - dense_2_accuracy: 0.0261 - dense_3_accuracy: 0.0205
snapshot of model.evalute
question from:
https://stackoverflow.com/questions/65844619/why-does-model-evalute-return-incorrect-accuracy-in-keras 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…