Definindo o decodificador
Neste exercício, você vai implementar o decodificador e definir um modelo completo, desde as entradas do codificador até as saídas GRU do decodificador. O decodificador usa o mesmo modelo que o codificador. Mas tem diferenças nas entradas e nos estados que vão pro decodificador, comparado com o codificador. Por exemplo, o decodificador usa o vetor de contexto que o codificador criou como entrada, além do estado inicial do decodificador. Lembre-se de que vamos usar o prefixo en
(por exemplo, en_gru
) para indicar qualquer coisa relacionada ao codificador e de
para indicar coisas relacionadas ao decodificador (por exemplo, de_gru
).
Para implementar o decodificador, você vai usar as camadas RepeatVector
e GRU
.
Para este exercício, você recebeu o modelo do codificador e as várias camadas do codificador que já implementou. Por exemplo, as entradas do codificador são fornecidas como en_inputs
e o vetor de contexto como en_state
. Também dá uma olhada que os objetos GRU
e Model
já foram importados.
Este exercício faz parte do curso
Tradução automática com Keras
Instruções do exercício
- Defina uma camada “
RepeatVector
” que pega “en_state
” como entrada e repetefr_len
vezes. - Defina uma camada GRU,
decoder_gru
, que tem unidades ocultas iguais ahsize
e retorna todas as saídas produzidas. - Pega a saída da camada “
decoder_gru
” colocando “de_inputs
” como entrada e “en_state
” como estado inicial do decodificador. - Defina um modelo que receba “
en_inputs
” como entrada e “gru_outputs
” como saída.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
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()