ComeçarComece de graça

Definindo as camadas do modelo Teacher Forcing

Você vai definir uma versão nova e melhorada do modelo de tradução automática que definiu antes. Você sabia que modelos como o Tradutor do Google usaram essa técnica de Teacher Forcing para treinar seu modelo?

Como você já viu, seu modelo anterior precisa mudar um pouco pra adotar o Teacher Forcing. Neste exercício, você vai fazer as mudanças necessárias no modelo anterior. Você recebeu os parâmetros de idioma en_len e fr_len (comprimento das frases em inglês/francês preenchidas), en_vocab e fr_vocab (tamanho do vocabulário dos conjuntos de dados em inglês/francês) e hsize (tamanho da camada oculta das camadas GRU). Lembre-se de que o decodificador aceitará uma sequência em francês com um item a menos que fr_len. Lembre-se de que usamos o prefixo en para falar sobre coisas relacionadas ao codificador e de para coisas relacionadas ao decodificador.

Este exercício faz parte do curso

Tradução automática com Keras

Ver curso

Instruções do exercício

  • Importa o submódulo layers de tensorflow.keras.
  • Pega os valores de saída e estado do codificador e coloca em en_out e en_state, respectivamente.
  • Defina uma camada decodificadora “ Input ” que aceite uma sequência longa de palavras francesas codificadas em “onehot” com o tamanho “ fr_len-1 ”.
  • Defina uma camada softmax de “ TimeDistributed Dense ” com fr_vocab nós.

Exercício interativo prático

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

# Import the layers submodule from keras
import ____.____.____ as layers

en_inputs = layers.Input(shape=(en_len, en_vocab))
en_gru = layers.GRU(hsize, return_state=True)
# Get the encoder output and state
____, ____ = en_gru(____)

# Define the decoder input layer
de_inputs = layers.____(shape=(____, ____))
de_gru = layers.GRU(hsize, return_sequences=True)
de_out = de_gru(de_inputs, initial_state=en_state)
# Define a TimeDistributed Dense softmax layer with fr_vocab nodes
de_dense = layers.____(____.____(____, activation=____))
de_pred = de_dense(de_out)
Editar e executar o código