Aan de slagGa gratis aan de slag

De encoder definiëren

Hier zet je je eerste stap naar het bouwen van een machinevertalingsmodel: het implementeren van de encoder. De encoder die je implementeert is heel eenvoudig vergeleken met de complexe modellen die in toepassingen zoals de Google-vertalingsservice worden gebruikt. Maar geen zorgen: hoewel het model simpel is, zijn de concepten hetzelfde als bij die complexe modellen. We gebruiken hier de prefix en (bijv. en_gru) voor alles wat met de encoder te maken heeft en de voor alles rond de decoder (bijv. de_gru).

Je ziet dat we en_vocab kleiner kiezen (150) dan de werkelijke waarde (228) die we vonden. Een kleinere woordenschat verkleint het geheugengebruik van het model. De woordenschat iets verkleinen is prima, omdat we daarbij de zeldzaamste woorden verwijderen. Bij machinevertaling hebben zeldzame woorden doorgaans minder waarde dan veelvoorkomende woorden.

Deze oefening maakt deel uit van de cursus

Machine Translation met Keras

Cursus bekijken

Oefeninstructies

  • Definieer een Input-laag voor een input met een woordenschatgrootte en_vocab en een sequentielengte en_len, met het argument shape.
  • Definieer een keras.layers.GRU-laag met hsize verborgen eenheden die zijn toestand (state) teruggeeft.
  • Haal de outputs op van de GRU-laag door en_inputs door te geven en wijs de GRU-toestand toe aan en_state en de output aan en_out.
  • Definieer een keras.models.Model waarvan de input en_inputs is en de output en_state, en print de modelsamenvatting.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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.____)
Code bewerken en uitvoeren