TensorFlow中学习率
学习率
学习率属于超参数。学习率决定梯度下降速度的快慢,学习率越大,速度越快;学习率越小,速度越慢。如果学习率过大,很可能会越过最优值;反而如果学习率过小,优化的效率可能过低,长时间算法无法收敛。所以学习率对于算法性能的表现至关重要。
指数衰减学习率
指数衰减学习率是在学习率的基础上增加了动态变化的机制,会随着梯度下降变化而动态变化
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
会转化为整数,此时学习率便是阶梯函数
步骤:
- 首先使用较大学习率(目的:为快速得到一个比较优的解);
- 然后通过迭代逐步减小学习率(目的:为使模型在训练后期更加稳定);
模板:
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的探究:
- global_step - 用于衰减计算的全局步骤。 一定不为负数。
- 喂入一次 BACTH_SIZE 计为一次 global_step
- 每间隔decay_steps次更新一次learning_rate值
TensorFlow中学习率相关推荐
- tensorflow中学习率、过拟合、滑动平均的学习
1. 学习率的设置 我们知道在参数的学习主要是通过反向传播和梯度下降,而其中梯度下降的学习率设置方法是指数衰减. 通过指数衰减的学习率既可以让模型在训练的前期快速接近较优解,又可以保证模型在训练后期不 ...
- TensorFlow中设置学习率的方式
目录 1. 指数衰减 2. 分段常数衰减 3. 自然指数衰减 4. 多项式衰减 5. 倒数衰减 6. 余弦衰减 6.1 标准余弦衰减 6.2 重启余弦衰减 6.3 线性余弦噪声 6.4 噪声余弦衰减 ...
- TensorFlow 中文文档 介绍
介绍 本章的目的是让你了解和运行 TensorFlow 在开始之前, 先看一段使用 Python API 撰写的 TensorFlow 示例代码, 对将要学习的内容有初步的印象. 这段很短的 Pyth ...
- TensorFlow中的Nan值的陷阱
北京站 | NVIDIA DLI深度学习培训 2018年1月26日 NVIDIA 深度学习学院 带你快速进入火热的DL领域 阅读全文 正文共1583 ...
- TensorFlow 中的 tf.train.exponential_decay() 指数衰减法
exponential_decay(learning_rate, global_step, decay_steps, decay_rate, staircase=False, name=None) 使 ...
- TensorFlow实战:TensorFlow中的CNN
这里按照官方api介绍官方api点这里 卷积 不同的ops下使用的卷积操作总结如下: conv2d:Arbitrary filters that can mix channels together(通 ...
- tensorflow中gradients基本用法
import tensorflow as tf """ 在反向传播过程中,神经网络需要对 loss 对应的学习参数求偏导(也叫梯度), 该值用来乘以学习率然后更新学习参数 ...
- tensorflow中model.compile()
model.compile()用来配置模型的优化器.损失函数,评估指标等 里面的具体参数有: compile(optimizer='rmsprop',loss=None,metrics=None,lo ...
- TensorFlow中常见的CallBack
文章目录 TensorFlow中常见的CallBack Tensorboard Checkpoint Earlystoping CSVLogger LearningRateScheduler 定义Ca ...
最新文章
- macOS新版本终于删掉自带Python2,这波操作连Python死忠粉都叫好
- 伯克利的电气工程和计算机科学专业,2021年加州大学伯克利分校电气工程与计算机科学专业入学要求高吗?...
- Java 8 - 01 优雅编程 lambda 以及 @FunctionalInterface注解一点通
- 用DOS命令安装删除服务
- object overview page打开后白屏问题分析
- JDK 14的征兆开始出现
- [转载] python之flask框架
- Gvim 在进行文件对比时报cannot read or write temp files
- mysql开启全局日志_mysql开启全局日志,通过每秒sql语句执行次数分析系统性能瓶颈...
- qq留言板html代码,qq主人寄语代码_QQ留言板主人寄语
- 【python】day07 pygame的几款游戏练习(简单版)找不同、消灭单词、汤姆猫、看图猜名
- 习题3.3投骰子的随机游戏
- 【微信小程序】微信小程序函数封装
- ubutun 滑动 触控板_Ubuntu触控板支持多指手势和滑动切换应用
- 利用STM32F103最小系统做C2接口离线烧录器
- 从蓝光到4K,腾讯视频高码率下载背后的技术
- 机器人瓦力材质库下载_瓦力2020材质库下载 3ds max瓦力材质库2020最新版(支持VR4.1+Gamma2.2) 下载-脚本之家...
- 动态IP和拨号的区别是什么?
- 【C】C语言大作业——学生学籍管理系统
- nextcloud服务器配置文档,NextCloud挂载数据盘