I used Keras biomedical image segmentation to segment brain neurons. I used model.evaluate()
it gave me Dice coefficient: 0.916. However, when I used model.predict()
, then loop through the predicted images by calculating the Dice coefficient, the Dice coefficient is 0.82. Why are these two values different?
The model.evaluate
function predicts the output for the given input and then computes the metrics function specified in the model.compile
and based on y_true
and y_pred
and returns the computed metric value as the output.
The model.predict
just returns back the y_pred
So if you use model.predict
and then compute the metrics yourself, the computed metric value should turn out to be the same as model.evaluate
For example, one would use model.predict
instead of model.evaluate
in evaluating an RNN/ LSTM based models where the output needs to be fed as input in next time step