Zacznij terazZacznij za darmo

Połączenie wywołań zwrotnych

Trenowanie modeli głębokiego uczenia może trwać bardzo długo – szczególnie gdy sięgasz po głębsze architektury i większe zbiory danych. Zapisywanie modelu za każdym razem, gdy osiąga lepszy wynik, oraz zatrzymywanie trenowania, gdy wyniki przestają się poprawiać, pozwala zapomnieć o ręcznym dobieraniu liczby epok. Zapisany model możesz też w dowolnym momencie wczytać i kontynuować trenowanie od miejsca, w którym zostało przerwane.

Dane treningowe i walidacyjne są dostępne w twoim środowisku jako X_train, X_test, y_train i y_test.

Skorzystaj z wywołań zwrotnych EarlyStopping() i ModelCheckpoint(), żeby komputer mógł pracować samodzielnie – a ty w tym czasie możesz spokojnie zjeść słoik ciastek!

To ćwiczenie jest częścią kursu

Wprowadzenie do uczenia głębokiego z Keras

Zobacz kurs

Instrukcje do ćwiczenia

  • Zaimportuj wywołania zwrotne EarlyStopping i ModelCheckpoint z tensorflow.keras.
  • Utwórz monitor_val_acc jako wywołanie zwrotne EarlyStopping, które będzie monitorować 'val_accuracy' z wartością patience równą 3 epokom.
  • Utwórz model_checkpoint jako wywołanie zwrotne ModelCheckpoint i zapisz najlepszy model jako best_banknote_model.hdf5.
  • Dopasuj model, przekazując listę z zdefiniowanymi wywołaniami zwrotnymi oraz X_test i y_test jako dane walidacyjne.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# Import the EarlyStopping and ModelCheckpoint callbacks
from tensorflow.____.____ import ____, ____

# Early stop on validation accuracy
monitor_val_acc = ____(monitor = ____, patience = ____)

# Save the best model as best_banknote_model.hdf5
model_checkpoint = ____(____, save_best_only = True)

# Fit your model for a stupid amount of epochs
h_callback = model.fit(X_train, y_train,
                    epochs = 1000000000000,
                    callbacks = [____, ____],
                    validation_data = (____, ____))
Edytuj i uruchom kod