CommencezCommencez gratuitement

Entraîner le modèle avec validation

Ici, vous apprendrez à entraîner le modèle de traduction automatique neuronale avec une étape de validation.

Le modèle nmt que vous avez créé au chapitre précédent vous est fourni. De plus, vous allez entraîner le modèle sur des phrases en anglais et en français tirées du dépôt GitHub d'Udacity. Vous disposez des textes d'entraînement en anglais (tr_en) et en français (tf_fr), ainsi que des textes de validation en anglais (v_en) et en français (v_fr) de l'exercice précédent.

L'entraînement du modèle prend un certain temps, donc votre code mettra un peu plus longtemps à s'exécuter.

Cette activité fait partie du cours

Traduction automatique avec Keras

Voir le cours

Instructions de l’exercice

  • Créez les données de validation en transformant v_en et v_fr avec la fonction sents2seqs.
  • Obtenez un lot d'entrées et de sorties correctement transformées en utilisant la fonction sents2seqs.
  • Utilisez les entrées (en_x) et les sorties (de_y) pour entraîner nmt sur un seul lot.
  • Utilisez v_en_x et v_de_y avec valid_size comme batch_size pour évaluer le modèle nmt et obtenir la précision de validation.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# Convert validation data to onehot
v_en_x = ____(____, ____, onehot=____, reverse=____)
v_de_y = ____(____, ____, onehot=True)

n_epochs, bsize = 3, 250
for ei in range(n_epochs):
  for i in range(0,train_size,bsize):
    # Get a single batch of inputs and outputs
    en_x = ____(____, tr_en[____:____], onehot=____, reverse=____)
    de_y = sents2seqs(____, tr_fr[____:____], onehot=True)
    # Train the model on a single batch of data
    nmt.____(____, ____)    
  # Evaluate the trained model on the validation data
  res = nmt.evaluate(____, ____, batch_size=valid_size, verbose=0)
  print("{} => Loss:{}, Val Acc: {}".format(ei+1,res[0], res[1]*100.0))
Modifier et exécuter le code