Inizia subitoInizia gratis

Early stopping: ottimizzare l'ottimizzazione

Ora che sai come monitorare le prestazioni del modello durante l'ottimizzazione, puoi usare l'early stopping per interrompere l'ottimizzazione quando non sta più aiutando. Poiché l'ottimizzazione si ferma automaticamente quando non porta benefici, puoi anche impostare un valore alto per epochs nella chiamata a .fit(), come Dan ha mostrato nel video.

Il modello che ottimizzerai è stato definito come model. Come prima, i dati sono già caricati in predictors e target.

Questo esercizio fa parte del corso

Introduzione al Deep Learning in Python

Visualizza corso

Istruzioni dell'esercizio

  • Importa EarlyStopping da tensorflow.keras.callbacks.
  • Compila il modello, ancora una volta usando 'adam' come optimizer, 'categorical_crossentropy' come funzione di perdita e metrics=['accuracy'] per visualizzare l'accuratezza a ogni epoca.
  • Crea un oggetto EarlyStopping chiamato early_stopping_monitor. Interrompi l'ottimizzazione quando la perdita di validazione non è migliorata per 2 epoche specificando patience=2 in EarlyStopping().
  • Addestra il modello usando predictors e target. Imposta epochs a 30 e usa una validation split di 0.3. Inoltre, passa [early_stopping_monitor] al parametro callbacks.

esercizio interattivo pratico

Prova questo esercizio completando questo codice di esempio.

# 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
____
Modifica ed esegui il codice