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 pickle模块用法实例分析
May 27 Python
Python读写Json涉及到中文的处理方法
Sep 12 Python
基于tensorflow加载部分层的方法
Jul 26 Python
Python 中导入csv数据的三种方法
Nov 01 Python
Python获取基金网站网页内容、使用BeautifulSoup库分析html操作示例
Jun 04 Python
Python 日志logging模块用法简单示例
Oct 18 Python
python numpy生成等差数列、等比数列的实例
Feb 25 Python
TensorFlow2.1.0安装过程中setuptools、wrapt等相关错误指南
Apr 08 Python
如何基于线程池提升request模块效率
Apr 18 Python
Python网络爬虫四大选择器用法原理总结
Jun 01 Python
详解Java中一维、二维数组在内存中的结构
Feb 11 Python
python三子棋游戏
May 04 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生成文件
2007/01/15 PHP
PHP 手机归属地查询 api
2010/02/08 PHP
php像数组一样存取和修改字符串字符
2014/03/21 PHP
PHP中ini_set与ini_get用法实例
2014/11/04 PHP
php开发微信支付获取用户地址
2015/10/04 PHP
PHP函数引用返回的实例详解
2016/09/11 PHP
JS 事件绑定函数代码
2010/04/28 Javascript
jQuery 菜单随滚条改为以定位方式(固定要浏览器顶部)
2012/05/24 Javascript
JS控制文本框textarea输入字数限制的方法
2013/06/17 Javascript
js日期相关函数总结分享
2013/10/15 Javascript
深入理解JavaScript系列(34):设计模式之命令模式详解
2015/03/03 Javascript
详细解读AngularJS中的表单验证编程
2015/06/19 Javascript
angularjs利用directive实现移动端自定义软键盘的示例
2017/09/20 Javascript
实现一个完整的Node.js RESTful API的示例
2017/09/29 Javascript
JS开发 富文本编辑器TinyMCE详解
2019/07/19 Javascript
vuex vue简单使用知识点总结
2019/08/29 Javascript
python读取csv文件示例(python操作csv)
2014/03/11 Python
Python基本数据类型详细介绍
2014/03/11 Python
Python类的定义、继承及类对象使用方法简明教程
2015/05/08 Python
python编写Logistic逻辑回归
2020/12/30 Python
Python实现动态添加属性和方法操作示例
2018/07/25 Python
python实现单链表中删除倒数第K个节点的方法
2018/09/28 Python
Pycharm使用之设置代码字体大小和颜色主题的教程
2019/07/12 Python
scrapy-redis分布式爬虫的搭建过程(理论篇)
2020/09/29 Python
西班牙最大的婴儿用品网上商店:Bebitus
2019/05/30 全球购物
类的返射机制中的包及核心类
2016/09/12 面试题
大学生四年生活自我鉴定
2013/11/21 职场文书
会计主管岗位职责
2014/01/03 职场文书
教师党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
2014年银行员工工作总结
2014/11/12 职场文书
2015毕业生实习工作总结
2014/12/12 职场文书
关于清明节的演讲稿2015
2015/03/18 职场文书
班主任经验交流心得体会
2015/11/02 职场文书
一文搞懂如何实现Go 超时控制
2021/03/30 Python
python实现的人脸识别打卡系统
2021/05/08 Python
Python游戏开发实例之graphics实现AI五子棋
2021/11/01 Python