ÎncepețiÎncepe gratuit

Antrenarea modelului cu validare

În acest exercițiu vei antrena modelul folosind Teacher Forcing și vei efectua și un pas de validare. Modelul va fi antrenat pe mai multe epoci și mai multe iterații, iar la sfârșitul fiecărei epoci vei rula pasul de validare și vei obține rezultatele.

În acest scop, ai la dispoziție en_text (propoziții în engleză), fr_text (propoziții în franceză), funcția sents2seqs() și nmt_tf (modelul compilat). De asemenea, tr_en și tr_fr (datele de antrenament) și v_en și v_fr (datele de validare) sunt deja încărcate.

Acest exercițiu face parte din cursul

Traducere automată cu Keras

Vezi cursul

Instrucțiuni pentru exercițiu

  • Extrage intrările decoderului (toate cuvintele cu excepția ultimului) și ieșirile acestuia (toate cuvintele cu excepția primului) din de_xy.
  • Antrenează modelul pe un singur lot de date.
  • Creează intrările și ieșirile decoderului din datele de validare, similar cu modul în care ai procedat pentru datele de antrenament.
  • Evaluează modelul pe setul de date de validare pentru a obține pierderea de validare și acuratețea.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

for ei in range(n_epochs):
  for i in range(0,train_size,bsize):    
    en_x = sents2seqs('source', tr_en[i:i+bsize], onehot=True, reverse=True)
    de_xy = sents2seqs('target', tr_fr[i:i+bsize], onehot=True)
    # Create a single batch of decoder inputs and outputs
    de_x, de_y = ____[:,____,:], de_xy[:,____,:]
    # Train the model on a single batch of data
    nmt_tf.____([____,____], de_y)      
  v_en_x = sents2seqs('source', v_en, onehot=True, reverse=True)
  # Create a single batch of validation decoder inputs and outputs
  v_de_xy = ____('target', ____, onehot=____)
  v_de_x, v_de_y = ____[____], v_de_xy[____]
  # Evaluate the trained model on the validation data
  res = nmt_tf.evaluate([____,____], ____, batch_size=valid_size, verbose=0)
  print("{} => Loss:{}, Val Acc: {}".format(ei+1,res[0], res[1]*100.0))
Editează și rulează codul