ÎncepețiÎncepe gratuit

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

Vezi cursul

Instrucțiuni pentru exercițiu

  • Creează datele de validare transformând v_en și v_fr cu ajutorul funcției sents2seqs.
  • 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 modelul nmt pe un singur batch.
  • Folosește v_en_x și v_de_y împreună cu valid_size ca batch_size pentru a evalua modelul nmt ș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))
Editează și rulează codul