Tensorflow 自定义loss的情况下初始化部分变量方式


Posted in Python onJanuary 06, 2020

一般情况下,tensorflow里面变量初始化过程为:

#variables ...........
  #..................... 
  init = tf.initialize_all_variables()
  sess.run(init)

这里 tf.initialize_all_variables() 会初始化所有的变量。

实际过程中,假设有a, b, c三个变量,其中a已经被初始化了,只想单独初始化b,c,那么:

#variables ...
  ...
  init = tf.variables_initializer([b,c])
  sess.run(init)

此外,如果自行修改了optimizer,如下代码就会报错:

#definition of variables a, b, c ...
  ....
  my_optimizer = tf.train.RMSProp(learning_rate = 0.1).minimize(my_cost)
  init = tf.variables_initializer([b,c])
  sess.run(init)

这是因为自己定义的optimizer会生成新的variables,但是在init里面并没有初始化,所以无法访问,会报错。解决方法如下:

a = tf.Variables(...)      #line N
  temp = set(tf.all_variables()) 
  b = tf.Variables(...)
  c = tf.Variables(...) 
  #definition of my optimizer
  optimizer = tf.train.......
  init = tf.variables_initializer(set(tf.all_varialbles())-temp) # line M
  sess.run(init)

首先,temp = set(tf.all_variables()) 将该行(line N)代码之前的所有变量保存在temp中,接下来定义变量b, c,以及自定义的optimizer,然后 set(tf.all_varialbles()存储了改行(line M)之前的所有变量(包括optimizer生成的变量以及temp中所含的变量),set(tf.all_varialbles())-temp相减得到line N~M这几行定义的变量。

以上这篇Tensorflow 自定义loss的情况下初始化部分变量方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python 中文字符串的处理实现代码
Oct 25 Python
Python FTP操作类代码分享
May 13 Python
Ubuntu下创建虚拟独立的Python环境全过程
Feb 10 Python
Python实现的本地文件搜索功能示例【测试可用】
May 30 Python
python实现自动发送报警监控邮件
Jun 21 Python
python3 对list中每个元素进行处理的方法
Jun 29 Python
Python对CSV、Excel、txt、dat文件的处理
Sep 18 Python
Python图像滤波处理操作示例【基于ImageFilter类】
Jan 03 Python
Python Pillow.Image 图像保存和参数选择方式
Jan 09 Python
Python unittest单元测试openpyxl实现过程解析
May 27 Python
学会迭代器设计模式,帮你大幅提升python性能
Jan 03 Python
Python socket如何解析HTTP请求内容
Feb 12 Python
在flask中使用python-dotenv+flask-cli自定义命令(推荐)
Jan 05 #Python
通过 Python 和 OpenCV 实现目标数量监控
Jan 05 #Python
python中count函数简单用法
Jan 05 #Python
Python猴子补丁知识点总结
Jan 05 #Python
Python调用Windows API函数编写录音机和音乐播放器功能
Jan 05 #Python
django ajax发送post请求的两种方法
Jan 05 #Python
关于tensorflow的几种参数初始化方法小结
Jan 04 #Python
You might like
php mssql 分页SQL语句优化 持续影响
2009/04/26 PHP
set_exception_handler函数在ThinkPHP中的用法
2014/10/31 PHP
PHP生成树的方法
2015/07/28 PHP
在php的yii2框架中整合hbase库的方法
2018/09/20 PHP
JavaScript下申明对象的几种方法小结
2008/10/02 Javascript
JavaScript 在网页上单击鼠标的地方显示层及关闭层
2012/12/30 Javascript
JS中的异常处理方法分享
2013/12/22 Javascript
js完美的div拖拽实例代码
2014/01/22 Javascript
js通过八个点 拖动改变div大小的实现方法
2014/03/05 Javascript
JavaScript编程中容易出BUG的几点小知识
2015/01/31 Javascript
JS实现网页表格自动变大缩小的方法
2015/03/09 Javascript
node.js下LDAP查询实例分享
2015/09/30 Javascript
jQuery实现控制文字内容溢出用省略号(…)表示的方法
2016/02/26 Javascript
jQuery实现的简单悬浮层功能完整实例
2017/01/23 Javascript
input获取焦点时底部菜单被顶上来问题的解决办法
2017/01/24 Javascript
Bootstrap模态框使用详解
2017/02/15 Javascript
JSON 数据格式详解
2017/09/13 Javascript
AngularJS使用ng-repeat遍历二维数组元素的方法详解
2017/11/11 Javascript
关于Mac下安装nodejs、npm和cnpm的教程
2018/04/11 NodeJs
JQuery中queue方法用法示例
2019/01/31 jQuery
[00:32]DOTA2上海特级锦标赛 COL战队宣传片
2016/03/04 DOTA
[53:18]Spirit vs Liquid Supermajor小组赛A组 BO3 第三场 6.2
2018/06/03 DOTA
linux系统使用python监控apache服务器进程脚本分享
2014/01/15 Python
跟老齐学Python之不要红头文件(2)
2014/09/28 Python
python读取word文档的方法
2015/05/09 Python
python协程用法实例分析
2015/06/04 Python
在Django的URLconf中使用多个视图前缀的方法
2015/07/18 Python
django使用admin站点上传图片的实例
2019/07/28 Python
Python如何使用Gitlab API实现批量的合并分支
2019/11/27 Python
Python下利用BeautifulSoup解析HTML的实现
2020/01/17 Python
英国第一独立滑雪板商店:The Snowboard Asylum
2020/01/16 全球购物
C语言面试题
2015/10/30 面试题
自我评价200字分享
2013/12/17 职场文书
2014教师个人自我评价范文
2014/09/13 职场文书
SQL中的三种去重方法小结
2021/11/01 SQL Server
MySQL数据库如何查看表占用空间大小
2022/06/10 MySQL