Keras的回调函数

训练模型时,很多事情一开始无法预测。尤其是你不知道需要多少轮次才能得到最佳验证损失。通常简单的办法是:训练足够多的轮次,这时模型已经开始过拟合了,根据第一次运行来确定训练所需要的正确轮次,然后使用这个最佳轮数从头开始启动一个新的训练。当然,这种方法很浪费。更好的办法是使用回调函数

ModelCheckpoing和EarlyStopping回调函数

如果监控的目标在设定轮数内不再改善,可以用EarlyStopping回调函数来中断训练。这个回调函数通常与ModelCheckpoint结合使用,后者可以在训练过程中持续的不断保存模型(你也可以选择只保存目前的最佳模型,即一轮结束后具有最佳性能的模型)

import keras 


# 通过fit的callbacks参数将回调函数传入模型中,这个参数接收一个回调函数列表,你可以传入任意个回调函数
callback_lists = [
    keras.callbacks.EarlyStopping(monitor = 'acc',  # 监控模型的验证精度
                                  patience = 1,),   # 如果精度在多于一轮的时间(即两轮)内不再改善,就中断训练
    
    # ModelCheckpoint用于在每轮过后保存当前权重
    keras.callbacks.ModelCheckpoint(filepath = 'my_model.h5', # 目标文件的保存路径
                                    
                                    # 这两个参数的意思是,如果val_loss没有改善,那么不需要覆盖模型文件,
                                    # 这就可以始终保存在训练过程中见到的最佳模型
                                    monitor = 'val_loss', save_best_only 
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Einstellung

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值