Brauchen wir mehr Daten?
Es ist Zeit zu prüfen, ob das model für den Digits-Datensatz, das du gebaut hast, von mehr Trainingsbeispielen profitiert!
Um den Code schlank zu halten, ist bereits vieles initialisiert und einsatzbereit:
- Das
model, das du gerade erstellt hast. X_train,y_train,X_testundy_test.- Die
initial_weightsdeines Modells, gespeichert nachmodel.get_weights(). - Eine vordefinierte Liste von Trainingsgrößen:
training_sizes. - Ein vordefinierter Early-Stopping-Callback, der den Loss überwacht:
early_stop. - Zwei leere Listen zur Speicherung der Evaluationsergebnisse:
train_accsundtest_accs.
Trainiere dein Modell mit den verschiedenen Trainingsgrößen und bewerte die Ergebnisse auf X_test.
Schließe ab, indem du die Ergebnisse mit plot_results() visualisierst.
Den vollständigen Code für diese Übung findest du auf den Folien!
Diese Übung ist Teil des Kurses
<Kurs>Einstieg ins Deep Learning mit Keras</Kurs>Übungsanweisungen
- Hole dir den Bruchteil der Trainingsdaten, der durch die aktuell in der Schleife geprüfte
sizebestimmt wird. - Setze die Modellgewichte mit
set_weights()aufinitial_weightszurück und trainiere dein Modell auf dem entsprechenden Teil der Trainingsdaten, wobei duearly_stopals Callback verwendest. - Evaluiere und speichere die Genauigkeit für den Trainingsanteil und den Testdatensatz.
- Rufe
plot_results()auf und übergib die Trainings- und Testgenauigkeiten für jede Trainingsgröße.
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
for size in training_sizes:
# Get a fraction of training data (we only care about the training data)
X_train_frac, y_train_frac = X_train[:size], y_train[:size]
# Reset the model to the initial weights and train it on the new training data fraction
model.set_weights(____)
model.fit(X_train_frac, y_train_frac, epochs = 50, callbacks = [early_stop])
# Evaluate and store both: the training data fraction and the complete test set results
train_accs.append(model.evaluate(____, ____)[1])
test_accs.append(model.evaluate(____, ____)[1])
# Plot train vs test accuracies
plot_results(____, ____)