Early stopping: optimalizace optimalizace
Teď, když víš, jak sledovat výkon modelu v průběhu optimalizace, můžeš využít early stopping – tedy automatické zastavení optimalizace ve chvíli, kdy už nepřináší zlepšení. Protože se optimalizace zastaví sama, můžeš v .fit() klidně nastavit vysokou hodnotu epochs, jak ukázal Dan ve videu.
Model, který budeš optimalizovat, je definovaný jako model. Data jsou stejně jako dříve předem načtena jako predictors a target.
Toto cvičení je součástí kurzu
Úvod do deep learningu v Pythonu
Pokyny k cvičení
- Importuj
EarlyStoppingztensorflow.keras.callbacks. - Zkompiluj model – opět použij
'adam'jakooptimizer,'categorical_crossentropy'jako loss funkci ametrics=['accuracy'], aby ses mohl/a sledovat přesnost po každé epoše. - Vytvoř objekt
EarlyStoppings názvemearly_stopping_monitor. Optimalizaci zastav tehdy, když se validační loss nezlepší po dobu 2 epoch – nastav parametrpatiencefunkceEarlyStopping()na hodnotu2. - Natrénuj model na datech
predictorsatarget. Početepochsnastav na30, validation split na0.3a předej[early_stopping_monitor]do parametrucallbacks.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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
____