Parte 2: Entendendo modelos GRU
Agora você vai ver como usar modelos Keras para aceitar lotes de entrada com tamanho arbitrário. A capacidade de aceitar lotes de tamanho arbitrário é importante por muitos motivos. Por exemplo, isso permite definir um único modelo Keras e experimentar diferentes tamanhos de lote durante o treinamento, sem precisar mudar nada no modelo.
Para este exercício, keras e numpy (como np) já foram importados.
Este exercício faz parte do curso
Machine Translation with Keras
Instruções do exercício
- Defina uma camada de entrada que aceite um lote de dados de tamanho arbitrário, com comprimento de sequência 3 e tamanho de entrada 4.
- Defina uma camada GRU com 10 unidades ocultas que consuma a entrada anterior e produza uma saída.
- Defina um Model chamado
modelque receba a camada de entrada como entrada e produza a saída da camada GRU como saída. Lembre-se de que você pode usar a sintaxekeras.models.Model(<argument>=<value>)para definir um modelo. - Faça a predição da saída do modelo para
x1ex2.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# Define an input layer
inp = keras.layers.____(____=(____))
# Define a GRU layer that takes in the input
gru_out = keras.layers.____(____)(____)
# Define a model that outputs the GRU output
____ = keras.models.____(inputs=____, outputs=____)
x1 = np.random.normal(size=(2,3,4))
x2 = np.random.normal(size=(5,3,4))
# Get the output of the model and print the result
y1 = ____.____(____)
y2 = ____.____(____)
print("shape (y1) = ", y1.shape, " shape (y2) = ", y2.shape)