Behöver vi mer data?
Nu är det dags att undersöka om den model du byggde för sifferdatasetet drar nytta av fler träningsexempel!
För att hålla koden kompakt är flera saker redan initialiserade och redo att använda:
modelsom du nyss byggde.X_train,y_train,X_testochy_test.initial_weights– modellens ursprungliga vikter, sparade medmodel.get_weights().- En fördefinierad lista med träningsstorlekar:
training_sizes. - Ett fördefinierat early stopping-callback som övervakar förlust:
early_stop. - Två tomma listor för att lagra utvärderingsresultaten:
train_accsochtest_accs.
Träna modellen på de olika träningsstorlekarna och utvärdera resultaten på X_test.
Avsluta med att rita upp resultaten med plot_results().
Den fullständiga koden för den här övningen finns på slides!
Den här övningen är en del av kursen
Introduktion till djupinlärning med Keras
Övningsinstruktioner
- Hämta en delmängd av träningsdata baserat på det
size-värde som utvärderas i den aktuella iterationen av loopen. - Sätt modellens vikter till
initial_weightsmedset_weights()och träna modellen på delmängden av träningsdata medearly_stopsom callback. - Utvärdera och lagra noggrannheten för träningsdelmängden och testmängden.
- Anropa
plot_results()och skicka in tränings- och testnoggrannheterna för varje träningsstorlek.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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(____, ____)