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
Instrukcje do ćwiczenia
- Zaimportuj wywołania zwrotne
EarlyStoppingiModelCheckpointztensorflow.keras. - Utwórz
monitor_val_accjako wywołanie zwrotneEarlyStopping, które będzie monitorować'val_accuracy'z wartościąpatiencerówną 3 epokom. - Utwórz
model_checkpointjako wywołanie zwrotneModelCheckpointi zapisz najlepszy model jakobest_banknote_model.hdf5. - Dopasuj model, przekazując listę z zdefiniowanymi wywołaniami zwrotnymi oraz
X_testiy_testjako 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 = (____, ____))