Začněte nyníZačněte zdarma

Definování vrstev modelu s Teacher Forcing

V tomto cvičení definuješ vylepšenou verzi modelu strojového překladu, který jsi vytvořil/a dříve. Věděl/a jsi, že modely jako Google Translate používají právě techniku Teacher Forcing při trénování?

Jak už víš, předchozí model je potřeba mírně upravit, aby Teacher Forcing fungoval správně. Provedeš nezbytné změny. K dispozici máš jazykové parametry en_len a fr_len (délka doplněné anglické/francouzské věty), en_vocab a fr_vocab (velikost slovníku anglického/francouzského datasetu) a hsize (velikost skryté vrstvy GRU). Pamatuj, že dekodér přijímá francouzskou sekvenci o jeden prvek kratší než fr_len. Prefix en označuje vše, co se týká enkodéru, a prefix de dekodéru.

Toto cvičení je součástí kurzu

Machine Translation with Keras

Zobrazit kurz

Pokyny k cvičení

  • Importuj submodul layers z tensorflow.keras.
  • Získej výstup enkodéru a hodnoty stavu a přiřaď je do proměnných en_out a en_state.
  • Definuj vstupní vrstvu Input dekodéru, která přijímá sekvenci délky fr_len-1 složenou z francouzských slov zakódovaných metodou onehot.
  • Definuj vrstvu TimeDistributed typu Dense se softmax aktivací a fr_vocab neurony.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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)
Upravit a spustit kód