Définir le 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 du GRU du décodeur. Le décodeur reprend le même modèle que l'encodeur, mais les entrées et les états fournis au décodeur diffèrent de ceux de l'encodeur. Par exemple, le décodeur consomme le vecteur de contexte produit par l'encodeur à la fois comme entrées et comme état initial du décodeur. Rappelez-vous que nous utiliserons le préfixe en (p. ex. en_gru) pour indiquer tout ce qui concerne l'encodeur et de pour les éléments liés au décodeur (p. ex. de_gru).
Pour implémenter le décodeur, vous utiliserez les couches RepeatVector et GRU.
Pour cet exercice, on vous fournit le modèle d'encodeur et les 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 en_inputs et le vecteur de contexte sous en_state. Notez aussi que les objets GRU et Model ont déjà été importés.
Cette activité fait partie du cours
Traduction automatique avec Keras
Instructions de l’exercice
- Définissez une couche
RepeatVectorqui prenden_stateen entrée et la répètefr_lenfois. - Définissez une couche GRU,
decoder_gru, qui a un nombre d'unités cachées égal àhsizeet retourne l'ensemble des sorties produites. - Obtenez la sortie de la couche
decoder_gruen fournissantde_inputscomme entrée eten_statecomme état initial du décodeur. - Définissez un modèle qui prend
en_inputscomme entrée etgru_outputscomme sortie.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
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()