Inizia subitoInizia gratis

Addestrare il modello con validazione

Qui imparerai ad addestrare il modello di neural machine translation con uno step di validazione.

Ti viene fornito il modello nmt che hai creato nel capitolo precedente. Inoltre, allenerai il modello su frasi in inglese e francese ottenute dal Repo Github di Udacity. Hai a disposizione il testo inglese di training (tr_en) e il testo francese (tf_fr), così come il testo inglese di validazione (v_en) e quello francese (v_fr) dall'esercizio precedente.

L'addestramento del modello richiede un po' di tempo, quindi il tuo codice impiegherà qualche istante in più per essere eseguito.

Questo esercizio fa parte del corso

Traduzione automatica con Keras

Visualizza corso

Istruzioni dell'esercizio

  • Crea i dati di validazione trasformando v_en e v_fr usando la funzione sents2seqs.
  • Ottieni un batch correttamente trasformato di input e output usando la funzione sents2seqs.
  • Usa gli input (en_x) e gli output (de_y) per addestrare nmt su un singolo batch.
  • Usa v_en_x e v_de_y insieme a valid_size come batch_size per valutare il modello nmt e ottenere l'accuratezza di validazione.

esercizio interattivo pratico

Prova questo esercizio completando questo codice di esempio.

# 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))
Modifica ed esegui il codice