Avons-nous besoin de plus de données ?
Il est temps de vérifier si le model entraîné sur le jeu de données digits bénéficie de davantage d’exemples d’entraînement !
Pour limiter la quantité de code, plusieurs éléments sont déjà initialisés et prêts à l’emploi :
- Le
modelque vous venez de construire. X_train,y_train,X_testety_test.- Les
initial_weightsde votre modèle, enregistrés après avoir appelémodel.get_weights(). - Une liste prédéfinie de tailles d’entraînement :
training_sizes. - Un callback d’arrêt anticipé (early stopping) prédéfini surveillant la loss :
early_stop. - Deux listes vides pour stocker les résultats d’évaluation :
train_accsettest_accs.
Entraînez votre modèle sur les différentes tailles d’entraînement et évaluez les résultats sur X_test.
Terminez en traçant les résultats avec plot_results().
Le code complet de cet exercice est disponible dans les diapos !
Cet exercice fait partie du cours
Introduction au Deep Learning avec Keras
Instructions
- Récupérez une fraction des données d’entraînement déterminée par la valeur de
sizeactuellement évaluée dans la boucle. - Réinitialisez les poids du modèle à
initial_weightsavecset_weights()et entraînez votre modèle sur cette fraction, en utilisantearly_stopcomme callback. - Évaluez et enregistrez la précision pour la fraction d’entraînement et pour l’ensemble de test.
- Appelez
plot_results()en lui passant les précisions d’entraînement et de test pour chaque taille d’entraînement.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
for size in training_sizes:
# Get a fraction of training data (we only care about the training data)
X_train_frac, y_train_frac = X_train[:size], y_train[:size]
# Reset the model to the initial weights and train it on the new training data fraction
model.set_weights(____)
model.fit(X_train_frac, y_train_frac, epochs = 50, callbacks = [early_stop])
# Evaluate and store both: the training data fraction and the complete test set results
train_accs.append(model.evaluate(____, ____)[1])
test_accs.append(model.evaluate(____, ____)[1])
# Plot train vs test accuracies
plot_results(____, ____)