Experimentando redes mais largas
Agora você já sabe tudo o que precisa para começar a experimentar com diferentes modelos!
Um modelo chamado model_1 já foi carregado. Você pode ver um resumo desse modelo impresso no IPython Shell. Esta é uma rede relativamente pequena, com apenas 10 unidades em cada camada oculta.
Neste exercício, você vai criar um novo modelo chamado model_2, parecido com o model_1, mas com 100 unidades em cada camada oculta.
Depois de criar o model_2, ambos os modelos serão ajustados, e um gráfico mostrando a pontuação de loss de ambos os modelos em cada época será exibido. Adicionamos o argumento verbose=False nos comandos de ajuste para imprimir menos atualizações, já que você verá isso graficamente em vez de como texto.
Como você está ajustando dois modelos, pode levar um momento para ver as saídas depois que você executar o código, então tenha paciência.
Este exercício faz parte do curso
Introdução a Deep Learning em Python
Instruções do exercício
- Crie o
model_2para replicar omodel_1, mas use100nós em vez de10para as duas primeiras camadasDenseque você adicionar com ativação'relu'. Use2nós para a camada de saídaDensecom'softmax'comoactivation. - Compile o
model_2como você fez com os modelos anteriores: usando'adam'comooptimizer,'categorical_crossentropy'para o loss emetrics=['accuracy']. - Clique em 'Enviar Resposta' para ajustar os dois modelos e visualizar qual deles traz melhores resultados! Observe o argumento nomeado
verbose=Falseemmodel.fit(): isso imprime menos atualizações, já que você vai avaliar os modelos graficamente em vez de por texto.
Exercício interativo prático
Experimente este exercício completando 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()