Keras提供两种学习率调整方法,都是通过回调函数来实现。

  • LearningRateScheduler
  • ReduceLROnPlateau

1. LearningRateScheduler

keras.callbacks.LearningRateScheduler(schedule)

学习速率定时器,也就是说,定的是啥就是啥,严格按照定时器进行更改。

  • schedule: 一个函数,接受epoch作为输入(整数,从 0 开始迭代), 然后返回一个学习速率作为输出(浮点数)。
import keras.backend as K
from keras.callbacks import LearningRateSchedulerdef scheduler(epoch):# 每隔10个epoch,学习率减小为原来的1/10if epoch % 10 == 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)# def poly_decay(epoch):
#     # initialize the maximum number of epochs, base learning rate,
#     # and power of the polynomial
#     maxEpochs = epochs
#     baseLR = learning_rate
#     power = 1.0
#
#     # compute the new learning rate based on polynomial decay
#     alpha = baseLR * (1 - (epoch / float(maxEpochs))) ** power
#
#     return alpha
#
#
# poly_reduce_lr = LearningRateScheduler(poly_decay)reduce_lr = LearningRateScheduler(scheduler)
model.fit(train_x, train_y, batch_size=128, epochs=50, callbacks=[reduce_lr])

2. ReduceLROnPlateau

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

当评估指标停止提升时,降低学习速率。

  • monitor: 被监测的指标。
  • factor: 学习速率被降低的因数。新的学习速率 = 学习速率 * 因数
  • patience: 没有提升的训练轮数,在这之后训练速率会被降低。
  • verbose: 整数。0:安静,1:更新信息。
  • mode: {auto, min, max} 其中之一。如果是 min 模式,学习速率会被降低如果被监测的数据已经停止下降; 在 max 模式,学习塑料会被降低如果被监测的数据已经停止上升; 在 auto 模式,方向会被从被监测的数据中自动推断出来。
  • min_delta: 阈值,用来确定是否进入检测值的“平原区”
  • cooldown: 在学习速率被降低之后,重新恢复正常操作之前等待的训练轮数量。
  • min_lr: 学习速率的下边界。
from keras.callbacks import ReduceLROnPlateaureduce_lr = ReduceLROnPlateau(monitor='val_loss', patience=10, mode='min')
model.fit(train_x, train_y, batch_size=128, epochs=50, validation_split=0.1, callbacks=[reduce_lr])

keras进阶之poly学习率相关推荐

  1. Java 11 – ChaCha20-Poly1305加密示例

    本文向您展示如何使用RFC 7539中定义的ChaCha20-Poly1305算法对消息进行加密和解密. PS ChaCha20-Poly1305加密算法可从Java 11获得. 1.常见问题 一些常 ...

  2. “让Keras更酷一些!”:分层的学习率和自由的梯度

    作者丨苏剑林 单位丨广州火焰信息科技有限公司 研究方向丨NLP,神经网络 个人主页丨kexue.fm 高举"让 Keras 更酷一些!"大旗,让 Keras 无限可能. 今天我们会 ...

  3. 机器学习(七)——tf.keras搭建神经网络固定模式

    一.总纲(一般按照下面6步搭建) import--导入相关模块 train,test--指定训练集与测试集 model = tf.keras.models.Sequential--在Sequentia ...

  4. 【DL】——Warmup学习率调整策略

    1. warmup的必要性 原理这部分转载自: 神经网络中 warmup 策略为什么有效:有什么理论解释么? 那么在什么时候可能不成立呢?论文[3]告诉我们有两种情况: 在训练的开始阶段,模型权重迅速 ...

  5. 【学习率】梯度下降学习率的设定策略

    转载 卢明冬 参考 学习率和batchsize如何影响模型的性能? - yumoye - 博客园 学会使用顶级算法的秘诀是什么?如何找到合适的学习率?-电子发烧友网 深度学习论文 - Cyclical ...

  6. tensorflow.keras入门1

    tensorflow.keras入门1-基本函数介绍 目前keras API 已经整合到 tensorflow中,在tensorflow中通过tf.keras就可以调用keras. import te ...

  7. 【调参15】如何配置神经网络的学习率

    文章目录 1. 什么是学习率 2. 学习率的影响 3. 如何设置学习率 4. 为学习过程添加动量(Momentum) 5. 使用学习率时间表(LR Schedule) 6. 自适应学习率(Adapti ...

  8. tensorflow学习笔记keras(5)------北京大学 曹健

    tf.keras搭建网络八股 1. import import tensorflow as tf from sklearn import datasets import numpy as np 2. ...

  9. DANet(双重注意力融合网络)与CBAM

    原文地址:Dual Attention Network for Scene Segmentation 源代码pytorch:https://github.com/junfu1115/DANet/ 复现 ...

最新文章

  1. STM32程序设计心得以及易错点
  2. [转载]无需软件合并多个TS流文件
  3. mailmessage html编码,C#MailMessage顯示HTML標記的AlternateViews
  4. redhat6.5 yum register 问题
  5. DNS support edns-client-subnet
  6. 在linux下dns绑定域名,在Linux系统中,使用Bind搭建DNS域名解析服务
  7. 华为Mate 20 X(5G)评测:6199元的5G双模旗舰手机
  8. 拓端tecdat|python隶属关系图模型:基于模型的网络中密集重叠社区检测方法
  9. 给所有使用FMX(FireMonkey)进行开发的忠告!
  10. GIMP为证件照更换背景颜色
  11. 对当前计算机应用的理解论文,计算机应用的现状、主要对策及今后发展方向
  12. .equal(String)与Stirng.equal()的区别
  13. 【系统运维-raid5】HW5885V3下挂4块2T硬盘如何做RAID5
  14. Shell 脚本正则表达式(一)
  15. notify()和notifyAll()有什么区别
  16. erlang 单元测试
  17. WebView加载Html片段监听滑动到底部
  18. 智能汽车时代,“BATH”的跨界姿势与逻辑
  19. 津津的储蓄计划python_津津的储蓄计划 c++
  20. 万能Makefile

热门文章

  1. 广西省桂林市永福县,县城游记
  2. future cancel失败一例
  3. html获取问号后的参数,html问号后的值怎么获取
  4. 全能电子地图实时路况_全能SUV与城市SUV的区别在哪?日产奇骏对比本田皓影
  5. 为什么有些人说单片机简单,我学起来这么吃力?
  6. c# picturebox 图像拖拽和缩放
  7. x722网卡支持百兆吗_用200M宽带,电脑网卡却只有百兆?这样可以解决!
  8. 智能镜子制作_更智能的镜子及其制作方法
  9. PCIe扫盲系列博文连载目录
  10. 启动马达接线实物图_起动马达和电瓶怎么接线图片