Das Modell trainieren
Wusstest du, dass Google Translate 2017 täglich mehr als 500 Millionen Leute geholfen hat?
Hier trainierst du dein erstes Teacher Forced-Modell. Teacher Forcing wird oft in Sequenz-zu-Sequenz-Modellen wie deinem neuronalen Maschinenübersetzer verwendet, um bessere Ergebnisse zu erzielen.
Du bekommst die Funktion „ sents2seqs()
“, englische Sätze en_text
und französische Sätze fr_text
.
Diese Übung ist Teil des Kurses
Maschinelle Übersetzung mit Keras
Anleitung zur Übung
- Hol dir den Decodereingang, der die One-Hot-codierten Sequenzen französischer Wörter enthält (außer dem letzten Wort in jeder Sequenz).
- Hol dir den Decoder-Output, der die One-Hot-codierten Sequenzen der französischen Wörter enthält (außer dem ersten Wort in jeder Sequenz).
- Trainiere das Modell mit einem einzigen Datenbatch.
- Hol dir die Bewertungsmetriken (Verlust und Genauigkeit) für die Trainingsdaten
en_x
,de_x
undde_y
.
Interaktive Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
n_epochs, bsize = 3, 250
for ei in range(n_epochs):
for i in range(0,data_size,bsize):
en_x = sents2seqs('source', en_text[i:i+bsize], onehot=True, reverse=True)
de_xy = sents2seqs('target', fr_text[i:i+bsize], onehot=True)
# Separate the decoder inputs from de_xy
de_x = ____[:,____,:]
# Separate the decoder outputs from de_xy
de_y = ____[____]
# Train the model on a single batch of data
nmt_tf.____([____,____], ____)
# Obtain the eval metrics for the training data
res = _____.evaluate([____,____], ____, batch_size=bsize, verbose=0)
print("{} => Train Loss:{}, Train Acc: {}".format(ei+1,res[0], res[1]*100.0))