LoslegenKostenlos loslegen

Die Ebenen des Teacher-Forcing-Modells definieren

Du wirst eine neue und verbesserte Version des zuvor definierten maschinellen Übersetzungsmodells erstellen. Wusstest du, dass Modelle wie der Google Machine Translator diese „Teacher Forcing”-Technik zum Trainieren ihres Modells verwendet haben?

Wie du schon gesehen hast, muss dein bisheriges Modell ein bisschen angepasst werden, um Teacher Forcing zu nutzen. In dieser Übung nimmst du die notwendigen Änderungen am vorherigen Modell vor. Du hast die Sprachparameter en_len und fr_len (Länge der aufgefüllten englischen/französischen Sätze), en_vocab und fr_vocab (Vokabularumfang der englischen/französischen Datensätze) und hsize (Größe der versteckten Schicht der GRU-Schichten) bekommen. Denk dran, dass der Decoder eine französische Sequenz mit einem Element weniger akzeptiert als fr_len. Denk dran, dass wir das Präfix „ en “ für alles rund um Encoder und „ de “ für alles rund um Decoder benutzen.

Diese Übung ist Teil des Kurses

Maschinelle Übersetzung mit Keras

Kurs anzeigen

Anleitung zur Übung

  • Importiere das Submodul „ layers ” von tensorflow.keras.
  • Hol die Encoder-Ausgangs- und Statuswerte und schreib sie in die Variablen „ en_out “ und „ en_state “.
  • Definiere eine Decoder- Input -Schicht, die eine lange Sequenz von onehot-codierten französischen Wörtern mit der Länge „ fr_len-1 “ akzeptiert.
  • Definiere eine Softmax-Schicht „ TimeDistributed Dense ” mit „ fr_vocab ” Knoten.

Interaktive Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

# Import the layers submodule from keras
import ____.____.____ as layers

en_inputs = layers.Input(shape=(en_len, en_vocab))
en_gru = layers.GRU(hsize, return_state=True)
# Get the encoder output and state
____, ____ = en_gru(____)

# Define the decoder input layer
de_inputs = layers.____(shape=(____, ____))
de_gru = layers.GRU(hsize, return_sequences=True)
de_out = de_gru(de_inputs, initial_state=en_state)
# Define a TimeDistributed Dense softmax layer with fr_vocab nodes
de_dense = layers.____(____.____(____, activation=____))
de_pred = de_dense(de_out)
Code bearbeiten und ausführen