CommencerCommencer gratuitement

Définition du décodeur

Dans cet exercice, vous allez implémenter le décodeur et définir un modèle de bout en bout allant des entrées de l'encodeur aux sorties GRU du décodeur. Le décodeur utilise le même modèle que l'encodeur. Cependant, il existe des différences entre les entrées et les états transmis au décodeur par rapport à l'encodeur. Par exemple, le décodeur utilise le vecteur de contexte produit par le codeur comme entrée, ainsi que l'état initial du décodeur. Veuillez noter que nous utiliserons le préfixe en (par exemple en_gru) pour désigner tout ce qui concerne l'encodeur et de pour désigner tout ce qui concerne le décodeur (par exemple de_gru).

Pour implémenter le décodeur, vous utiliserez les couches RepeatVector et GRU.

Pour cet exercice, vous disposez du modèle d'encodeur et des différentes couches de l'encodeur que vous avez déjà implémentées. Par exemple, les entrées de l'encodeur sont fournies sous la forme en_inputs et le vecteur de contexte sous la forme en_state. Veuillez également noter que les objets GRU et Model ont déjà été importés.

Cet exercice fait partie du cours

Traduction automatique avec Keras

Afficher le cours

Instructions

  • Définissez une couche d'RepeatVector qui prend l'en_state comme entrée et la répète fr_len fois.
  • Définissez une couche GRU, decoder_gru, qui possède autant d'unités cachées que d'hsize, et renvoie toutes les sorties produites.
  • Obtenez la sortie de la couche d'decoder_gru s en entrant de_inputs comme entrée et en_state comme état initial du décodeur.
  • Définissez un modèle qui prend comme entrée l'en_inputs et comme sortie l'gru_outputs.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

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()
Modifier et exécuter le code