web-dev-qa-db-fra.com

Quelle est la différence entre model.fit () et model.evaluate () dans Keras?

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. :)

10
Abhijit Balaji

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))

 enter image description here

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]
12
vijay m

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).

0
tyncho08