学习率

学习率属于超参数。学习率决定梯度下降速度的快慢,学习率越大,速度越快;学习率越小,速度越慢。如果学习率过大,很可能会越过最优值;反而如果学习率过小,优化的效率可能过低,长时间算法无法收敛。所以学习率对于算法性能的表现至关重要。

指数衰减学习率

指数衰减学习率是在学习率的基础上增加了动态变化的机制,会随着梯度下降变化而动态变化

tf.train.exponential_decay(learning_rate, global_step, decay_steps, decay_rate, staircase=False, name=None)

  • learn_rate:事先设定的初始学习率
  • global_step:训练轮数
  • decay_steps:衰减速度。staircase=True:代表了完整的使用一遍训练数据所需要的迭代轮数(=总训练样本数/每个batch中的训练样本数)
  • decay_rate:衰减系数
  • staircase:默认为False,此时学习率随迭代轮数的变化是连续的(指数函数);为 True 时,global_step/decay_steps 会转化为整数,此时学习率便是阶梯函数

步骤:

  1. 首先使用较大学习率(目的:为快速得到一个比较优的解);
  2. 然后通过迭代逐步减小学习率(目的:为使模型在训练后期更加稳定);

模板:


global_step = tf.Variable(0)learning_rate = tf.train.exponential_decay(0.1, global_step, 1, 0.96, staircase=True)     #生成学习率learning_step = tf.train.GradientDescentOptimizer(learning_rate).minimize(....., global_step=global_step)  #使用指数衰减学习率

实例代码:

TRAINING_STEPS = 100
global_step = tf.Variable(0)
LEARNING_RATE = tf.train.exponential_decay(0.1, global_step, 1, 0.96, staircase=True)x = tf.Variable(tf.constant(5, dtype=tf.float32), name="x")
y = tf.square(x)
train_op = tf.train.GradientDescentOptimizer(LEARNING_RATE).minimize(y, global_step=global_step)with tf.Session() as sess:sess.run(tf.global_variables_initializer())for i in range(TRAINING_STEPS):sess.run(train_op)if i % 10 == 0:LEARNING_RATE_value = sess.run(LEARNING_RATE)x_value = sess.run(x)print("After %s iteration(s): x%s is %f, learning rate is %f." %(i + 1, i + 1, x_value, LEARNING_RATE_value))

关于global_step的探究:

TensorFlow中学习率相关推荐

  1. tensorflow中学习率、过拟合、滑动平均的学习

    1. 学习率的设置 我们知道在参数的学习主要是通过反向传播和梯度下降,而其中梯度下降的学习率设置方法是指数衰减. 通过指数衰减的学习率既可以让模型在训练的前期快速接近较优解,又可以保证模型在训练后期不 ...

  2. TensorFlow中设置学习率的方式

    目录 1. 指数衰减 2. 分段常数衰减 3. 自然指数衰减 4. 多项式衰减 5. 倒数衰减 6. 余弦衰减 6.1 标准余弦衰减 6.2 重启余弦衰减 6.3 线性余弦噪声 6.4 噪声余弦衰减 ...

  3. TensorFlow 中文文档 介绍

    介绍 本章的目的是让你了解和运行 TensorFlow 在开始之前, 先看一段使用 Python API 撰写的 TensorFlow 示例代码, 对将要学习的内容有初步的印象. 这段很短的 Pyth ...

  4. TensorFlow中的Nan值的陷阱

    北京站 | NVIDIA DLI深度学习培训 2018年1月26日 NVIDIA 深度学习学院 带你快速进入火热的DL领域 阅读全文                           正文共1583 ...

  5. TensorFlow 中的 tf.train.exponential_decay() 指数衰减法

    exponential_decay(learning_rate, global_step, decay_steps, decay_rate, staircase=False, name=None) 使 ...

  6. TensorFlow实战:TensorFlow中的CNN

    这里按照官方api介绍官方api点这里 卷积 不同的ops下使用的卷积操作总结如下: conv2d:Arbitrary filters that can mix channels together(通 ...

  7. tensorflow中gradients基本用法

    import tensorflow as tf """ 在反向传播过程中,神经网络需要对 loss 对应的学习参数求偏导(也叫梯度), 该值用来乘以学习率然后更新学习参数 ...

  8. tensorflow中model.compile()

    model.compile()用来配置模型的优化器.损失函数,评估指标等 里面的具体参数有: compile(optimizer='rmsprop',loss=None,metrics=None,lo ...

  9. TensorFlow中常见的CallBack

    文章目录 TensorFlow中常见的CallBack Tensorboard Checkpoint Earlystoping CSVLogger LearningRateScheduler 定义Ca ...

最新文章

  1. macOS新版本终于删掉自带Python2,这波操作连Python死忠粉都叫好
  2. 伯克利的电气工程和计算机科学专业,2021年加州大学伯克利分校电气工程与计算机科学专业入学要求高吗?...
  3. Java 8 - 01 优雅编程 lambda 以及 @FunctionalInterface注解一点通
  4. 用DOS命令安装删除服务
  5. object overview page打开后白屏问题分析
  6. JDK 14的征兆开始出现
  7. [转载] python之flask框架
  8. Gvim 在进行文件对比时报cannot read or write temp files
  9. mysql开启全局日志_mysql开启全局日志,通过每秒sql语句执行次数分析系统性能瓶颈...
  10. qq留言板html代码,qq主人寄语代码_QQ留言板主人寄语
  11. 【python】day07 pygame的几款游戏练习(简单版)找不同、消灭单词、汤姆猫、看图猜名
  12. 习题3.3投骰子的随机游戏
  13. 【微信小程序】微信小程序函数封装
  14. ubutun 滑动 触控板_Ubuntu触控板支持多指手势和滑动切换应用
  15. 利用STM32F103最小系统做C2接口离线烧录器
  16. 从蓝光到4K,腾讯视频高码率下载背后的技术
  17. 机器人瓦力材质库下载_瓦力2020材质库下载 3ds max瓦力材质库2020最新版(支持VR4.1+Gamma2.2) 下载-脚本之家...
  18. 动态IP和拨号的区别是什么?
  19. 【C】C语言大作业——学生学籍管理系统
  20. nextcloud服务器配置文档,NextCloud挂载数据盘

热门文章

  1. Java线程池参数分析
  2. matlab plot控制plot的刻度精度
  3. excel 回车后显示公式
  4. HTML-一小时学会HTML【最全总结】
  5. 华为devrun login活动参加心得
  6. 双目摄像头标定完整过程 借助Matlab软件工具箱
  7. 02在windows配置适合树莓派开发的环境
  8. HCIE-Datacom 2204day02
  9. Cocos2d-x《雷电大战》(2)-精灵随手指移动,你点哪我走哪!
  10. CentOS rpm卸载