Hebben we meer data nodig?
Tijd om te checken of het digits-dataset-model dat je hebt gebouwd baat heeft bij meer trainingsvoorbeelden!
Om de code kort te houden, is van alles al geïnitialiseerd en klaar voor gebruik:
- Het
modeldat je zojuist hebt gebouwd. X_train,y_train,X_testeny_test.- De
initial_weightsvan je model, opgeslagen namodel.get_weights(). - Een vooraf gedefinieerde lijst met trainingsgroottes:
training_sizes. - Een vooraf gedefinieerde early stopping-callback die de loss monitort:
early_stop. - Twee lege lijsten om de evaluatieresultaten op te slaan:
train_accsentest_accs.
Train je model op de verschillende trainingsgroottes en evalueer de resultaten op X_test.
Sluit af door de resultaten te plotten met plot_results().
De volledige code voor deze oefening vind je op de dia's!
Deze oefening maakt deel uit van de cursus
Introductie tot Deep Learning met Keras
Oefeninstructies
- Pak een fractie van de trainingsdata bepaald door de
sizedie we in de huidige lus evalueren. - Zet de modelgewichten naar
initial_weightsmetset_weights()en train je model op de fractie trainingsdata metearly_stopals callback. - Evalueer en sla de nauwkeurigheid op voor de trainingsfractie en de testset.
- Roep
plot_results()aan en geef de trainings- en testnauwkeurigheden door voor elke trainingsgrootte.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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(____, ____)