Inizia subitoInizia gratis

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

Visualizza corso

Istruzioni dell'esercizio

  • Definisci un livello RepeatVector che prenda en_state come input e lo ripeta fr_len volte.
  • Definisci un livello GRU, decoder_gru, con unità nascoste pari a hsize e che restituisca tutte le uscite prodotte.
  • Ottieni l'output del livello decoder_gru passando de_inputs come input e en_state come stato iniziale del decoder.
  • Definisci un modello che prenda en_inputs come input e gru_outputs come 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()
Modifica ed esegui il codice