Antrenarea modelului cu validare
În acest exercițiu vei învăța cum să antrenezi modelul de traducere automată neuronală cu un pas de validare.
Îți este pus la dispoziție modelul nmt creat în capitolul anterior. Vei antrena modelul pe propoziții în engleză și franceză obținute din Udacity Github Repo. Ai la dispoziție textul în engleză pentru antrenament (tr_en) și textul în franceză (tf_fr), precum și textul în engleză pentru validare (v_en) și textul în franceză (v_fr) din exercițiul anterior.
Antrenarea modelului durează ceva timp, așa că execuția codului va fi puțin mai lentă.
Acest exercițiu face parte din cursul
Traducere automată cu Keras
Instrucțiuni pentru exercițiu
- Creează datele de validare transformând
v_enșiv_frcu ajutorul funcțieisents2seqs. - Obține un batch corect transformat de intrări și ieșiri folosind funcția
sents2seqs. - Folosește intrările (
en_x) și ieșirile (de_y) pentru a antrena modelulnmtpe un singur batch. - Folosește
v_en_xșiv_de_yîmpreună cuvalid_sizecabatch_sizepentru a evalua modelulnmtși a obține acuratețea de validare.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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))