ComeçarComece de graça

Definindo o decodificador do modelo de inferência

O modelo de inferência é o modelo que vai ser usado na prática para fazer traduções quando o usuário precisar. Neste exercício, você vai precisar implementar o decodificador do modelo de inferência.

O decodificador do modelo de inferência é diferente do decodificador do modelo de treinamento. Não dá pra alimentar o decodificador com palavras em francês, porque é isso que a gente quer prever. Felizmente, tem uma solução. A gente pode usar a palavra em francês que a gente previu no passo anterior pra alimentar o decodificador do modelo de inferência. Então, quando você quer traduzir algo, o decodificador precisa traduzir uma palavra de cada vez, usando o que já foi traduzido como entrada.

Para este exercício, as variáveis hsize (tamanho oculto da camada GRU ), fr_len e fr_vocab foram importadas. Lembre-se de que o prefixo “ de ” é usado pra se referir ao decodificador.

Este exercício faz parte do curso

Tradução automática com Keras

Ver curso

Instruções do exercício

  • Defina uma camada “ Input ” que aceita um lote de sequências de palavras em francês codificadas como onehot (comprimento da sequência 1).
  • Defina outra camada “ Input ” que aceita um lote de estados “ hsize ”, que você vai usar para passar o estado anterior para o decodificador.
  • Pega a saída e o estado do decodificador GRU.
  • Defina um modelo que aceite as palavras em francês “ Input ” e o estado anterior “ Input ” e mostre a previsão final e o novo estado “ GRU ”.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

import tensorflow.keras.layers as layers
from tensorflow.keras.models import Model
# Define an input layer that accepts a single onehot encoded word
de_inputs = layers.____(shape=(____, ____))
# Define an input to accept the t-1 state
de_state_in = layers.____(shape=(____,))
de_gru = layers.GRU(hsize, return_state=True)
# Get the output and state from the GRU layer
de_out, de_state_out = ____(de_inputs, initial_state=____)
de_dense = layers.Dense(fr_vocab, activation='softmax')
de_pred = de_dense(de_out)

# Define a model
decoder = Model(inputs=[____, ____], outputs=[____, ____])
print(decoder.summary())
Editar e executar o código