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_enetv_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'nmtsur un seul lot. - Veuillez utiliser les modèles d'apprentissage
v_en_xetv_de_y, ainsi que le modèlevalid_sizeen tant qu'batch_sizepour évaluer le modèlenmtet 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))