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
Instructions
- Définissez une couche d'
RepeatVector
qui prend l'en_state
comme entrée et la répètefr_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 entrantde_inputs
comme entrée eten_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()