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
Instrucțiuni pentru exercițiu
- Importă submodulul
layersdintensorflow.keras. - Obține valorile de ieșire și starea encodorului și atribuie-le variabilelor
en_out, respectiven_state. - Definește un strat
Inputpentru decoder, care acceptă o secvență de lungimefr_len-1formată din cuvinte franceze codificate one-hot. - Definește un strat
Densesoftmax de tipTimeDistributedcufr_vocabnoduri.
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)