CommencezCommencez gratuitement

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

Voir le cours

Instructions de l’exercice

  • Importez le sous-module layers depuis tensorflow.keras.
  • Récupérez la sortie et l'état de l'encodeur et affectez-les respectivement à en_out et en_state.
  • Définissez une couche Input du décodeur qui accepte une séquence de longueur fr_len-1 de mots français codés en one-hot.
  • Définissez une couche TimeDistributed Dense avec une activation softmax et fr_vocab nœ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)
Modifier et exécuter le code