ComeçarComece de graça

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

Ver curso

Instruções do exercício

  • Defina uma camada RepeatVector que receba en_state como entrada e a repita fr_len vezes.
  • Defina uma camada GRU, decoder_gru, que tenha unidades ocultas iguais a hsize e retorne todas as saídas produzidas.
  • Obtenha a saída da camada decoder_gru alimentando de_inputs como entrada e en_state como o 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()
Editar e executar o código