Entraînement du modèle avec validation
Vous apprendrez ici comment former le modèle de traduction automatique neuronale avec une étape de validation.
Vous disposez du modèle d'nmt
que vous avez créé au chapitre précédent. De plus, vous formerez le modèle à partir de phrases en anglais et en français obtenues à partir du dépôt GitHub d'Udacity. Vous disposez du texte de formation en anglais (tr_en
) et en français (tf_fr
), ainsi que du texte 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, votre code mettra donc un peu plus de temps à s'exécuter.
Cet exercice fait partie du cours
Traduction automatique avec Keras
Instructions
- Veuillez créer des données de validation en transformant
v_en
etv_fr
à l'aide de la fonctionsents2seqs
. - Obtenez un lot d'entrées et de sorties correctement transformées à l'aide de la fonction «
sents2seqs
». - Veuillez utiliser les entrées (
en_x
) et les sorties (de_y
) pour entraîner l'nmt
sur un seul lot. - Veuillez utiliser les modèles d'apprentissage
v_en_x
etv_de_y
, ainsi que le modèlevalid_size
en tant qu'batch_size
pour évaluer le modèlenmt
et obtenir la précision de la validation.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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))