Zacznij terazZacznij za darmo

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

Zobacz kurs

Instrukcje do ćwiczenia

  • Zaimportuj EarlyStopping z tensorflow.keras.callbacks.
  • Skompiluj model, ponownie używając 'adam' jako optimizer, 'categorical_crossentropy' jako funkcji straty oraz metrics=['accuracy'], aby śledzić dokładność w każdej epoce.
  • Utwórz obiekt EarlyStopping o nazwie early_stopping_monitor. Zatrzymaj optymalizację, gdy strata walidacyjna nie poprawi się przez 2 epoki – ustaw parametr patience funkcji EarlyStopping() na 2.
  • Dopasuj model, używając predictors i target. Ustaw liczbę epok (epochs) na 30 i zastosuj podział walidacyjny o wartości 0.3. Przekaż również [early_stopping_monitor] do parametru callbacks.

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
____
Edytuj i uruchom kod