对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文件读写并使用mysql批量插入示例分享(python操作mysql)
Feb 17 Python
Python基础知识_浅谈用户交互
May 31 Python
python email smtplib模块发送邮件代码实例
Apr 26 Python
查看django版本的方法分享
May 14 Python
Python实现的tcp端口检测操作示例
Jul 24 Python
PyQt5+requests实现车票查询工具
Jan 21 Python
解析Python3中的Import
Oct 13 Python
Python lxml模块的基本使用方法分析
Dec 21 Python
Python基于jieba, wordcloud库生成中文词云
May 13 Python
Python 实现 T00ls 自动签到脚本代码(邮件+钉钉通知)
Jul 06 Python
python利用platform模块获取系统信息
Oct 09 Python
Python爬虫入门案例之爬取二手房源数据
Oct 16 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 in_array 函数使用说明与in_array需要注意的地方说明
2010/04/13 PHP
php 高性能书写
2010/12/11 PHP
php字符串按照单词进行反转的方法
2015/03/14 PHP
PHP在线调试执行的实现方法(附demo源码)
2016/04/28 PHP
thinkPHP5.0框架配置格式、加载解析与读取方法
2017/03/17 PHP
php 浮点数比较方法详解
2017/05/05 PHP
基于PHP实现发微博动态代码实例
2020/12/11 PHP
javascript之对系统的toFixed()方法的修正
2007/05/08 Javascript
javascript 清除输入框中的数据
2009/04/13 Javascript
Javascript的匿名函数小结
2009/12/31 Javascript
jQuery autocomplate 自扩展插件、自动完成示例代码
2011/03/28 Javascript
基于jquery实现控制经纬度显示地图与卫星
2013/05/20 Javascript
JavaScript自动设置IFrame高度的小例子
2013/06/08 Javascript
jquery模拟SELECT下拉框取值效果
2013/10/23 Javascript
jquery选择器原理介绍($()使用方法)
2014/03/25 Javascript
jQuery的框架介绍
2016/05/11 Javascript
JS模拟实现方法重载示例
2016/08/03 Javascript
javascript数组遍历的方法实例分析
2016/09/13 Javascript
深入理解node.js之path模块
2017/05/03 Javascript
详解Vue Elememt-UI构建管理后台
2018/02/27 Javascript
jQuery操作attr、prop、val()/text()/html()、class属性
2019/05/23 jQuery
layui监听select变化,以及设置radio选中的方法
2019/09/24 Javascript
[02:56]DOTA2上海特锦赛小组赛解说FreeAgain采访花絮
2016/02/27 DOTA
[01:18:31]DOTA2-DPC中国联赛定级赛 LBZS vs Magma BO3第一场 1月10日
2021/03/11 DOTA
Python随机生成数据后插入到PostgreSQL
2016/07/28 Python
Caffe均值文件mean.binaryproto转mean.npy的方法
2018/07/09 Python
Python动态生成多维数组的方法示例
2018/08/09 Python
python 在右键菜单中加入复制目标文件的有效存放路径(单斜杠或者双反斜杠)
2020/04/08 Python
django Model层常用验证器及自定义验证器详解
2020/07/15 Python
Python爬虫定时计划任务的几种常见方法(推荐)
2021/01/15 Python
心得体会范文
2014/01/04 职场文书
普通话宣传标语
2014/06/26 职场文书
高中信息技术教学反思
2016/02/16 职场文书
python实现的人脸识别打卡系统
2021/05/08 Python
你喜欢篮球吗?Python实现篮球游戏
2021/06/11 Python
Python内置数据类型中的集合详解
2022/03/18 Python