关于global_step参数

  1. global_step与learning_rate的关系
  2. global_step与estimator的关系

1 global_step与learning_rate的关系
learning_rate:在梯度下降中学习率大小很关键,过大容易造成震荡,过小容易陷入局部最优值以及降低收敛速度加长学习时间。起初学习率过大是加速到达最低点,解决学习率国小的问题;随着训练步数的增加,学习率呈指数递减,防止学习率过大而到达不了最低点,使得最后趋于平稳,到达一个稳定的学习状态
learning_rate衰减方式:
lr_init - 初始学习率
decay_rate - 学习衰减率
global_step - 全局训练步数(每训练一个batch就+1)
decay_step - 衰减步数(训练100 或 10000步之后开始改变学习率)

     阶梯式l  r_new = lr_init * decay_rate^(global_step/decay_step)当且仅当global_step/decay_step 为整数时学习率才会改变tfAPI:指数形式 lr_new = lr_init * decay_rate^(global_step/decay_step)每训练一个batch学习率都会更新
 global_step = tf.Variable(0)# 通过exponential_decay函数生成学习率
#staircase = True为阶梯式更新lr,staircase = False为指数形式更新lr
learning_rate = tf.train.exponential_decay(0.1, global_step, 100, 0.96, staircase = True)# 使用指数衰减的学习率。在minimize函数中传入global_step将自动更新
# global_ste参数,从而使得学习率也得到相应更新
learning_step = tf.train.GradientDescentOptimizer(learning_rate).minimize(..my loss.., global_step = global_step)

2 global_step与estimator的关系
estimator.train日志显示 global_step/sec,没有得到理想的loss和每step时间

'''every_n_iter : 指定打印的step数'''logging_hook = tf.train.LoggingTensorHook({"loss":total_loss,"step":global_steps},every_n_iter=1)output_spec = tf.estimator.tpu.TPUEstimatorSpec(mode=mode,loss=total_loss,train_op=train_op,training_hooks=[logging_hook],  #addscaffold_fn=scaffold_fn)  # 钩子,这里用来将BERT中的参数作为我们模型的初始值

个人理解,仅供参考。
参考博客:global_step用法与理解

关于global_step参数相关推荐

  1. tensorflow中的global_step参数(转)

    global_step在滑动平均.优化器.指数衰减学习率等方面都有用到,这个变量的实际意义非常好理解:代表全局步数,比如在多少步该进行什么操作,现在神经网络训练到多少轮等等,类似于一个钟表. glob ...

  2. Tensorflow加载预训练模型和保存模型(ckpt文件)以及迁移学习finetuning

    使用tensorflow过程中,训练结束后我们需要用到模型文件.有时候,我们可能也需要用到别人训练好的模型,并在这个基础上再次训练.这时候我们需要掌握如何操作这些模型数据.看完本文,相信你一定会有收获 ...

  3. Tensorflow【实战Google深度学习框架】TensorFlow模型的保存与恢复加载

    我们使用TensorFlow进行模型的训练,训练好的模型需要保存,预测阶段我们需要将模型进行加载还原使用,这就涉及TensorFlow模型的保存与恢复加载. 总结一下Tensorflow常用的模型保存 ...

  4. Tensorflow从入门到精通之——Tensorflow基本操作

    前边的章节介绍了什么是Tensorflow,本节将带大家真正走进Tensorflow的世界,学习Tensorflow一些基本的操作及使用方法.同时也欢迎大家关注我们的网站和系列教程:http://ww ...

  5. 【TensorFlow】笔记2:深层神经网络

    一.深度学习 vs 深层神经网络 深度学习:一类通过多层非线性变换对高复杂性数据建模算法的集合. 1.激活函数 线性模型的最大特点:任意线性模型的组合仍是线性模型,能够解决的问题也是有限的,这就是线性 ...

  6. Tensorflow 改进的MNIST手写体数字识别

    上篇简单的Tensorflow解决MNIST手写体数字识别可扩展性并不好.例如计算前向传播的函数需要将所有的变量都传入,当神经网络的结构变得复杂.参数更多时,程序的可读性变得非常差.而且这种方式会导致 ...

  7. java 时间衰减函数_TensorFlow实现指数衰减学习率的方法

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

  8. Tensorflow从入门到精通之:Tensorflow基本操作

    Tensorflow是一种计算图模型,即用图的形式来表示运算过程的一种模型.Tensorflow程序一般分为图的构建和图的执行两个阶段.图的构建阶段也称为图的定义阶段,该过程会在图模型中定义所需的运算 ...

  9. TensorFlow:实战Google深度学习框架(三)深层神经网络

    第四章 深层神经网络 4.1 深度学习与深层神经网络 4.1.1 线性模型的局限性 4.1.2 激活函数实现非线性化 4.1.3 多层网络解决异或问题 4.2 损失函数 4.2.1 经典损失函数 1. ...

最新文章

  1. php 设置post大小_php 修改上传文件大小限制实例详解
  2. Sklearn 损失函数如何应用到_机器学习大牛最常用的5个回归损失函数,你知道几个?...
  3. option columns.render 渲染列(1) 添加checkbox
  4. php保存复制粘贴的网页内容,JS实现网站内容的禁止复制和粘贴、另存为
  5. Magento教程 4:主机环境准备
  6. 开源机器人操作系统—ros_九美元计算机,机器人操作系统和更多开源新闻
  7. 计算机网络实训简介,计算机网络实验报告介绍.doc
  8. python 获取对象类型_python Class:获取对象类型
  9. 用积木搭出的埃菲尔铁塔
  10. 百度汇率转换接口 php,利用yahoo汇率接口实现实时汇率转换示例 汇率转换器_php实例...
  11. Kubernetes总结一:初识Kubernetes
  12. Win10查看已存储WiFi密码的两种方法
  13. 算术左、右移位与逻辑左、右移位,右移一位和除二的区别、算术溢出
  14. 使用python定义简单工资扣税实际收入函数
  15. 浅析网站 APP 登录界面设计
  16. 怎样测量单片机程序的运行时间?
  17. 在线学习如何更系统地做好Lazada店铺产品优化!
  18. allegro skill 选择和获取函数
  19. Linux超级用户(root)的密码
  20. html2canvas苹果不显示图片,解决html2canvas在苹果手机上不调用问题

热门文章

  1. 解决attempted to register plugin but it was already registered with this flutterengine
  2. 华为机试练习(七)书籍叠放问题
  3. node实现邮箱验证登录
  4. 黄聪:黄金分割——设计师的设计利器
  5. 特斯拉充电电流设置多大_【干货】特斯拉电动汽车4种充电方式详解!
  6. 下拉菜单html菜鸟教程,Bootstrap 下拉菜单
  7. 微信小程序项目实战:快递查询-李宁-专题视频课程
  8. 微服务-分布式事务seata
  9. 上海一级计算机试卷,上海计算机一级考试试题及答案
  10. 19Python爬虫--爬取新浪新闻标题并保存到数据库