对TensorFlow中的variables_to_restore函数详解


Posted in Python onJuly 30, 2018

variables_to_restore函数,是TensorFlow为滑动平均值提供。之前,也介绍过通过使用滑动平均值可以让神经网络模型更加的健壮。我们也知道,其实在TensorFlow中,变量的滑动平均值都是由影子变量所维护的,如果你想要获取变量的滑动平均值需要获取的是影子变量而不是变量本身。

1、滑动平均值模型文件的保存

import tensorflow as tf
 
if __name__ == "__main__":
 v = tf.Variable(0.,name="v")
 #设置滑动平均模型的系数
 ema = tf.train.ExponentialMovingAverage(0.99)
 #设置变量v使用滑动平均模型,tf.all_variables()设置所有变量
 op = ema.apply([v])
 #获取变量v的名字
 print(v.name)
 #v:0
 #创建一个保存模型的对象
 save = tf.train.Saver()
 sess = tf.Session()
 #初始化所有变量
 init = tf.initialize_all_variables()
 sess.run(init)
 #给变量v重新赋值
 sess.run(tf.assign(v,10))
 #应用平均滑动设置
 sess.run(op)
 #保存模型文件
 save.save(sess,"./model.ckpt")
 #输出变量v之前的值和使用滑动平均模型之后的值
 print(sess.run([v,ema.average(v)]))
 #[10.0, 0.099999905]

上面的代码,是如何来保存一个滑动平均值的模型文件,之前有介绍过滑动平均值和模型文件的保存,所以这里就不再重复了。

2、滑动平均值模型文件的读取

v = tf.Variable(1.,name="v")
 #定义模型对象
 saver = tf.train.Saver({"v/ExponentialMovingAverage":v})
 sess = tf.Session()
 saver.restore(sess,"./model.ckpt")
 print(sess.run(v))
 #0.0999999

对于模型文件的读取,在上一篇博客中有介绍过,这里特别需要注意的一个地方就是,在使用tf.train.Saver函数中,所传递的模型参数是{"v/ExponentialMovingAverage":v}而不是{"v":v},如果你使用的是后面的参数,那么你得到的结果将是10而不是0.09,那是因为后者获取的是变量本身而不是影子变量。是不是感觉使用这种方式来读取模型文件的时候,还需要输入一大串的变量名称。

3、variables_to_restore函数的使用

v = tf.Variable(1.,name="v")
 #滑动模型的参数的大小并不会影响v的值
 ema = tf.train.ExponentialMovingAverage(0.99)
 print(ema.variables_to_restore())
 #{'v/ExponentialMovingAverage': <tf.Variable 'v:0' shape=() dtype=float32_ref>}
 sess = tf.Session()
 saver = tf.train.Saver(ema.variables_to_restore())
 saver.restore(sess,"./model.ckpt")
 print(sess.run(v))
 #0.0999999

通过使用variables_to_restore函数,可以使在加载模型的时候将影子变量直接映射到变量的本身,所以我们在获取变量的滑动平均值的时候只需要获取到变量的本身值而不需要去获取影子变量。

以上这篇对TensorFlow中的variables_to_restore函数详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python访问系统环境变量的方法
Apr 29 Python
python递归计算N!的方法
May 05 Python
Python 将RGB图像转换为Pytho灰度图像的实例
Nov 14 Python
基于DATAFRAME中元素的读取与修改方法
Jun 08 Python
selenium+python实现自动化登录的方法
Sep 04 Python
dataframe 按条件替换某一列中的值方法
Jan 29 Python
人工神经网络算法知识点总结
Jun 11 Python
Python中栈、队列与优先级队列的实现方法
Jun 30 Python
使用Python实现跳一跳自动跳跃功能
Jul 10 Python
Python3中urlencode和urldecode的用法详解
Jul 23 Python
PIL对上传到Django的图片进行处理并保存的实例
Aug 07 Python
python的json包位置及用法总结
Jun 21 Python
Python实现模拟浏览器请求及会话保持操作示例
Jul 30 #Python
tensorflow 打印内存中的变量方法
Jul 30 #Python
Python实现的多叉树寻找最短路径算法示例
Jul 30 #Python
tensorflow: variable的值与variable.read_value()的值区别详解
Jul 30 #Python
Tensorflow 实现修改张量特定元素的值方法
Jul 30 #Python
python用BeautifulSoup库简单爬虫实例分析
Jul 30 #Python
对TensorFlow的assign赋值用法详解
Jul 30 #Python
You might like
编写自己的php扩展函数
2006/10/09 PHP
PHP 多维数组排序(usort,uasort)
2010/06/30 PHP
图文详解phpstorm配置Xdebug进行调试PHP教程
2016/06/13 PHP
thinkphp修改配置进入默认首页的方法
2017/02/07 PHP
file模式访问网页时iframe高度自适应解决方案
2013/01/16 Javascript
select标签模拟/美化方法采用JS外挂式插件
2013/04/01 Javascript
node.js中实现同步操作的3种实现方法
2014/12/05 Javascript
node.js中的buffer.Buffer.byteLength方法使用说明
2014/12/10 Javascript
JavaScript中实现sprintf、printf函数
2015/01/27 Javascript
JavaScript中的原型prototype属性使用详解
2015/06/05 Javascript
jquery获取当前元素索引值用法实例
2015/06/10 Javascript
深入浅析javascript立即执行函数
2015/10/23 Javascript
AJAX实现瀑布流触发分页与分页触发瀑布流的方法
2016/05/23 Javascript
AngularJS 整理一些优化的小技巧
2016/08/18 Javascript
jQuery使用$.extend(true,object1, object2);实现深拷贝对象的方法分析
2019/03/06 jQuery
微信小程序实现页面分享onShareAppMessage
2019/08/12 Javascript
Layui 动态禁止select下拉的例子
2019/09/03 Javascript
[07:31]DOTA2卡尔工作室 英雄介绍主宰篇
2013/06/25 DOTA
python函数形参用法实例分析
2015/08/04 Python
学习python之编写简单乘法口诀表实现代码
2016/02/27 Python
Python常用时间操作总结【取得当前时间、时间函数、应用等】
2017/05/11 Python
python2.7 mayavi 安装图文教程(推荐)
2017/06/22 Python
python函数式编程学习之yield表达式形式详解
2018/03/25 Python
python中eval与int的区别浅析
2019/08/11 Python
英国异国风情旅游网站:Travel Talk Tours(团体旅游、探险旅游、帆船假期)
2018/07/26 全球购物
GE设备配件:GE Appliance Parts(家电零件、配件和滤水器)
2018/11/28 全球购物
世界上最受欢迎的花店:1-800-Flowers.com
2020/06/01 全球购物
党员创先争优承诺书
2014/03/26 职场文书
教师产假请假条
2014/04/10 职场文书
企业文化演讲稿
2014/05/20 职场文书
红色旅游心得体会
2014/09/03 职场文书
基层党员群众路线教育实践活动个人对照检查材料思想汇报
2014/10/05 职场文书
幼师自荐信范文
2015/03/06 职场文书
2015年小学重阳节活动总结
2015/07/29 职场文书
2016应届毕业生就业指导课心得体会
2016/01/15 职场文书
如何在Python中妥善使用进度条详解
2022/04/05 Python