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
Instruções de exercício
- Crie
model_2
para replicarmodel_1
, mas use os nós100
em vez de10
para as duas primeiras camadas deDense
que você adicionar com a ativação de'relu'
. Use os nós2
para a camada de saídaDense
com'softmax'
comoactivation
. - Compile o site
model_2
como você fez com os modelos anteriores: Usando'adam'
comooptimizer
,'categorical_crossentropy'
para a perda emetrics=['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
emmodel.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()