Oprire anticipată: optimizarea optimizării
Acum că știi cum să monitorizezi performanța modelului pe parcursul optimizării, poți folosi oprirea anticipată pentru a întrerupe optimizarea atunci când aceasta nu mai aduce îmbunătățiri. Deoarece optimizarea se oprește automat când nu mai este utilă, poți seta și o valoare ridicată pentru epochs în apelul la .fit(), așa cum a arătat Dan în videoclip.
Modelul pe care îl vei optimiza a fost definit ca model. Ca și înainte, datele sunt preîncărcate ca predictors și target.
Acest exercițiu face parte din cursul
Introducere în Deep Learning în Python
Instrucțiuni pentru exercițiu
- Importă
EarlyStoppingdintensorflow.keras.callbacks. - Compilează modelul, folosind din nou
'adam'caoptimizer,'categorical_crossentropy'ca funcție de pierdere șimetrics=['accuracy']pentru a vedea acuratețea la fiecare epocă. - Creează un obiect
EarlyStoppingnumitearly_stopping_monitor. Oprește optimizarea când pierderea de validare nu s-a îmbunătățit timp de 2 epoci, setând parametrulpatiencealEarlyStopping()la valoarea2. - Antrenează modelul folosind
predictorsșitarget. Specifică numărul deepochsca fiind30și folosește o împărțire pentru validare de0.3. În plus, transmite[early_stopping_monitor]parametruluicallbacks.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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
____