Ci servono più dati?
È il momento di verificare se il model sul digits dataset che hai costruito trae beneficio da più esempi di training!
Per ridurre al minimo il codice, varie cose sono già inizializzate e pronte all'uso:
- Il
modelche hai appena costruito. X_train,y_train,X_testey_test.- Gli
initial_weightsdel tuo modello, salvati dopo aver usatomodel.get_weights(). - Un elenco predefinito di dimensioni di training:
training_sizes. - Una callback di early stopping predefinita che monitora la loss:
early_stop. - Due liste vuote per salvare i risultati di valutazione:
train_accsetest_accs.
Allena il tuo modello sulle diverse dimensioni di training e valuta i risultati su X_test.
Concludi tracciando i risultati con plot_results().
Il codice completo per questo esercizio è disponibile nelle diapositive!
Questo esercizio fa parte del corso
Introduzione al Deep Learning con Keras
Istruzioni dell'esercizio
- Ottieni una frazione dei dati di training determinata dal
sizeche stiamo valutando nel loop. - Imposta i pesi del modello a
initial_weightsconset_weights()e allena il modello sulla frazione di dati di training usandoearly_stopcome callback. - Valuta e salva l'accuracy per la frazione di training e per il set di test.
- Chiama
plot_results()passando le accuracy di training e di test per ciascuna dimensione di training.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
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(____, ____)