LoslegenKostenlos loslegen

Das Modell mit Validierung trainieren

Hier erfährst du, wie du das neuronale maschinelle Übersetzungsmodell mit einem Validierungsschritt trainieren kannst.

Du bekommst das Modell „ nmt ”, das du im letzten Kapitel erstellt hast. Außerdem trainierst du das Modell mit englischen und französischen Sätzen, die du im Udacity Github Repo findest. Du bekommst englische Texte zum Üben (tr_en) und französische Texte (tf_fr) sowie englische Texte zur Überprüfung (v_en) und französische Texte (v_fr) aus der letzten Übung.

Das Training des Modells dauert ein bisschen, also wird dein Code etwas länger brauchen, um zu laufen.

Diese Übung ist Teil des Kurses

Maschinelle Übersetzung mit Keras

Kurs anzeigen

Anleitung zur Übung

  • Erstell Validierungsdaten, indem du „ v_en “ und „ v_fr “ mit der Funktion „ sents2seqs “ umwandelst.
  • Mit der Funktion „ sents2seqs “ bekommst du einen ordentlich umgewandelten Stapel von Eingaben und Ausgaben.
  • Verwende die Eingaben (en_x) und Ausgaben (de_y), um das „ nmt “ mit einem einzelnen Batch zu trainieren.
  • Verwende „ v_en_x “ und „ v_de_y “ zusammen mit „ valid_size “ als „ batch_size “, um das Modell „ nmt “ zu bewerten und die Validierungsgenauigkeit zu ermitteln.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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))
Code bearbeiten und ausführen