Kom igångKom igång gratis

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

Visa kurs

Övningsinstruktioner

  • Definiera ett Input-lager för en inmatning med vokabulärstorleken en_vocab och sekvenslängden en_len, med hjälp av argumentet shape.
  • Definiera ett keras.layers.GRU-lager med hsize dolda 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 till en_state och utdata till en_out.
  • Definiera en keras.models.Model vars inmatning är en_inputs och vars utdata är en_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.____)
Redigera och kör kod