LoslegenKostenlos loslegen

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

Kurs anzeigen

Anleitung zur Übung

  • Definiere ein Modell namens model_2, das model_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.
  • Kompiliere model_2 wie zuvor: mit 'adam' als optimizer, 'categorical_crossentropy' als Verlustfunktion und metrics=['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()
Code bearbeiten und ausführen