在Tensorflow中,为解决设定学习率(learning rate)问题,提供了指数衰减法来解决。

通过tf.train.exponential_decay函数实现指数衰减学习率。

步骤:1.首先使用较大学习率(目的:为快速得到一个比较优的解);

2.然后通过迭代逐步减小学习率(目的:为使模型在训练后期更加稳定);

该函数返回的是一个新的学习率

实例如下:

learning_rate = 0.1
decay_rate = 0.96
global_steps = 1000
decay_steps = 100global_ = tf.Variable(tf.constant(0))
c = tf.train.exponential_decay(learning_rate, global_, decay_steps, decay_rate, staircase=True)
d = tf.train.exponential_decay(learning_rate, global_, decay_steps, decay_rate, staircase=False)T_C = []
F_D = []with tf.Session() as sess:for i in range(global_steps):T_c = sess.run(c,feed_dict={global_: i})T_C.append(T_c)F_d = sess.run(d,feed_dict={global_: i})F_D.append(F_d)plt.figure(1)
plt.plot(range(global_steps), F_D, 'r-')
plt.plot(range(global_steps), T_C, 'b-')plt.show()

输出:

初始的学习速率是0.1,总的迭代次数是1000次,如果staircase=True,那就表明每decay_steps次计算学习速率变化,更新原始学习速率,如果是False,那就是每一步都更新学习速率。红色表示False,绿色表示True。

tensorflow之exponential_decay相关推荐

  1. ApacheCN《Sklearn 与 TensorFlow 机器学习实用指南》 第11章 项目训练深层神经网络(梯度消失与梯度爆炸,选择初始化,选择激活函数)

    原文:https://www.jishux.com/p/52b468ceb5722ca5 第11章 训练深层神经网络 来源:ApacheCN<Sklearn 与 TensorFlow 机器学习实 ...

  2. 机器学习实战11-训练深层神经网络

    目录 一.梯度消失/爆炸问题 1.1.Xavier( Glorot)初始化(使用逻辑激活函数): 1.2.He 初始化(ReLU 激活函数及其变体,包括简称 ELU 激活): 1.3.非饱和激活函数 ...

  3. 深入tensorflow1.x

    文章目录 一.tensorflow 安装 二.核心概念 2.1 计算图 2.2 Tensor 2.3 会话Session 2.4 两层神经网络 三.深层神经网络 1. 优化方法 2. 指数衰减的学习率 ...

  4. tensorflow之tf.train.exponential_decay()指数衰减法

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

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

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

  6. 【TensorFlow】TensorFlow函数精讲之tf.train.exponential_decay()

    tf.train.exponential_decay实现指数衰减率.通过这个函数,可以先使用较大的学习率来快速得到一个比较优的解,然后随着迭代的继续逐步减小学习率,使得模型在训练后期更加稳定. tf. ...

  7. TensorFlow基础篇(一)——tf.train.exponential_decay()

    tf.train.exponential_decay实现指数衰减率.通过这个函数,可以先使用较大的学习率来快速得到一个比较优的解,然后随着迭代的继续逐步减小学习率,使得模型在训练后期更加稳定. tf. ...

  8. TensorFlow优化器及用法

    TensorFlow优化器及用法 函数在一阶导数为零的地方达到其最大值和最小值.梯度下降算法基于相同的原理,即调整系数(权重和偏置)使损失函数的梯度下降. 在回归中,使用梯度下降来优化损失函数并获得系 ...

  9. TensorFlow学习笔记——实现经典LeNet5模型

    TensorFlow实现LeNet-5模型 文章目录 TensorFlow实现LeNet-5模型 前言 一.什么是TensorFlow? 计算图 Session 二.什么是LeNet-5? INPUT ...

最新文章

  1. Maven 开 发 规 范
  2. NFS为lamp提供共享存储实践
  3. 这6种性格的人不适合做数据分析
  4. 那些年,登山徒步记录,立贴
  5. 零XML的Spring配置
  6. Java中这7个方法,一不小心就用错了!
  7. 开放app开放login_开放值得付出努力吗?
  8. matlab如何把实验结果记录在文件中,实验一Matlab基本操作
  9. linux 内核配置v4l2,深入理解linux内核v4l2框架之videobuf2【转】
  10. 车rc陀螺仪测试软件,利用加速度计和陀螺仪测量车辆运动
  11. 201671010133 2016-2017-2 《java程序设计》 初学java!
  12. linux ntfs 介绍
  13. VAE背后的哲学思想及数学原理
  14. ir2104s的自举电容_有关IR2104的自举电容和NMOS选择问题教程.docx
  15. 中文打字速度测试软件hztest_中文打字速度测试软件官方版
  16. Matlab代码区出现中文乱码的情况
  17. onvif 修改摄像头参数
  18. li前面的小圆点样式修改
  19. python画图解决Times New Roman自带粗体问题
  20. When you want to give up, remember why you started.

热门文章

  1. 如何在多台linux上同时跑相同的command?
  2. 【代码保留】WebService发布本地磁盘信息
  3. 程序员听爵士,架构师学做交响指挥
  4. UReport2 报表设计器 在线表格
  5. SVM分类器(matlab)
  6. oracle add命令详解,oracle job详解
  7. mysql reset_mysql的reset命令
  8. PHP架设网页微端,GeeM2引擎20180425版本搭建微端方法
  9. php fopen下载文件,php fopen下载远程文件的函数 | 学步园
  10. java匹配字符串所在位置_Java:获取字符串中匹配项位置的方法?