Je suis nouveau dans Machine Learning et j'utilise Keras avec le backend TensorFlow pour former les modèles CNN.
Quelqu'un peut-il s'il vous plaît expliquer la différence entre model.fit()
et model.evaluate()
et lequel je devrais utiliser idéalement? (J'utilise model.fit()
dès maintenant).
Je connais l'utilité de model.fit()
et model.predict()
. Mais je suis incapable de comprendre l'utilité de model.evaluate()
. La documentation de Keras dit simplement:
Il est utilisé pour évaluer le modèle.
Je pense que c'est une définition très vague.
Merci d'avance. :)
fit()
est destiné à la formation du modèle avec les entrées données.
predict()
est pour la prédiction réelle. Il génère des prédictions de sortie pour les échantillons d'entrée.
evaluate()
sert à évaluer le modèle déjà formé. Renvoie la valeur de perte et les valeurs de mesure pour le modèle.
Considérons un exemple de régression simple:
# 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))
Appliquons maintenant un modèle de régression dans 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]
fit () : Forme le modèle pour un nombre d'époques donné (c'est pour le temps de formation, avec le jeu de données de formation).
Predict () : Génère des prédictions de sortie pour les échantillons en entrée (c'est quelque part entre le temps de formation et de test).
evaluer () : Renvoie la valeur de perte et les valeurs de mesure du modèle en mode test (c'est pour le temps de test, avec le jeu de données test).