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?
Keras model predicts is the method of function provided in Keras that helps in the predictions of output depending on the specified samples of input to the model.
fit() is for training the model with the given inputs (and corresponding training labels). evaluate() is for evaluating the already trained model using the validation (or test) data and the corresponding labels. Returns the loss value and metrics values for the model.
Evaluation is a process during development of the model to check whether the model is best fit for the given problem and corresponding data. Keras model provides a function, evaluate which does the evaluation of the model.
Model evaluation is the process of using different evaluation metrics to understand a machine learning model's performance, as well as its strengths and weaknesses. Model evaluation is important to assess the efficacy of a model during initial research phases, and it also plays a role in model monitoring.
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With