Рання зупинка: оптимізація оптимізації
Тепер, коли ви вмієте відстежувати продуктивність моделі під час оптимізації, можна застосувати ранню зупинку, щоб припиняти оптимізацію, коли вона більше не допомагає. Оскільки оптимізація зупинятиметься автоматично, коли поліпшення немає, ви також можете задати велике значення epochs у виклику .fit(), як показував Ден у відео.
Модель для оптимізації вже визначено як model. Як і раніше, дані попередньо завантажено в predictors і target.
Ця вправа є частиною курсу
Вступ до Deep Learning у 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
____