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
<Kurs>Einführung in Deep Learning mit Python</Kurs>Übungsanweisungen
- 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 praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# 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()