НачатьНачать бесплатно

Ранняя остановка: оптимизация оптимизации

Теперь, когда вы умеете отслеживать качество модели в процессе оптимизации, можно использовать раннюю остановку, чтобы прекращать обучение, когда оно перестаёт давать результат. Поскольку оптимизация останавливается автоматически при отсутствии прогресса, можно смело задавать большое значение epochs в вызове .fit(), как Дэн показал в видео.

Модель для оптимизации уже задана как model. Данные, как и прежде, предварительно загружены в переменные predictors и target.

Это упражнение является частью курса

Введение в глубокое обучение на Python

Посмотреть курс

Инструкции к упражнению

  • Импортируйте EarlyStopping из tensorflow.keras.callbacks.
  • Скомпилируйте модель, снова используя 'adam' в качестве optimizer, 'categorical_crossentropy' в качестве функции потерь и metrics=['accuracy'], чтобы отслеживать точность на каждой эпохе.
  • Создайте объект EarlyStopping с именем early_stopping_monitor. Настройте остановку обучения, если валидационная функция потерь не улучшается в течение 2 эпох: для этого задайте параметру patience объекта EarlyStopping() значение 2.
  • Обучите модель на данных predictors и target. Задайте количество epochs равным 30 и долю валидационной выборки 0.3. Кроме того, передайте [early_stopping_monitor] в параметр callbacks.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# 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
____
Редактировать и запускать код