Kom igångKom igång gratis

Early stopping: Optimera optimeringen

Nu när du vet hur du övervakar modellens prestanda under träningen kan du använda early stopping för att avbryta optimeringen när den inte längre hjälper. Eftersom optimeringen stannar automatiskt när den inte ger förbättring kan du också ange ett högt värde för epochs i anropet till .fit(), precis som Dan visade i videon.

Modellen du ska optimera är definierad som model. Som tidigare är datan förhandsladdat som predictors och target.

Den här övningen är en del av kursen

Introduktion till djupinlärning i Python

Visa kurs

Övningsinstruktioner

  • Importera EarlyStopping från tensorflow.keras.callbacks.
  • Kompilera modellen och använd återigen 'adam' som optimizer, 'categorical_crossentropy' som förlustfunktion och metrics=['accuracy'] för att se noggrannheten för varje epok.
  • Skapa ett EarlyStopping-objekt med namnet early_stopping_monitor. Stoppa optimeringen när valideringsförlusten inte har förbättrats på 2 epoker genom att sätta parametern patience i EarlyStopping() till 2.
  • Träna modellen med predictors och target. Ange antalet epochs till 30 och använd en valideringsandel på 0.3. Skicka dessutom in [early_stopping_monitor] till parametern callbacks.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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
____
Redigera och kör kod