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
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))