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
Instructions de l’exercice
- Créez les données de validation en transformant
v_enetv_fravec la fonctionsents2seqs. - 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înernmtsur un seul lot. - Utilisez
v_en_xetv_de_yavecvalid_sizecommebatch_sizepour évaluer le modèlenmtet 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))