Definindo o decodificador
Neste exercício, você vai implementar o decodificador e definir um modelo ponta a ponta, indo das entradas do codificador até as saídas do GRU do decodificador. O decodificador usa o mesmo tipo de modelo do codificador. No entanto, há diferenças nas entradas e nos estados fornecidos ao decodificador em comparação ao codificador. Por exemplo, o decodificador consome o vetor de contexto produzido pelo codificador tanto como entrada quanto como estado inicial do decodificador. Lembre-se de que usaremos o prefixo en (por exemplo, en_gru) para indicar qualquer item relacionado ao codificador e de para itens relacionados ao decodificador (por exemplo, de_gru).
Para implementar o decodificador, você usará as camadas RepeatVector e GRU.
Neste exercício, foi fornecido para você o modelo do codificador e as várias camadas do codificador que já foram implementadas. Por exemplo, as entradas do codificador são fornecidas como en_inputs e o vetor de contexto como en_state. Observe também que os objetos GRU e Model já foram importados.
Este exercício faz parte do curso
Machine Translation with Keras
Instruções do exercício
- Defina uma camada
RepeatVectorque recebaen_statecomo entrada e a repitafr_lenvezes. - Defina uma camada GRU,
decoder_gru, que tenha unidades ocultas iguais ahsizee retorne todas as saídas produzidas. - Obtenha a saída da camada
decoder_grualimentandode_inputscomo entrada een_statecomo o estado inicial do decodificador. - Defina um modelo que receba
en_inputscomo entrada egru_outputscomo 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()