Définition des couches du modèle Teacher Forcing
Vous allez définir une nouvelle version améliorée du modèle de traduction automatique que vous avez défini précédemment. Saviez-vous que des modèles tels que le traducteur automatique de Google ont utilisé cette technique de « Teacher Forcing » pour entraîner leur modèle ?
Comme vous l'avez déjà constaté, votre modèle précédent doit être légèrement modifié pour adopter le Teacher Forcing. Dans cet exercice, vous apporterez les modifications nécessaires au modèle précédent. Les paramètres linguistiques suivants vous ont été fournis : en_len
et fr_len
(longueur des phrases en anglais/français avec remplissage), en_vocab
et fr_vocab
(taille du vocabulaire des ensembles de données en anglais/français) et hsize
(taille de la couche cachée des couches GRU). Veuillez noter que le décodeur acceptera une séquence française avec un élément de moins que l fr_len
. Veuillez noter que nous utilisons le préfixe « en
» pour désigner tout ce qui concerne les encodeurs et « de
» pour tout ce qui concerne les décodeurs.
Cet exercice fait partie du cours
Traduction automatique avec Keras
Instructions
- Veuillez importer le sous-module
layers
à partir detensorflow.keras
. - Obtenez les valeurs de sortie et d'état de l'encodeur et attribuez-les respectivement à
en_out
eten_state
. - Définissez une couche d'
Input
s de décodeur qui accepte une séquence longue d'fr_len-1
s de mots français codés en onehot. - Définissez une couche softmax d'
TimeDistributed
Dense
s avec des nœuds d'fr_vocab
.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Import the layers submodule from keras
import ____.____.____ as layers
en_inputs = layers.Input(shape=(en_len, en_vocab))
en_gru = layers.GRU(hsize, return_state=True)
# Get the encoder output and state
____, ____ = en_gru(____)
# Define the decoder input layer
de_inputs = layers.____(shape=(____, ____))
de_gru = layers.GRU(hsize, return_sequences=True)
de_out = de_gru(de_inputs, initial_state=en_state)
# Define a TimeDistributed Dense softmax layer with fr_vocab nodes
de_dense = layers.____(____.____(____, activation=____))
de_pred = de_dense(de_out)