Kom igångKom igång gratis

Träna modellen med validering

Här tränar du modellen med Teacher Forcing och utför även ett valideringssteg. Du tränar modellen under flera epoker och iterationer. I slutet av varje epok kör du valideringssteget och hämtar resultaten.

Du har tillgång till en_text (engelska meningar), fr_text (franska meningar), funktionen sents2seqs() och nmt_tf (den kompilerade modellen). Du har också tr_en och tr_fr (träningsdata) samt v_en och v_fr (valideringsdata) inlästa redan.

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

Maskinöversättning med Keras

Visa kurs

Övningsinstruktioner

  • Extrahera decoderingsindata (alla ord utom det sista) och dekoderingsutdata (alla ord utom det första) från de_xy.
  • Träna modellen på en enskild batch av data.
  • Skapa decoderingsindata och dekoderingsutdata från valideringsdata på samma sätt som du gjorde för träningsdata.
  • Utvärdera modellen på valideringsdatamängden för att få fram valideringsförlusten och noggrannheten.

Interaktiv övning med praktiskt arbete

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

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