《python深度学习》笔记---7.2.1、 使用 Keras 回调函数

《python深度学习》笔记---7.2.1、使用 Keras 回调函数

一、总结

一句话总结:

【在训练过程中的不同时间点都会被模型调用】:回调函数(callback)是在调用 fit 时传入模型的一个对象(即实现特定方法 的类实例),它在训练过程中的不同时间点都会被模型调用。
【中断训练、保存模型、加载一组不同的权重或改变模型的状态】:它可以访问关于模型状态与性能的 所有可用数据,还可以采取行动:中断训练、保存模型、加载一组不同的权重或改变模型的状态。

1、训练模型时,很多事情一开始都无法预测。尤其是你不知道需要多少轮才能得到最佳验证 损失,那么应该怎么办?

【过拟合之后从过拟合的那个点开始训练】:训练足够多的轮次,这时模型已经开始过拟合,根 据这第一次运行来确定训练所需要的正确轮数,然后使用这个最佳轮数从头开始再启动一次新 的训练。
【更好方式是当观测到验证损失不再改善时就停止训练】:处理这个问题的更好方法是,当观测到验证损失不再改善时就停止训练。这可以使用 Keras 回调函数来实现。

2、keras回调函数的一些用法示例?

【模型检查点(model checkpointing)】:在训练过程中的不同时间点保存模型的当前权重。
【提前终止(early stopping)】:如果验证损失不再改善,则中断训练(当然,同时保存在训 练过程中得到的最佳模型)。
【在训练过程中动态调节某些参数值】:比如优化器的学习率。
【在训练过程中记录训练指标和验证指标,或将模型学到的表示可视化(这些表示也在不 断更新)】:你熟悉的 Keras 进度条就是一个回调函数!

3、ModelCheckpoint 与 EarlyStopping 回调函数?

【EarlyStopping回调函数来中断训练】:如果监控的目标指标在设定的轮数内不再改善,可以用 EarlyStopping 回调函数来中断训练。
【EarlyStopping可以在刚开始过拟合的时候就中断训练】:比如,这个回调函数可以在刚开始过拟合的时候就中断训练,从而避免用更少的轮次重 新训练模型。
【ModelCheckpoint保存模型】:这个回调函数通常与 ModelCheckpoint 结合使用,后者可以在训练过程中持续 不断地保存模型(你也可以选择只保存目前的最佳模型,即一轮结束后具有最佳性能的模型)

4、keras的callbacks使用实例?

【通过 fit 的 callbacks 参数将回调函数传入模型中】:这个参数 接收一个回调函数的列表。你可以传入任意个数的回调函数
import keras 
callbacks_list = [keras.callbacks.EarlyStopping(monitor='acc',patience=1,),keras.callbacks.ModelCheckpoint(filepath='my_model.h5',monitor='val_loss',save_best_only=True,) ] 
model.compile(optimizer='rmsprop',loss='binary_crossentropy',metrics=['acc'])   
model.fit(x, y,epochs=10,batch_size=32,callbacks=callbacks_list,validation_data=(x_val, y_val)) 

5、ReduceLROnPlateau 回调函数 ?

【使用ReduceLROnPlateau回调函数来降低学习率】:如果验证损失不再改善,你可以使用ReduceLROnPlateau回调函数来降低学习率。
【在训练过程中如果出现 了损失平台(loss plateau),那么增大或减小学习率都是跳出局部最小值的有效策略。】

6、keras编写你自己的回调函数 ?

【创建 keras.callbacks.Callback 类的 子类】:如果你需要在训练过程中采取特定行动,而这项行动又没有包含在内置回调函数中,那么 可以编写你自己的回调函数。回调函数的实现方式是创建 keras.callbacks.Callback 类的 子类。

二、内容在总结中

博客对应课程的视频位置:

 
我的旨在学过的东西不再忘记(主要使用艾宾浩斯遗忘曲线算法及其它智能学习复习算法)的偏公益性质的完全免费的编程视频学习网站: fanrenyi.com;有各种前端、后端、算法、大数据、人工智能等课程。
博主25岁,前端后端算法大数据人工智能都有兴趣。
大家有啥都可以加博主联系方式(qq404006308,微信fan404006308)互相交流。工作、生活、心境,可以互相启迪。
聊技术,交朋友,修心境,qq404006308,微信fan404006308
26岁,真心找女朋友,非诚勿扰,微信fan404006308,qq404006308
人工智能群:939687837

作者相关推荐

原文地址:https://www.cnblogs.com/Renyi-Fan/p/13820299.html