LoslegenKostenlos loslegen

Den Decoder festlegen

In dieser Übung wirst du den Decoder implementieren und ein End-to-End-Modell definieren, das von den Eingaben des Encoders bis zu den GRU-Ausgaben des Decoders reicht. Der Decoder nutzt dasselbe Modell wie der Encoder. Allerdings gibt es Unterschiede bei den Eingaben und Zuständen, die an den Decoder weitergeleitet werden, verglichen mit dem Encoder. Zum Beispiel braucht der Decoder den Kontextvektor, den der Encoder macht, als Input und auch den Anfangszustand für den Decoder. Denk dran, dass wir das Präfix „ en “ (z. B. „ en_gru “) für alles verwenden, was mit dem Encoder zu tun hat, und „ de “ für alles, was mit dem Decoder zu tun hat (z. B. „ de_gru “).

Um den Decoder zu implementieren, brauchst du die Schichten „ RepeatVector “ und „ GRU “.

Für diese Übung hast du das Encoder-Modell und die verschiedenen Encoder-Schichten, die du schon gemacht hast. Zum Beispiel werden die Encoder-Eingaben als „ en_inputs “ und der Kontextvektor als „ en_state “ angegeben. Beachte auch, dass die Objekte „ GRU ” und „ Model ” schon importiert wurden.

Diese Übung ist Teil des Kurses

Maschinelle Übersetzung mit Keras

Kurs anzeigen

Anleitung zur Übung

  • Definiere eine „ RepeatVector “-Schicht, die „ en_state “ als Eingabe nimmt und sie „ fr_len “ Mal wiederholt.
  • Definiere eine GRU-Schicht „ decoder_gru “, die so viele versteckte Einheiten hat wie „ hsize “ und alle erzeugten Ausgaben zurückgibt.
  • Hol dir die Ausgabe der Schicht „ decoder_gru “, indem du „ de_inputs “ als Eingabe und „ en_state “ als Anfangszustand des Decoders angibst.
  • Definiere ein Modell, das „ en_inputs “ als Eingabe und „ gru_outputs “ als Ausgabe nimmt.

Interaktive Übung

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

from tensorflow.keras.layers import RepeatVector

hsize = 48
fr_len = 20
# Define a RepeatVector layer
de_inputs = ____(____)(____)
# Define a GRU model that returns all outputs
decoder_gru = ____(____, ____=____)
# Get the outputs of the decoder
gru_outputs = ____(____, initial_state=____)
# Define a model with the correct inputs and outputs
enc_dec = ____(inputs=____, outputs=____)
enc_dec.summary()
Code bearbeiten und ausführen