Schichten zu einem Netzwerk hinzufügen
Du hast gesehen, wie man mit breiteren Netzwerken experimentiert. In dieser Übung probierst du ein Netzwerk mit mehr verborgenen Schichten aus.
Als Ausgangspunkt hast du wieder ein Basismodell namens model_1. Es hat eine verborgene Schicht mit 10 Einheiten. Eine Zusammenfassung der Modellstruktur wird dir angezeigt. Du erstellst nun ein ähnliches Netzwerk mit drei verborgenen Schichten (jeweils weiterhin zehn Units pro Schicht).
Das Training beider Modelle dauert wieder einen Moment. Du musst also ein paar Sekunden warten, bis du die Ergebnisse siehst, nachdem du deinen Code ausgeführt hast.
Diese Übung ist Teil des Kurses
Einführung in Deep Learning mit Python
Anleitung zur Übung
- Definiere ein Modell namens
model_2, dasmodel_1ähnelt, aber statt nur einer nun drei verborgene Schichten mit jeweils zehn Units hat.- Verwende
input_shape, um in der ersten verborgenen Schicht die Eingabeform anzugeben. - Verwende
'relu'als Aktivierung für die drei verborgenen Schichten und'softmax'für die Ausgabeschicht, welche zwei Units haben soll.
- Verwende
- Kompiliere
model_2wie zuvor: mit'adam'alsoptimizer,'categorical_crossentropy'als Verlustfunktion undmetrics=['accuracy']. - Klicke auf 'Antworten', um beide Modelle zu trainieren und zu visualisieren, welches bessere Ergebnisse liefert!
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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()