CommencerCommencer gratuitement

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

Afficher le cours

Instructions

  • Veuillez importer le sous-module layers à partir de tensorflow.keras.
  • Obtenez les valeurs de sortie et d'état de l'encodeur et attribuez-les respectivement à en_out et en_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)
Modifier et exécuter le code