Mit größeren Netzwerken experimentieren
Jetzt weißt du alles, was du brauchst, um mit verschiedenen Modellen zu experimentieren!
Ein Modell namens „ model_1
“ ist schon installiert. Du kannst eine Zusammenfassung dieses Modells in der IPython Shell sehen. Das ist ein ziemlich kleines Netzwerk mit nur 10 Einheiten in jeder versteckten Schicht.
In dieser Übung erstellst du ein neues Modell namens „ model_2
”, das dem Modell „ model_1
” ähnelt, außer dass es 100 Einheiten in jeder versteckten Schicht hat.
Nachdem du „ model_2
“ erstellt hast, werden beide Modelle angepasst und ein Diagramm angezeigt, das die Verlustwerte beider Modelle in jeder Epoche zeigt. Wir haben das Argument „ verbose=False
“ in die Anpassungsbefehle eingefügt, damit weniger Aktualisierungen angezeigt werden, da du diese grafisch und nicht als Text betrachten wirst.
Da du zwei Modelle anpasst, dauert es einen Moment, bis du nach dem Klicken auf „Ausführen“ die Ergebnisse siehst. Hab also bitte etwas Geduld.
Diese Übung ist Teil des Kurses
Einführung in Deep Learning mit Python
Anleitung zur Übung
- Erstell „
model_2
“, um „model_1
“ zu kopieren, aber nimm „100
“ statt „10
“ für die ersten beiden „Dense
“-Schichten, die du mit der Aktivierung „'relu'
“ hinzufügst. Verwende „2
“-Knoten für die Ausgabeschicht „Dense
“ mit „'softmax'
“ als „activation
“. - Kompiliere „
model_2
” so, wie du es bei den vorherigen Modellen gemacht hast: Mit „'adam'
” alsoptimizer
, „'categorical_crossentropy'
” für den Verlust und „metrics=['accuracy']
”. - Klick auf „Antwort senden“, um beide Modelle anzupassen und zu sehen, welches besser funktioniert! Achte auf das Schlüsselwortargument „
verbose=False
“ in „model.fit()
“: Dadurch werden weniger Aktualisierungen ausgedruckt, da du die Modelle grafisch statt in Textform auswertest.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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()