- EarlyStopping: min_delta 以下の improvement しか、見られない時に patience 回しか耐えない。monitor より確認
- ReduceLROnPlateau: min_delta 以下の改善しか見られない時に、学習率 (lr) に factor を掛ける。
- ModelCheckpoint: model_name で保存する。weights のみ保存や、best_params の保存のみなどの指定が可能。
from keras.callbacks import EarlyStopping, ModelCheckpoint, ReduceLROnPlateau
from keras.optimizers import Adam
for num in range(1, 4):
model_name = 'cropping-%01d.h5' % num
print(model_name)
model.compile(Adam(lr=0.032), loss='mean_squared_error')
model.fit_generator(
TrainingData(), epochs=50, max_queue_size=12, workers=4, verbose=1,
validation_data=(val_a, val_b),
callbacks=[
EarlyStopping(monitor='val_loss', patience=9, min_delta=0.1, verbose=1),
ReduceLROnPlateau(monitor='val_loss', patience=3, min_delta=0.1, factor=0.25, min_lr=0.002, verbose=1),
ModelCheckpoint(model_name, save_best_only=True, save_weights_only=True),
])
model.load_weights(model_name)
model.evaluate(val_a, val_b, verbose=0)