Adicionando camadas a uma rede

Você já viu como fazer experiências com redes mais amplas. Neste exercício, você tentará usar uma rede mais profunda (mais camadas ocultas).

Mais uma vez, você tem um modelo de linha de base chamado model_1 como ponto de partida. Ele tem uma camada oculta, com 10 unidades. Você pode ver um resumo da estrutura desse modelo impresso. Você criará uma rede semelhante com 3 camadas ocultas (ainda mantendo 10 unidades em cada camada).

Isso levará um momento para ajustar os dois modelos, portanto, você precisará aguardar alguns segundos para ver os resultados depois de executar o código.

Este exercício faz parte do curso

Introdução à aprendizagem profunda em Python

Ver Curso

Instruções de exercício

  • Especifique um modelo chamado model_2 que seja como model_1, mas que tenha 3 camadas ocultas de 10 unidades em vez de apenas 1 camada oculta.

    • Use input_shape para especificar a forma de entrada na primeira camada oculta.

    • Use a ativação 'relu' para as 3 camadas ocultas e 'softmax' para a camada de saída, que deve ter 2 unidades.

  • Compile o site model_2 como você fez com os modelos anteriores: Usando 'adam' como optimizer, 'categorical_crossentropy' para a perda e metrics=['accuracy'].

  • Clique em "Submit Answer" (Enviar resposta) para ajustar os dois modelos e visualizar qual deles apresenta os melhores resultados!

Exercício interativo prático

Experimente este exercício preenchendo 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()