Kom igångKom igång gratis

Definiera lagren för Teacher Forcing-modellen

Nu ska du definiera en förbättrad version av den maskinöversättningsmodell du byggde tidigare. Visste du att modeller som Googles maskinöversättare använder just Teacher Forcing-tekniken för att träna sin modell?

Som du redan sett behöver din tidigare modell justeras något för att kunna använda Teacher Forcing. I den här övningen gör du de nödvändiga ändringarna i modellen. Du har fått tillgång till språkparametrarna en_len och fr_len (längden på utfyllda engelska respektive franska meningar), en_vocab och fr_vocab (vokabulärstorlek för engelska respektive franska datamängder) samt hsize (den dolda lagerstorleken för GRU-lagren). Kom ihåg att avkodaren tar emot en fransk sekvens med ett element färre än fr_len. Prefixet en används för kodnarrelaterade element och de för avkodarrelaterade element.

Den här övningen är en del av kursen

Maskinöversättning med Keras

Visa kurs

Övningsinstruktioner

  • Importera submodulen layers från tensorflow.keras.
  • Hämta kodarens utdata och tillståndsvärden och tilldela dem till en_out respektive en_state.
  • Definiera ett Input-lager för avkodaren som tar emot en sekvens av längden fr_len-1 med one-hot-kodade franska ord.
  • Definiera ett TimeDistributed Dense softmax-lager med fr_vocab noder.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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)
Redigera och kör kod