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.
predict()
is for the actual prediction. It generates output predictions for the input samples.
Let us consider a simple regression example:
# input and output x = np.random.uniform(0.0, 1.0, (200)) y = 0.3 + 0.6*x + np.random.normal(0.0, 0.05, len(y))
Now lets apply a regression model in keras:
# A simple regression model model = Sequential() model.add(Dense(1, input_shape=(1,))) model.compile(loss='mse', optimizer='rmsprop') # The fit() method - trains the model model.fit(x, y, nb_epoch=1000, batch_size=100) Epoch 1000/1000 200/200 [==============================] - 0s - loss: 0.0023 # The evaluate() method - gets the loss statistics model.evaluate(x, y, batch_size=200) # returns: loss: 0.0022612824104726315 # The predict() method - predict the outputs for the given inputs model.predict(np.expand_dims(x[:3],1)) # returns: [ 0.65680361],[ 0.70067143],[ 0.70482892]