Avons-nous besoin de plus de données ?
Il est temps de vérifier si le model du jeu de données des chiffres que vous avez construit profite de davantage d'exemples d'entraînement !
Pour garder le code au minimum, plusieurs éléments sont déjà initialisés et prêts à utiliser :
- Le
modelque vous venez de construire. X_train,y_train,X_testety_test.- Les
initial_weightsde votre modèle, enregistrés après avoir utilisémodel.get_weights(). - Une liste prédéfinie de tailles d'entraînement :
training_sizes. - Un rappel d'arrêt hâtif prédéfini qui surveille la perte :
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 se trouve dans le diaporama !
Cette activité fait partie du cours
Introduction à Deep Learning avec Keras
Instructions de l’exercice
- Obtenez une fraction des données d'entraînement déterminée par la valeur de
sizeque nous évaluons actuellement dans la boucle. - Réglez les poids du modèle à
initial_weightsavecset_weights()et entraînez votre modèle sur la fraction des données d'entraînement en utilisantearly_stopcomme rappel (callback). - Évaluez et enregistrez la justesse (accuracy) pour la fraction d'entraînement et pour l'ensemble de test.
- Appelez
plot_results()en passant les justesses d'entraînement et de test pour chaque taille d'entraînement.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
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(____, ____)