使用keras回调和编写自定义回调

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 回调

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值