Mit breiteren Netzen experimentieren
Jetzt weißt du alles, was du brauchst, um mit verschiedenen Modellen zu experimentieren!
Ein Modell namens model_1 wurde bereits geladen. In der IPython-Shell siehst du eine Zusammenfassung dieses Modells. Es handelt sich um ein relativ kleines Netzwerk mit nur zehn Units in jeder verborgenen Schicht.
In dieser Übung erstellst du ein neues Modell namens model_2, das model_1 ähnelt, aber 100 Einheiten in jeder verborgenen Schicht hat.
Nachdem du model_2 erstellt hast, werden beide Modelle trainiert, und ein Diagramm zeigt den Loss beider Modelle in jeden Durchlauf. Wir haben das Argument verbose=False in den Fit-Befehlen hinzugefügt, um weniger Ausgaben zu erhalten, da du dir die Ergebnisse grafisch statt als Text anschaust.
Da du zwei Modelle trainierst, dauert es einen Moment, bis du nach dem Ausführen die Ausgaben siehst – hab also etwas Geduld.
Diese Übung ist Teil des Kurses
Einführung in Deep Learning mit Python
Anleitung zur Übung
- Erstelle
model_2, dasmodel_1repliziert, aber verwende100Knoten statt10für die ersten beidenDense-Schichten mit der Aktivierung'relu'. Verwende2Knoten für dieDense-Ausgabeschicht mit'softmax'alsactivation. - Kompiliere
model_2wie bei den vorherigen Modellen: mit'adam'alsoptimizer,'categorical_crossentropy'als Loss undmetrics=['accuracy']. - Klicke auf Antworten, um beide Modelle zu trainieren und zu visualisieren, welches bessere Ergebnisse liefert! Achte auf das Schlüsselwortargument
verbose=Falseinmodel.fit(): Dadurch werden weniger Updates ausgegeben, da du die Modelle grafisch statt über Text 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()