Keras之ReduceLROnPlateau函数-模型训练减少学习率
2023-03-13 11:55 作者:python风控模型 | 我要投稿
目的:定义学习率之后,经过一定epoch迭代之后,模型效果不再提升,该学习率可能已经不再适应该模型。需要在训练过程中缩小学习率,进而提升模型。如何在训练过程中缩小学习率呢?我们可以使用keras中的回调函数ReduceLROnPlateau。与EarlyStopping配合使用,会非常方便。
为什么初始化一个非常小的学习率呢?因为初始的学习率过小,会需要非常多次的迭代才能使模型达到最优状态,训练缓慢。如果训练过程中不断缩小学习率,可以快速又精确的获得最优模型。
使用手写数字mnist作演示,当只设置EarlyStopping的时候,代码及效果如下:
效果:训练到5轮就触发早停了。

当使用ReduceLROnPlateau在训练过程中优化减小learning_rate:
得到的val_accuracy有所提升,训练轮数会增加。不会过早触发EarlyStooping。当然EarlyStopping的patience要比ReduceLROnPlateau的patience大一些才会有效果。

欢迎关注公众号(python风控模型),学习更多知识。

转载:https://blog.csdn.net/weixin_44048809/article/details/105711356