Czy potrzebujemy więcej danych?
Czas sprawdzić, czy model zbudowany na zbiorze digits dataset zyskuje na większej liczbie przykładów treningowych!
Aby zminimalizować ilość kodu, kilka elementów jest już zainicjalizowanych i gotowych do użycia:
- Zbudowany przez ciebie
model. X_train,y_train,X_testiy_test.initial_weights– wagi modelu zapisane za pomocąmodel.get_weights().- Wstępnie zdefiniowana lista rozmiarów zbioru treningowego:
training_sizes. - Wstępnie zdefiniowany callback zatrzymujący trening na podstawie straty:
early_stop. - Dwie puste listy do przechowywania wyników ewaluacji:
train_accsitest_accs.
Wytrenuj model na różnych rozmiarach zbioru treningowego i oceń wyniki na X_test.
Na końcu zwizualizuj wyniki za pomocą plot_results().
Pełny kod tego ćwiczenia znajdziesz na slajdach!
To ćwiczenie jest częścią kursu
Wprowadzenie do uczenia głębokiego z Keras
Instrukcje do ćwiczenia
- Pobierz fragment danych treningowych wyznaczony przez wartość
sizeaktualnie ocenianą w pętli. - Ustaw wagi modelu na
initial_weightsza pomocąset_weights()i wytrenuj model na wybranym fragmencie danych, używającearly_stopjako callbacku. - Oceń i zapisz dokładność dla fragmentu danych treningowych oraz dla zbioru testowego.
- Wywołaj
plot_results(), przekazując dokładności treningowe i testowe dla każdego rozmiaru zbioru treningowego.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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(____, ____)