Aan de slagGa gratis aan de slag

De lagen van het Teacher Forcing-model definiëren

Je gaat een nieuwe en verbeterde versie definiëren van het machinevertalingsmodel dat je eerder hebt gebouwd. Wist je dat modellen zoals Google Machine Translator de Teacher Forcing-techniek gebruiken om hun model te trainen?

Zoals je al hebt gezien, moet je vorige model licht worden aangepast om Teacher Forcing te gebruiken. In deze oefening breng je de benodigde wijzigingen aan in het vorige model. Je hebt de taalparameters en_len en fr_len (lengte van een gepadde Engelse/Franse zin), en_vocab en fr_vocab (woordenschatgrootte van de Engelse/Franse gegevenssets) en hsize (de grootte van de verborgen laag van de GRU-lagen) gekregen. Onthoud dat de decoder een Franse reeks accepteert met één item minder dan fr_len. We gebruiken de prefix en voor encoder-gerelateerde zaken en de voor decoder-gerelateerde zaken.

Deze oefening maakt deel uit van de cursus

Machine Translation met Keras

Cursus bekijken

Oefeninstructies

  • Importeer de submodule layers uit tensorflow.keras.
  • Haal de encoderoutput en -toestanden op en ken ze respectievelijk toe aan en_out en en_state.
  • Definieer een decoder-Input-laag die een fr_len-1 lange reeks van one-hot-gecodeerde Franse woorden accepteert.
  • Definieer een TimeDistributed Dense softmax-laag met fr_vocab knooppunten.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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)
Code bewerken en uitvoeren