Keras学习率调整

Keras学习率调整Keras提供两种学习率适应方法,可通过回调函数实现。1.LearningRateSchedulerkeras.callbacks.LearningRateScheduler(schedule)该回调函数是学习率调度器.参数schedule:函数,该函数以epoch号为参数(从0算起的整数),返回一个新学习率(浮点数)代码importkeras.backenda…

大家好,又见面了,我是你们的朋友全栈君。

Keras提供两种学习率适应方法,可通过回调函数实现。

1. LearningRateScheduler

keras.callbacks.LearningRateScheduler(schedule)

该回调函数是学习率调度器.

参数

  • schedule:函数,该函数以epoch号为参数(从0算起的整数),返回一个新学习率(浮点数)

代码

import keras.backend as K
from keras.callbacks import LearningRateScheduler

def scheduler(epoch):
    # 每隔100个epoch,学习率减小为原来的1/10
    if epoch % 100 == 0 and epoch != 0:
        lr = K.get_value(model.optimizer.lr)
        K.set_value(model.optimizer.lr, lr * 0.1)
        print("lr changed to {}".format(lr * 0.1))
    return K.get_value(model.optimizer.lr)

reduce_lr = LearningRateScheduler(scheduler)
model.fit(train_x, train_y, batch_size=32, epochs=300, callbacks=[reduce_lr])

2. ReduceLROnPlateau

keras.callbacks.ReduceLROnPlateau(monitor='val_loss', factor=0.1, patience=10, verbose=0, mode='auto', epsilon=0.0001, cooldown=0, min_lr=0)

当评价指标不在提升时,减少学习率

当学习停滞时,减少2倍或10倍的学习率常常能获得较好的效果。该回调函数检测指标的情况,如果在patience个epoch中看不到模型性能提升,则减少学习率

参数

  • monitor:被监测的量
  • factor:每次减少学习率的因子,学习率将以lr = lr*factor的形式被减少
  • patience:当patience个epoch过去而模型性能不提升时,学习率减少的动作会被触发
  • mode:‘auto’,‘min’,‘max’之一,在min模式下,如果检测值触发学习率减少。在max模式下,当检测值不再上升则触发学习率减少。
  • epsilon:阈值,用来确定是否进入检测值的“平原区”
  • cooldown:学习率减少后,会经过cooldown个epoch才重新进行正常操作
  • min_lr:学习率的下限

 代码

from keras.callbacks import ReduceLROnPlateau
reduce_lr = ReduceLROnPlateau(monitor='val_loss', patience=10, mode='auto')
model.fit(train_x, train_y, batch_size=32, epochs=300, validation_split=0.1, callbacks=[reduce_lr])

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/130368.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • kafka介绍和使用[通俗易懂]

    kafka介绍和使用[通俗易懂]1.1.      主要功能根据官网的介绍,ApacheKafka®是一个分布式流媒体平台,它主要有3种功能:  1:Itletsyoupublishandsubscribetostreamsofrecords.发布和订阅消息流,这个功能类似于消息队列,这也是kafka归类为消息队列框架的原因  2:Itletsyoustorestreamsofrecordsin…

    2022年10月13日
    3
  • bootstrap 模态窗和datepicker搭配,清空form问题

    bootstrap模态窗和datepicker搭配,清空form问题

    2022年2月16日
    49
  • cmake -D_cmake -G

    cmake -D_cmake -G项目中想用googletest,项目也是用cmake管理的。于是想用cmake添加gtestset(CMAKE_PREFIX_PATH”/path/to/gtest/install/path/cmake/path”${CMAKE_PREFIX_PATH})enable_testing()set(GTEST_ROOT”/path/to/gtest…

    2022年9月29日
    3
  • VS2008安装失败_vs2015安装时发生严重错误

    VS2008安装失败_vs2015安装时发生严重错误因为前两天XML的作业时用VS2008做的,公司的电脑上没装,打算装一个,以前安装过N次VS2008,昨天在公司的电脑上安装提示如下错误:    当时以为是安装的同时打开了很多其他的应用程序导致的这个问题。今天在关闭其他程序的情况下重新安装,还是出错。    在百度上搜说是与office2007冲突,解决办法是卸载office2007再安装,但是我以前都是在安装

    2022年9月6日
    5
  • linux安装pip3命令(pip3 install报错)

    1.首先安装setuptools  小伙伴们可以通过官方模块库来下载:https://pypi.python.org/pypi  这里我就直接用wget到服务器上下载了版本为19.6(小伙伴们可以尝试新的版本奥。。)wget–no-check-certificatehttps://pypi.python.org/packages/source/s/setuptools/setuptools…

    2022年4月11日
    773
  • 【J2EE】13个规范

    【J2EE】13个规范【J2EE】13个规范

    2022年4月24日
    42

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号