CommencerCommencer gratuitement

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 model que vous venez de construire.
  • X_train, y_train, X_test et y_test.
  • Les initial_weights de 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_accs et test_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

Afficher le cours

Instructions

  • Récupérez une fraction des données d’entraînement déterminée par la valeur de size actuellement évaluée dans la boucle.
  • Réinitialisez les poids du modèle à initial_weights avec set_weights() et entraînez votre modèle sur cette fraction, en utilisant early_stop comme 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(____, ____)
Modifier et exécuter le code