LoslegenKostenlos loslegen

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

Kurs anzeigen

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