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 字符串split的用法分享
Mar 23 Python
Python中的字符串类型基本知识学习教程
Feb 04 Python
Python 专题三 字符串的基础知识
Mar 19 Python
Python制作Windows系统服务
Mar 25 Python
Python二叉树的定义及常用遍历算法分析
Nov 24 Python
numpy中索引和切片详解
Dec 15 Python
详解Python中的正则表达式
Jul 08 Python
python对日志进行处理的实例代码
Oct 06 Python
对python中Json与object转化的方法详解
Dec 31 Python
python查找重复图片并删除(图片去重)
Jul 16 Python
详解python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'如何解决
Aug 27 Python
Python tkinter之Bind(绑定事件)的使用示例
Feb 05 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
农民C键的运用技巧
2020/03/04 星际争霸
c#中的实现php中的preg_replace
2009/12/21 PHP
php生成excel文件的简单方法
2014/02/08 PHP
PHP使用PDO操作sqlite数据库应用案例
2019/03/07 PHP
JQuery 获得绝对,相对位置的坐标方法
2010/02/09 Javascript
js获取系统的根路径实现介绍
2013/09/08 Javascript
JQuery触发事件例如click
2013/09/11 Javascript
判定是否原生方法的JS代码
2013/11/12 Javascript
js使用正则实现ReplaceAll全部替换的方法
2014/07/18 Javascript
jquery实现超简洁的TAB选项卡效果代码
2015/08/28 Javascript
javascript RegExp 使用说明
2016/05/21 Javascript
JS 实现 ajax 异步浏览器兼容问题
2017/01/21 Javascript
Bootstrap响应式导航由768px变成992px的实现代码
2017/06/15 Javascript
详解windows下vue-cli及webpack 构建网站(二)导入bootstrap样式
2017/06/17 Javascript
Vue+jquery实现表格指定列的文字收缩的示例代码
2018/01/09 jQuery
浅谈Vue组件及组件的注册方法
2018/08/24 Javascript
Angular7.2.7路由使用初体验
2019/03/01 Javascript
小程序异步问题之多个网络请求依次执行并依次收集请求结果
2019/05/05 Javascript
JavaScript面向对象中接口实现方法详解
2019/07/24 Javascript
Vue实现点击箭头上下移动效果
2020/06/11 Javascript
python ip正则式
2009/05/07 Python
python通过正则查找微博@(at)用户的方法
2015/03/13 Python
使用apidoc管理RESTful风格Flask项目接口文档方法
2018/02/07 Python
Win8下python3.5.1安装教程
2020/07/29 Python
使用GitHub和Python实现持续部署的方法
2019/05/09 Python
Python 装饰器原理、定义与用法详解
2019/12/07 Python
numba提升python运行速度的实例方法
2021/01/25 Python
CSS3 新增选择器的实例
2019/11/13 HTML / CSS
澳大利亚设计的婴儿和女孩的衣服:Oobi
2018/12/16 全球购物
Java多态性的定义以及类型
2014/09/16 面试题
班级入场式解说词
2014/02/01 职场文书
全国道德模范事迹
2014/02/01 职场文书
效能监察建议书
2014/05/19 职场文书
授权委托书(公民个人适用)
2014/09/19 职场文书
2014年办公室工作总结范文
2014/11/12 职场文书
Spring JPA 增加字段执行异常问题及解决
2022/06/10 Java/Android