Addestrare il modello
Sapevi che nel 2017 Google Translate serviva più di 500 milioni di utenti al giorno?
Qui addestrerai il tuo primo modello con Teacher Forcing. Il Teacher Forcing è comunemente usato nei modelli sequence-to-sequence, come il tuo traduttore neurale, per ottenere prestazioni migliori.
Ti saranno forniti la funzione sents2seqs(), le frasi inglesi en_text e le frasi francesi fr_text.
Questo esercizio fa parte del corso
Traduzione automatica con Keras
Istruzioni dell'esercizio
- Ottieni l'input del decoder che contiene le sequenze one-hot dei termini francesi (tranne l'ultima parola in ogni sequenza).
- Ottieni l'output del decoder che contiene le sequenze one-hot dei termini francesi (tranne la prima parola in ogni sequenza).
- Addestra il modello su un singolo batch di dati.
- Ottieni le metriche di valutazione (loss e accuracy) per i dati di training
en_x,de_xede_y.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
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))