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
Övningsinstruktioner
- Importera
EarlyStoppingfråntensorflow.keras.callbacks. - Kompilera modellen och använd återigen
'adam'somoptimizer,'categorical_crossentropy'som förlustfunktion ochmetrics=['accuracy']för att se noggrannheten för varje epok. - Skapa ett
EarlyStopping-objekt med namnetearly_stopping_monitor. Stoppa optimeringen när valideringsförlusten inte har förbättrats på 2 epoker genom att sätta parameternpatienceiEarlyStopping()till2. - Träna modellen med
predictorsochtarget. Ange antaletepochstill30och använd en valideringsandel på0.3. Skicka dessutom in[early_stopping_monitor]till parameterncallbacks.
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
____