Definiera enkodaren
Här tar du ditt första steg mot att skapa en maskinöversättningsmodell: att implementera enkodaren. Enkodaren du implementerar är en enkel modell jämfört med de komplexa modeller som används i verkliga tillämpningar, som Googles maskinöversättningstjänst. Men oroa dig inte – även om modellen är enkel bygger den på samma koncept som de mer avancerade modellerna. Vi använder prefixet en (t.ex. en_gru) för allt som rör enkodaren och de för allt som rör dekodaren (t.ex. de_gru).
Du kommer att märka att vi väljer en_vocab till ett mindre värde (150) än det faktiska värdet (228) som vi identifierade. En mindre vokabulär minskar modellens minnesanvändning. Att minska vokabulären något är acceptabelt, eftersom vi i så fall tar bort de ovanligaste orden. Vid maskinöversättning bidrar sällsynta ord vanligtvis mindre till resultatet än vanliga ord.
Den här övningen är en del av kursen
Maskinöversättning med Keras
Övningsinstruktioner
- Definiera ett
Input-lager för en inmatning med vokabulärstorlekenen_vocaboch sekvenslängdenen_len, med hjälp av argumentetshape. - Definiera ett
keras.layers.GRU-lager medhsizedolda enheter som även returnerar sitt tillstånd. - Hämta utdata från GRU-lagret genom att mata in
en_inputs, och tilldela GRU-tillståndet tillen_stateoch utdata tillen_out. - Definiera en
keras.models.Modelvars inmatning ären_inputsoch vars utdata ären_state, och skriv ut en sammanfattning av modellen.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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.____)