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

Trénování modelu s validací

V tomto cvičení se naučíš trénovat model neuronového strojového překladače s validačním krokem.

Máš k dispozici model nmt, který jsi vytvořil/a v předchozí kapitole. Model budeš trénovat na anglických a francouzských větách převzatých z Udacity Github Repo. Z předchozího cvičení máš připravena trénovací data – anglický text (tr_en) a francouzský text (tf_fr) – a také validační data – anglický text (v_en) a francouzský text (v_fr).

Trénování modelu chvíli trvá, takže spuštění kódu může trvat o něco déle.

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

Machine Translation with Keras

Zobrazit kurz

Pokyny k cvičení

  • Vytvoř validační data převodem v_en a v_fr pomocí funkce sents2seqs.
  • Pomocí funkce sents2seqs získej správně transformovanou dávku vstupů a výstupů.
  • Použi vstupy (en_x) a výstupy (de_y) k trénování modelu nmt na jedné dávce.
  • Použi v_en_x a v_de_y spolu s valid_size jako batch_size k vyhodnocení modelu nmt a získání validační přesnosti.

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

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

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