ComeçarComece de graça

Definindo o codificador

Aqui você vai dar o primeiro passo para criar um modelo de tradução: implementar o codificador (encoder). O codificador que você vai implementar é bem simples se comparado aos modelos complexos usados em aplicações reais, como o serviço de tradução do Google. Mas não se preocupe: embora o modelo seja simples, os conceitos são os mesmos dos modelos mais complexos. Aqui vamos usar o prefixo en (por exemplo, en_gru) para indicar qualquer coisa relacionada ao encoder e de para indicar itens do decoder (por exemplo, de_gru).

Você vai notar que estamos escolhendo en_vocab menor (150) do que o valor real (228) que encontramos. Tornar o vocabulário menor reduz o consumo de memória do modelo. Reduzir um pouco o vocabulário é aceitável, pois estamos removendo as palavras mais raras ao fazer isso. Em tarefas de tradução automática, palavras raras geralmente têm menos importância do que palavras comuns.

Este exercício faz parte do curso

Machine Translation with Keras

Ver curso

Instruções do exercício

  • Defina uma camada Input para uma entrada com tamanho de vocabulário en_vocab e comprimento de sequência en_len, usando o argumento shape.
  • Defina uma camada keras.layers.GRU com hsize unidades ocultas e que retorne seu estado.
  • Obtenha as saídas da camada GRU alimentando en_inputs e atribua o estado da GRU a en_state e a saída a en_out.
  • Defina um keras.models.Model cujo input seja en_inputs e cuja 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