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

Trénování modelu

V tomto cvičení natrénuješ dříve implementovaný model. Věděl/a jsi, že Googlu trval trénink jeho modelu strojového překladu založeného na architektuře enkodér-dekodér 2 až 4 dny?

Pro toto cvičení použiješ malou datovou sadu 1 500 vět (tj. en_text a fr_text). Takové množství dat nestačí na dosažení výborných výsledků, ale postup zůstává stejný – jde jen o trénování na více datech po delší dobu. K dispozici máš také model nmt a funkci sents2seqs(), kterou jsi implementoval/a dříve. Pro lepší výkon budeš v tomto cvičení obracet vstupní text enkodéru. Zde en_x označuje vstup enkodéru, zatímco de_x označuje vstup dekodéru.

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

Machine Translation with Keras

Zobrazit kurz

Pokyny k cvičení

  • Pomocí funkce sents2seqs() získej jednu dávku vstupů enkodéru (anglické věty od indexu i do i+bsize). Vstupy musí být obrácené a zakódované metodou onehot.
  • Pomocí funkce sents2seqs() získej jednu dávku výstupů dekodéru (francouzské věty od indexu i do i+bsize). Vstupy musí být zakódované metodou onehot.
  • Natrénuj model na jedné dávce dat obsahující en_x a de_y.
  • Vyhodnoť model pro en_x a de_y s hodnotou batch_size nastavenou na bsize a získej výsledné metriky.

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

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

n_epochs, bsize = 3, 250

for ei in range(n_epochs):
  for i in range(0,data_size,bsize):
    # Get a single batch of encoder inputs
    en_x = ____('source', ____, onehot=____, reverse=____)
    # Get a single batch of decoder outputs
    de_y = sents2seqs('target', fr_text[____], onehot=____)
    
    # Train the model on a single batch of data
    nmt.____(____, ____)    
    # Obtain the eval metrics for the training data
    res = nmt.____(____, de_y, batch_size=____, verbose=0)
    print("{} => Train Loss:{}, Train Acc: {}".format(ei+1,res[0], res[1]*100.0))  
Upravit a spustit kód