Aan de slagGa gratis aan de slag

De decoder definiëren

In deze oefening implementeer je de decoder en definieer je een end-to-endmodel dat van de encoderinputs naar de GRU-outputs van de decoder gaat. De decoder gebruikt hetzelfde model als de encoder. Er zijn echter verschillen in de inputs en toestanden die aan de decoder worden doorgegeven, vergeleken met de encoder. Zo gebruikt de decoder de contextvector die door de encoder is geproduceerd zowel als input als als initiële staat voor de decoder. Onthoud dat we het voorvoegsel en (bijv. en_gru) gebruiken voor alles wat met de encoder te maken heeft en de voor decodergerelateerde zaken (bijv. de_gru).

Om de decoder te implementeren gebruik je RepeatVector- en GRU-lagen.

Voor deze oefening krijg je het encodermodel en de verschillende encoderlagen die je al hebt geïmplementeerd. Zo worden de encoderinputs aangeleverd als en_inputs en de contextvector als en_state. Let ook op dat de objecten GRU en Model al zijn geïmporteerd.

Deze oefening maakt deel uit van de cursus

Machine Translation met Keras

Cursus bekijken

Oefeninstructies

  • Definieer een RepeatVector-laag die en_state als input neemt en deze fr_len keer herhaalt.
  • Definieer een GRU-laag, decoder_gru, met hsize verborgen eenheden die alle geproduceerde outputs teruggeeft.
  • Haal de output van de decoder_gru-laag op door de_inputs als input te geven en en_state als de initiële staat van de decoder in te stellen.
  • Definieer een model dat en_inputs als input en gru_outputs als output neemt.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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 bewerken en uitvoeren