ÎncepețiÎncepe gratuit

Definirea straturilor modelului cu Teacher Forcing

Vei defini o versiune îmbunătățită a modelului de traducere automată pe care l-ai creat anterior. Știai că modele precum Google Machine Translator folosesc tehnica Teacher Forcing pentru antrenament?

Așa cum ai văzut deja, modelul anterior necesită câteva modificări pentru a adopta Teacher Forcing. În acest exercițiu, vei face ajustările necesare. Ai la dispoziție parametrii de limbă en_len și fr_len (lungimea propozițiilor în engleză/franceză după padding), en_vocab și fr_vocab (dimensiunea vocabularului pentru engleză/franceză) și hsize (dimensiunea stratului ascuns al straturilor GRU). Reține că decodorul va accepta o secvență în franceză cu un element mai puțin decât fr_len. Folosim prefixul en pentru elementele legate de encoder și de pentru cele legate de decoder.

Acest exercițiu face parte din cursul

Traducere automată cu Keras

Vezi cursul

Instrucțiuni pentru exercițiu

  • Importă submodulul layers din tensorflow.keras.
  • Obține valorile de ieșire și starea encodorului și atribuie-le variabilelor en_out, respectiv en_state.
  • Definește un strat Input pentru decoder, care acceptă o secvență de lungime fr_len-1 formată din cuvinte franceze codificate one-hot.
  • Definește un strat Dense softmax de tip TimeDistributed cu fr_vocab noduri.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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)
Editează și rulează codul