ComeçarComece de graça

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

Ver curso

Instruções do exercício

  • Defina uma camada “ RepeatVector ” que pega “ en_state ” como entrada e repete fr_len vezes.
  • Defina uma camada GRU, decoder_gru, que tem unidades ocultas iguais a hsize 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()
Editar e executar o código