Den Encoder festlegen
Hier machst du den ersten Schritt zur Erstellung eines maschinellen Übersetzungsmodells: die Implementierung des Encoders. Der Encoder, den du umsetzen wirst, ist ein sehr einfaches Modell im Vergleich zu den komplexen Modellen, die in realen Anwendungen wie dem maschinellen Übersetzungsservice von Google verwendet werden. Aber keine Sorge, auch wenn das Modell einfach ist, sind die Konzepte die gleichen wie bei den komplizierten Modellen. Hier verwenden wir das Präfix „ en
“ (z. B. „ en_gru
“) für alles, was mit dem Encoder zu tun hat, und „ de
“ für alles, was mit dem Decoder zu tun hat (z. B. „ de_gru
“).
Du wirst sehen, dass wir „ en_vocab
“ kleiner (150) als den tatsächlichen Wert (228) wählen, den wir gefunden haben. Wenn du den Wortschatz kleiner machst, brauchst du weniger Speicherplatz für das Modell. Es ist okay, den Wortschatz ein bisschen zu verkleinern, weil wir dabei die seltensten Wörter rausnehmen. Bei maschinellen Übersetzungen sind seltene Wörter normalerweise weniger wichtig als häufig vorkommende.
Diese Übung ist Teil des Kurses
Maschinelle Übersetzung mit Keras
Anleitung zur Übung
- Definiere eine „
Input
“-Schicht für eine Eingabe mit einem Vokabularen_vocab
und einer Sequenzlängeen_len
, indem du das Argument „shape
“ verwendest. - Definiere eine „
keras.layers.GRU
“-Schicht mit „hsize
“ versteckten Einheiten, die ihren Status zurückgibt. - Hol dir die Ergebnisse aus der GRU-Schicht, indem du „
en_inputs
“ eingibst, und ordne den GRU-Status „en_state
“ und die Ausgabe „en_out
“ zu. - Definiere ein „
keras.models.Model
”, dessen Input „en_inputs
” ist und dessen Output „en_state
” ist, und gib die Modellzusammenfassung aus.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
import tensorflow.keras as keras
en_len = 15
en_vocab = 150
hsize = 48
# Define an input layer
en_inputs = keras.layers.____(____=____)
# Define a GRU layer which returns the state
en_gru = ____(____, ____=____)
# Get the output and state from the GRU
____, ____ = ____(____)
# Define and print the model summary
encoder = ____(inputs=____, ____=____)
print(encoder.____)