Définir les couches du modèle avec Teacher Forcing
Vous allez définir une nouvelle version améliorée du modèle de traduction automatique que vous avez créé plus tôt. Saviez-vous que des modèles comme Google Machine Translator ont utilisé la technique de Teacher Forcing pour entraîner leur modèle?
Comme vous l'avez déjà vu, votre modèle précédent doit être légèrement modifié pour adopter le Teacher Forcing. Dans cet exercice, vous allez apporter les changements nécessaires au modèle précédent. On vous fournit les paramètres linguistiques en_len et fr_len (longueur des phrases anglaises/françaises rembourrées), en_vocab et fr_vocab (taille du vocabulaire des jeux de données anglais/français) ainsi que hsize (la taille de la couche cachée des couches GRU). Rappelez-vous que le décodeur acceptera une séquence française avec un élément de moins que fr_len. Rappelez-vous aussi que nous utilisons le préfixe en pour tout ce qui concerne l'encodeur et de pour tout ce qui concerne le décodeur.
Cette activité fait partie du cours
Traduction automatique avec Keras
Instructions de l’exercice
- Importez le sous-module
layersdepuistensorflow.keras. - Récupérez la sortie et l'état de l'encodeur et affectez-les respectivement à
en_outeten_state. - Définissez une couche
Inputdu décodeur qui accepte une séquence de longueurfr_len-1de mots français codés en one-hot. - Définissez une couche
TimeDistributedDenseavec une activation softmax etfr_vocabnœuds.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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)