ComeçarComece de graça

Definindo o codificador

Aqui você vai dar o primeiro passo pra criar um modelo de tradução automática: implementar o codificador. O codificador que você vai implementar é um modelo bem simples em comparação com os modelos complexos usados em aplicações reais, como o serviço de tradução automática do Google. Mas não se preocupe, mesmo que o modelo seja simples, os conceitos são os mesmos dos modelos complexos. Aqui, vamos usar o prefixo en (por exemplo, en_gru) pra indicar qualquer coisa relacionada ao codificador e de pra indicar coisas relacionadas ao decodificador (por exemplo, de_gru).

Você vai ver que estamos escolhendo en_vocab para ser menor (150) do que o valor real (228) que encontramos. Reduzir o vocabulário diminui o espaço que o modelo ocupa na memória. Reduzir um pouco o vocabulário é legal, já que a gente tá tirando as palavras mais raras. Nas traduções automáticas, palavras raras geralmente têm menos valor do que palavras comuns.

Este exercício faz parte do curso

Tradução automática com Keras

Ver curso

Instruções do exercício

  • Defina uma camada “ Input ” para uma entrada que tenha um vocabulário de tamanho en_vocab e um comprimento de sequência en_len, usando o argumento “ shape ”.
  • Defina uma camada de rede neural ( keras.layers.GRU ) que tenha unidades ocultas ( hsize ) e retorne seu estado.
  • Pega as saídas da camada GRU colocando en_inputs e atribui o estado GRU a en_state e a saída a en_out.
  • Defina um keras.models.Model cuja entrada seja en_inputs e a saída seja en_state e imprima o resumo do modelo.

Exercício interativo prático

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

import tensorflow.keras as keras

en_len = 15
en_vocab = 150
hsize = 48

# Define an input layer
en_inputs = keras.layers.____(____=____)
# Define a GRU layer which returns the state
en_gru = ____(____, ____=____)
# Get the output and state from the GRU
____, ____ = ____(____)
# Define and print the model summary
encoder = ____(inputs=____, ____=____)
print(encoder.____)
Editar e executar o código