Lagen toevoegen aan een netwerk
Je hebt gezien hoe je kunt experimenteren met bredere netwerken. In deze oefening probeer je een dieper netwerk (meer verborgen lagen).
Je hebt opnieuw een basismodel model_1 als startpunt. Het heeft 1 verborgen laag met 10 units. Je ziet een samenvatting van de modelstructuur afgedrukt. Jij maakt een vergelijkbaar netwerk met 3 verborgen lagen (nog steeds 10 units per laag).
Het kost opnieuw even tijd om beide modellen te fitten, dus wacht een paar seconden op de resultaten nadat je je code hebt uitgevoerd.
Deze oefening maakt deel uit van de cursus
Introductie tot Deep Learning in Python
Oefeninstructies
- Specificeer een model
model_2dat lijkt opmodel_1, maar met 3 verborgen lagen van 10 units in plaats van slechts 1 verborgen laag.- Gebruik
input_shapeom de inputvorm in de eerste verborgen laag te specificeren. - Gebruik
'relu'als activatie voor de 3 verborgen lagen en'softmax'voor de outputlaag, die 2 units moet hebben.
- Gebruik
- Compileer
model_2zoals je eerder hebt gedaan: gebruik'adam'alsoptimizer,'categorical_crossentropy'voor de loss enmetrics=['accuracy']. - Klik op 'Antwoord verzenden' om beide modellen te fitten en te visualiseren welk model betere resultaten geeft!
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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()