Wczesne zatrzymywanie: optymalizacja optymalizacji
Wiesz już, jak monitorować wydajność modelu w trakcie optymalizacji – czas wykorzystać wczesne zatrzymywanie (early stopping), aby przerwać optymalizację, gdy przestaje przynosić efekty. Ponieważ proces zatrzymuje się automatycznie, możesz ustawić dużą wartość parametru epochs w wywołaniu .fit(), tak jak pokazał Dan w filmie.
Model do optymalizacji jest dostępny jako model. Jak poprzednio, dane są wstępnie załadowane jako predictors i target.
To ćwiczenie jest częścią kursu
Wprowadzenie do uczenia głębokiego w Pythonie
Instrukcje do ćwiczenia
- Zaimportuj
EarlyStoppingztensorflow.keras.callbacks. - Skompiluj model, ponownie używając
'adam'jakooptimizer,'categorical_crossentropy'jako funkcji straty orazmetrics=['accuracy'], aby śledzić dokładność w każdej epoce. - Utwórz obiekt
EarlyStoppingo nazwieearly_stopping_monitor. Zatrzymaj optymalizację, gdy strata walidacyjna nie poprawi się przez 2 epoki – ustaw parametrpatiencefunkcjiEarlyStopping()na2. - Dopasuj model, używając
predictorsitarget. Ustaw liczbę epok (epochs) na30i zastosuj podział walidacyjny o wartości0.3. Przekaż również[early_stopping_monitor]do parametrucallbacks.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Import EarlyStopping
____
# Save the number of columns in predictors: n_cols
n_cols = predictors.shape[1]
input_shape = (n_cols,)
# Specify the model
model = Sequential()
model.add(Dense(100, activation='relu', input_shape = input_shape))
model.add(Dense(100, activation='relu'))
model.add(Dense(2, activation='softmax'))
# Compile the model
____
# Define early_stopping_monitor
early_stopping_monitor = ____
# Fit the model
____