keras 学习率设置「建议收藏」

keras 学习率设置「建议收藏」转载自https://blog.csdn.net/zzc15806/article/details/79711114Keras提供两种学习率适应方法,可通过回调函数实现。1.LearningRateSchedulerkeras.callbacks.LearningRateScheduler(schedule)该回调函数是学习率调度器.参数   schedule:函数,该函数…

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

转载自https://blog.csdn.net/zzc15806/article/details/79711114

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=5, 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=5, validation_split=0.1, callbacks=[reduce_lr])

———————
作者:z小白
来源:CSDN
原文:https://blog.csdn.net/zzc15806/article/details/79711114
版权声明:本文为博主原创文章,转载请附上博文链接!

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

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

(0)
上一篇 2022年5月23日 上午8:20
下一篇 2022年5月23日 上午8:40


相关推荐

  • classcastingexception_c++链接错误

    classcastingexception_c++链接错误转载自:http://www.blogjava.net/Sunday/archive/2007/08/18/137860.html现在java编程中经常碰到ClassCastException错误,ClassCastException是JVM在检测到两个类型间的转换不兼容时引发的运行时异常。此类错误通常会终止用户请求。本模式试图为您提供了解和排除ClassCastExcept

    2025年10月15日
    5
  • 原码,补码,二进制减法计算_二进制的原码和补码

    原码,补码,二进制减法计算_二进制的原码和补码这篇博客从一道题说起,已知x = (1<<31)-3,求x&-x?这里面考察了二进制的减法,减法也就牵涉了原码补码的一些概念。这里进行下梳理。 一。原码,补码概念1.原码就是早期用来表示数字的一种方式。一个正数,转换为二进制位就是这个正数的原码。负数的绝对值转换成二进制位然后在高位补1就是这个负数的原码例如:假设机器是32位系统,in…

    2026年3月11日
    4
  • awk数组与语法[通俗易懂]

    awk数组与语法[通俗易懂]1、awk数组1.1数组结构1.2数组分类索引数组:以数字为下标关联数组:以字符串为下标1.3awk关联数组现有如下文本,格式如下:即左边是随机字母,右边是随机数字,即将相同的字母后面的数字加在一起,按字母的顺序输出以$1为下标,创建数组a[$1]=a[$1]+$2或者(a[$1]+=$2)然后配合END和for循环输出结果:for(iina):…

    2022年7月19日
    25
  • git生成ssh key 避免每次push都要输入账号密码

    git生成ssh key 避免每次push都要输入账号密码

    2021年10月27日
    63
  • 微机原理与接口技术电子版_微机原理与接口技术主要内容

    微机原理与接口技术电子版_微机原理与接口技术主要内容微型计算机原理接口与技术综述论文汇编微型计算机原理与接口技术课程综述内容摘要微型计算机原理与接口技术主要讲的是微型计算机的基本工作原理、系统的组成及接口技术和基本的汇编语言程序设计知识。本文主要对微机原理与接口技术的学习内容和应用做介绍。一、微型计算机原理与接口技术课程综述本课程共分十章。第一章介绍了微型计算机的整体概念;第二章讲述了80X86微处理器的结构、功能、总线操作时序和80X86微处理器…

    2026年4月14日
    6
  • Kettle下载_kettle网页版

    Kettle下载_kettle网页版下载地址:https://sourceforge.net/projects/pentaho/files/

    2025年6月17日
    2

发表回复

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

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