Začněte nyníZačněte zdarma

Trénování modelu s validací

V tomto cvičení budeš trénovat model pomocí Teacher Forcing a zároveň provádět validační krok. Model natrénuješ na více epoch a iterací. Na konci každé epochy pak spustíš validační krok a získáš výsledky.

K dispozici máš en_text (anglické věty), fr_text (francouzské věty), funkci sents2seqs() a nmt_tf (zkompilovaný model). Jsou také načtená trénovací data tr_en a tr_fr a validační data v_en a v_fr.

Toto cvičení je součástí kurzu

Machine Translation with Keras

Zobrazit kurz

Pokyny k cvičení

  • Z de_xy extrahuj vstupy decoderu (všechna slova kromě posledního) a výstupy decoderu (všechna slova kromě prvního).
  • Natrénuj model na jedné dávce dat.
  • Z validačních dat vytvoř vstupy a výstupy decoderu stejným způsobem jako pro trénovací data.
  • Vyhodnoť model na validační sadě dat a získej validační ztrátu a přesnost.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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))
Upravit a spustit kód