Definire il decoder
In questo esercizio implementerai il decoder e definirai un modello end-to-end che va dagli input dell'encoder alle uscite della GRU del decoder. Il decoder utilizza lo stesso modello dell'encoder, ma ci sono differenze negli input e negli stati forniti al decoder rispetto all'encoder. Ad esempio, il decoder usa il vettore di contesto prodotto dall'encoder sia come input sia come stato iniziale del decoder. Ricorda che useremo il prefisso en (ad es. en_gru) per indicare tutto ciò che riguarda l'encoder e de per le componenti del decoder (ad es. de_gru).
Per implementare il decoder userai i livelli RepeatVector e GRU.
Per questo esercizio ti sono stati forniti il modello dell'encoder e i vari livelli dell'encoder che hai già implementato. Ad esempio, gli input dell'encoder sono forniti come en_inputs e il vettore di contesto come en_state. Nota anche che gli oggetti GRU e Model sono già stati importati.
Questo esercizio fa parte del corso
Traduzione automatica con Keras
Istruzioni dell'esercizio
- Definisci un livello
RepeatVectorche prendaen_statecome input e lo ripetafr_lenvolte. - Definisci un livello GRU,
decoder_gru, con unità nascoste pari ahsizee che restituisca tutte le uscite prodotte. - Ottieni l'output del livello
decoder_grupassandode_inputscome input een_statecome stato iniziale del decoder. - Definisci un modello che prenda
en_inputscome input egru_outputscome output.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
from tensorflow.keras.layers import RepeatVector
hsize = 48
fr_len = 20
# Define a RepeatVector layer
de_inputs = ____(____)(____)
# Define a GRU model that returns all outputs
decoder_gru = ____(____, ____=____)
# Get the outputs of the decoder
gru_outputs = ____(____, initial_state=____)
# Define a model with the correct inputs and outputs
enc_dec = ____(inputs=____, outputs=____)
enc_dec.summary()