关于global_step参数
关于global_step参数
- global_step与learning_rate的关系
- 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参数相关推荐
- tensorflow中的global_step参数(转)
global_step在滑动平均.优化器.指数衰减学习率等方面都有用到,这个变量的实际意义非常好理解:代表全局步数,比如在多少步该进行什么操作,现在神经网络训练到多少轮等等,类似于一个钟表. glob ...
- Tensorflow加载预训练模型和保存模型(ckpt文件)以及迁移学习finetuning
使用tensorflow过程中,训练结束后我们需要用到模型文件.有时候,我们可能也需要用到别人训练好的模型,并在这个基础上再次训练.这时候我们需要掌握如何操作这些模型数据.看完本文,相信你一定会有收获 ...
- Tensorflow【实战Google深度学习框架】TensorFlow模型的保存与恢复加载
我们使用TensorFlow进行模型的训练,训练好的模型需要保存,预测阶段我们需要将模型进行加载还原使用,这就涉及TensorFlow模型的保存与恢复加载. 总结一下Tensorflow常用的模型保存 ...
- Tensorflow从入门到精通之——Tensorflow基本操作
前边的章节介绍了什么是Tensorflow,本节将带大家真正走进Tensorflow的世界,学习Tensorflow一些基本的操作及使用方法.同时也欢迎大家关注我们的网站和系列教程:http://ww ...
- 【TensorFlow】笔记2:深层神经网络
一.深度学习 vs 深层神经网络 深度学习:一类通过多层非线性变换对高复杂性数据建模算法的集合. 1.激活函数 线性模型的最大特点:任意线性模型的组合仍是线性模型,能够解决的问题也是有限的,这就是线性 ...
- Tensorflow 改进的MNIST手写体数字识别
上篇简单的Tensorflow解决MNIST手写体数字识别可扩展性并不好.例如计算前向传播的函数需要将所有的变量都传入,当神经网络的结构变得复杂.参数更多时,程序的可读性变得非常差.而且这种方式会导致 ...
- java 时间衰减函数_TensorFlow实现指数衰减学习率的方法
在TensorFlow中,tf.train.exponential_decay函数实现了指数衰减学习率,通过这个函数,可以先使用较大的学习率来快速得到一个比较优的解,然后随着迭代的继续逐步减小学习率, ...
- Tensorflow从入门到精通之:Tensorflow基本操作
Tensorflow是一种计算图模型,即用图的形式来表示运算过程的一种模型.Tensorflow程序一般分为图的构建和图的执行两个阶段.图的构建阶段也称为图的定义阶段,该过程会在图模型中定义所需的运算 ...
- TensorFlow:实战Google深度学习框架(三)深层神经网络
第四章 深层神经网络 4.1 深度学习与深层神经网络 4.1.1 线性模型的局限性 4.1.2 激活函数实现非线性化 4.1.3 多层网络解决异或问题 4.2 损失函数 4.2.1 经典损失函数 1. ...
最新文章
- php 设置post大小_php 修改上传文件大小限制实例详解
- Sklearn 损失函数如何应用到_机器学习大牛最常用的5个回归损失函数,你知道几个?...
- option columns.render 渲染列(1) 添加checkbox
- php保存复制粘贴的网页内容,JS实现网站内容的禁止复制和粘贴、另存为
- Magento教程 4:主机环境准备
- 开源机器人操作系统—ros_九美元计算机,机器人操作系统和更多开源新闻
- 计算机网络实训简介,计算机网络实验报告介绍.doc
- python 获取对象类型_python Class:获取对象类型
- 用积木搭出的埃菲尔铁塔
- 百度汇率转换接口 php,利用yahoo汇率接口实现实时汇率转换示例 汇率转换器_php实例...
- Kubernetes总结一:初识Kubernetes
- Win10查看已存储WiFi密码的两种方法
- 算术左、右移位与逻辑左、右移位,右移一位和除二的区别、算术溢出
- 使用python定义简单工资扣税实际收入函数
- 浅析网站 APP 登录界面设计
- 怎样测量单片机程序的运行时间?
- 在线学习如何更系统地做好Lazada店铺产品优化!
- allegro skill 选择和获取函数
- Linux超级用户(root)的密码
- html2canvas苹果不显示图片,解决html2canvas在苹果手机上不调用问题
热门文章
- 解决attempted to register plugin but it was already registered with this flutterengine
- 华为机试练习(七)书籍叠放问题
- node实现邮箱验证登录
- 黄聪:黄金分割——设计师的设计利器
- 特斯拉充电电流设置多大_【干货】特斯拉电动汽车4种充电方式详解!
- 下拉菜单html菜鸟教程,Bootstrap 下拉菜单
- 微信小程序项目实战:快递查询-李宁-专题视频课程
- 微服务-分布式事务seata
- 上海一级计算机试卷,上海计算机一级考试试题及答案
- 19Python爬虫--爬取新浪新闻标题并保存到数据库