Adicionando camadas a uma rede
Você viu como experimentar redes mais largas. Neste exercício, você vai testar uma rede mais profunda (com mais camadas ocultas).
Mais uma vez, você tem um modelo de referência chamado model_1 como ponto de partida. Ele tem 1 camada oculta, com 10 unidades. Você pode ver um resumo da estrutura desse modelo impresso. Você vai criar uma rede semelhante com 3 camadas ocultas (mantendo 10 unidades em cada camada).
Novamente, levará um momento para ajustar (fit) ambos os modelos, então você precisará esperar alguns segundos para ver os resultados depois de executar seu código.
Este exercício faz parte do curso
Introdução a Deep Learning em Python
Instruções do exercício
- Especifique um modelo chamado
model_2semelhante aomodel_1, mas com 3 camadas ocultas de 10 unidades em vez de apenas 1 camada oculta.- Use
input_shapepara especificar o formato de entrada na primeira camada oculta. - Use ativação
'relu'nas 3 camadas ocultas e'softmax'na camada de saída, que deve ter 2 unidades.
- Use
- Compile o
model_2como nos modelos anteriores: usando'adam'comooptimizer,'categorical_crossentropy'como loss emetrics=['accuracy']. - Clique em 'Enviar Resposta' para ajustar (fit) ambos os modelos e visualizar qual deles traz melhores resultados!
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# The input shape to use in the first hidden layer
input_shape = (n_cols,)
# Create the new model: model_2
model_2 = ____
# Add the first, second, and third hidden layers
____
____
____
# Add the output layer
____
# Compile model_2
____
# Fit model 1
model_1_training = model_1.fit(predictors, target, epochs=15, validation_split=0.4, verbose=False)
# Fit model 2
model_2_training = model_2.fit(predictors, target, epochs=15, validation_split=0.4, verbose=False)
# Create the plot
plt.plot(model_1_training.history['val_loss'], 'r', model_2_training.history['val_loss'], 'b')
plt.xlabel('Epochs')
plt.ylabel('Validation score')
plt.show()