Kom igångKom igång gratis

Träna modellen med validering

Här lär du dig hur du tränar den neurala maskinöversättningsmodellen med ett valideringssteg.

Du har tillgång till nmt-modellen som skapades i föregående kapitel. Du tränar modellen på engelska och franska meningar hämtade från Udacity Github Repo. Från föregående övning har du tillgång till engelsk träningstext (tr_en) och fransk träningstext (tf_fr), samt engelsk valideringstext (v_en) och fransk valideringstext (v_fr).

Träningen tar lite tid, så koden kan ta något längre att köra.

Den här övningen är en del av kursen

Maskinöversättning med Keras

Visa kurs

Övningsinstruktioner

  • Skapa valideringsdata genom att omvandla v_en och v_fr med funktionen sents2seqs.
  • Hämta ett korrekt omvandlat batch med indata och utdata med hjälp av funktionen sents2seqs.
  • Använd indata (en_x) och utdata (de_y) för att träna nmt på ett enda batch.
  • Använd v_en_x och v_de_y tillsammans med valid_size som batch_size för att utvärdera nmt-modellen och erhålla valideringsnoggrannheten.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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))
Redigera och kör kod