Experimentação com redes mais amplas

Agora você sabe tudo o que precisa para começar a fazer experiências com modelos diferentes!

Um modelo chamado model_1 foi pré-carregado. Você pode ver um resumo desse modelo impresso no Shell IPython. Essa é uma rede relativamente pequena, com apenas 10 unidades em cada camada oculta.

Neste exercício, você criará um novo modelo chamado model_2, que é semelhante ao model_1, exceto pelo fato de ter 100 unidades em cada camada oculta.

Depois que você criar model_2, ambos os modelos serão ajustados, e um gráfico mostrando a pontuação de perda de ambos os modelos em cada época será exibido. Adicionamos o argumento verbose=False nos comandos de ajuste para imprimir menos atualizações, pois você as verá graficamente em vez de como texto.

Como você está ajustando dois modelos, levará algum tempo para ver os resultados depois de pressionar Run, portanto, seja paciente.

Este exercício faz parte do curso

Introdução à aprendizagem profunda em Python

Ver Curso

Instruções de exercício

  • Crie model_2 para replicar model_1, mas use os nós 100 em vez de 10 para as duas primeiras camadas de Dense que você adicionar com a ativação de 'relu'. Use os nós 2 para a camada de saída Dense com 'softmax' como activation.
  • 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! Observe o argumento da palavra-chave verbose=False em model.fit(): Isso imprime menos atualizações, pois você avaliará os modelos graficamente em vez de por meio de texto.

Exercício interativo prático

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

# Define early_stopping_monitor
early_stopping_monitor = EarlyStopping(patience=2)

# Create the new model: model_2
model_2 = ____

# Add the first and second layers
____.____(____(____, ____=____, input_shape=input_shape))
____

# Add the output layer
____

# Compile model_2
____

# Fit model_1
model_1_training = model_1.fit(predictors, target, epochs=15, validation_split=0.2, callbacks=[early_stopping_monitor], verbose=False)

# Fit model_2
model_2_training = model_2.fit(predictors, target, epochs=15, validation_split=0.2, callbacks=[early_stopping_monitor], 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()