keras回调
回调
save_callback = keras.callbacks.ModelCheckpoint(
'checkpoint/',
save_weigthts_only=True,
monitor='accuracy',
save_best_only=False,
)
model.fit(ds_train,
epochs=10,
verbose=2,
callbacks=[save_callback, lr_scheduler])
调度器
def scheduler(epoch, lr):
if epoch < 2:
return lr
else:
return lr * 0.99
lr_scheduler = keras.callbacks.LearningRateScheduler(scheduler, verbose=1)
自定义回调
修改lr学习率
class CustomCallback(keras.callbacks.Callback):
def on_epoch_end(self, epoch, logs=None):
print(logs.keys())
callbacks=[save_callback, lr_scheduler, CustomCallback()],
检测准确率>0.9就停止训练
class CustomCallback(keras.callbacks.Callback):
def on_epoch_end(self, epoch, logs=None):
# print(logs.keys())
if logs.get('accuracy') > 0.90:
print('Accuracy over 90%, quitting training')
self.model.stop_training = True
也可以 on_batch_end 在每个批次上修改 或根据验证准确率 val_accuracy 回调