Antrenarea modelului
Știai că în 2017, Google Translate deservea peste 500 de milioane de utilizatori zilnic?
Aici vei antrena primul tău model cu Teacher Forcing. Teacher Forcing este o tehnică des utilizată în modelele de tip sequence to sequence – cum este traducătorul tău automat neuronal – pentru a obține performanțe mai bune.
Vei avea la dispoziție funcția sents2seqs(), propoziții în engleză en_text și propoziții în franceză fr_text.
Acest exercițiu face parte din cursul
Traducere automată cu Keras
Instrucțiuni pentru exercițiu
- Obține intrarea decoderului, care conține secvențele codificate onehot ale cuvintelor în franceză (mai puțin ultimul cuvânt din fiecare secvență).
- Obține ieșirea decoderului, care conține secvențele codificate onehot ale cuvintelor în franceză (mai puțin primul cuvânt din fiecare secvență).
- Antrenează modelul pe un singur batch de date.
- Obține metricile de evaluare (loss și acuratețe) pentru datele de antrenament
en_x,de_xșide_y.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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))