Entraînement du modèle
Saviez-vous qu'en 2017, Google Translate a été utilisé par plus de 500 millions d'utilisateurs par jour ?
Ici, vous allez entraîner votre premier modèle Teacher Forced. Le « Teacher Forcing » est couramment utilisé dans les modèles séquence-séquence, tels que votre traducteur automatique neuronal, afin d'obtenir de meilleures performances.
Vous disposerez de la fonction d'sents2seqs()
, des phrases en anglais en_text
et des phrases en français fr_text
.
Cet exercice fait partie du cours
Traduction automatique avec Keras
Instructions
- Obtenez l'entrée du décodeur qui contient les séquences codées en onehot des mots français (à l'exception du dernier mot de chaque séquence).
- Obtenez la sortie du décodeur qui contient les séquences codées en onehot des mots français (à l'exception du premier mot de chaque séquence).
- Entraînez le modèle sur un seul lot de données.
- Obtenez les mesures d'évaluation (perte et précision) pour les données d'entraînement
en_x
,de_x
etde_y
.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
n_epochs, bsize = 3, 250
for ei in range(n_epochs):
for i in range(0,data_size,bsize):
en_x = sents2seqs('source', en_text[i:i+bsize], onehot=True, reverse=True)
de_xy = sents2seqs('target', fr_text[i:i+bsize], onehot=True)
# Separate the decoder inputs from de_xy
de_x = ____[:,____,:]
# Separate the decoder outputs from de_xy
de_y = ____[____]
# Train the model on a single batch of data
nmt_tf.____([____,____], ____)
# Obtain the eval metrics for the training data
res = _____.evaluate([____,____], ____, batch_size=bsize, verbose=0)
print("{} => Train Loss:{}, Train Acc: {}".format(ei+1,res[0], res[1]*100.0))