Ma question est simple, quelles sont les données de validation passé à model.fit dans un modèle séquentiel utilisé pour ?
Et, cela affecte-t-il la façon dont le modèle est formé (normalement, un ensemble de validation est utilisé, par exemple, pour choisir les hyper-paramètres dans un modèle, mais je pense que cela ne se produit pas ici) ?
Je parle de l'ensemble des validations qui peuvent être passées comme ceci :
# Create model
model = Sequential()
# Add layers
model.add(...)
# Train model (use 10% of training set as validation set)
history = model.fit(X_train, Y_train, validation_split=0.1)
# Train model (use validation data as validation set)
history = model.fit(X_train, Y_train, validation_data=(X_test, Y_test))
J'ai enquêté un peu, et j'ai vu que keras.models.Sequential.fit
appelle keras.models.training.fit
ce qui crée des variables comme val_acc
et val_loss
(qui sont accessibles depuis les Callbacks). keras.models.training.fit
appelle également keras.models.training._fit_loop
qui ajoute les données de validation au fichier callbacks.validation_data
et appelle également keras.models.training._test_loop
qui bouclera les données de validation par lots sur le site de l'entreprise. self.test_function
du modèle. Le résultat de cette fonction est utilisé pour remplir les valeurs des logs, qui sont les valeurs accessibles depuis les callbacks.
Après avoir vu tout cela, j'ai l'impression que l'ensemble de validation transmis à model.fit
n'est pas utilisé pour valider quoi que ce soit pendant l'apprentissage, et sa seule utilité est d'obtenir un retour sur la façon dont le modèle formé se comportera à chaque époque pour un ensemble complètement indépendant. Par conséquent, il serait normal d'utiliser le même ensemble de validation et de test, n'est-ce pas ?
Quelqu'un pourrait-il confirmer si la validation définie dans model.fit a un autre but que d'être lue à partir des callbacks ?