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 相关文章推荐
Django URL传递参数的方法总结
Aug 28 Python
Python基于list的append和pop方法实现堆栈与队列功能示例
Jul 24 Python
Django中的Signal代码详解
Feb 05 Python
基于Python socket的端口扫描程序实例代码
Feb 09 Python
Python中.join()和os.path.join()两个函数的用法详解
Jun 11 Python
Python 判断图像是否读取成功的方法
Jan 26 Python
Python实现链表反转的方法分析【迭代法与递归法】
Feb 22 Python
解决Python中报错TypeError: must be str, not bytes问题
Apr 07 Python
Python-for循环的内部机制
Jun 12 Python
Python学习之time模块的基本使用
Jan 17 Python
教你怎么用Python实现GIF动图的提取及合成
Jun 15 Python
用Python爬取英雄联盟的皮肤详细示例
Dec 06 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
全国FM电台频率大全 - 15 山东省
2020/03/11 无线电
为查询结果建立向后/向前按钮
2006/10/09 PHP
从C/C++迁移到PHP——判断字符类型的函数
2006/10/09 PHP
转PHP手册及PHP编程标准
2006/12/17 PHP
php 解压rar文件及zip文件的方法
2014/05/05 PHP
WIN8.1下搭建PHP5.6环境
2015/04/29 PHP
PHP扩展迁移为PHP7扩展兼容性问题记录
2016/02/15 PHP
总结PHP代码规范、流程规范、git规范
2018/06/18 PHP
PHP 图片处理
2020/09/16 PHP
jQuery 版本的文本输入框检查器Input Check
2009/07/09 Javascript
JS常见问题整理(持续更新)
2013/08/06 Javascript
jQuery实现div随意拖动的实例代码(通用代码)
2016/01/28 Javascript
总结jQuery插件开发中的一些要点
2016/05/16 Javascript
教你JS中的运算符乘方、开方及变量格式转换
2016/08/09 Javascript
jQuery使用getJSON方法获取json数据完整示例
2016/09/13 Javascript
Vue通过input筛选数据
2020/10/26 Javascript
VuePress 中如何增加用户登录功能
2019/11/29 Javascript
python实现进程间通信简单实例
2014/07/23 Python
Python中关键字is与==的区别简述
2014/07/31 Python
Python进行数据科学工作的简单入门教程
2015/04/01 Python
python 递归遍历文件夹,并打印满足条件的文件路径实例
2017/08/30 Python
Python和Java进行DES加密和解密的实例
2018/01/09 Python
详解python中sort排序使用
2019/03/23 Python
浅谈python 中类属性共享的问题
2019/07/02 Python
pytorch中tensor张量数据类型的转化方式
2019/12/31 Python
python实现坦克大战
2020/04/24 Python
Python unittest单元测试框架实现参数化
2020/04/29 Python
PyTorch实现重写/改写Dataset并载入Dataloader
2020/07/14 Python
python实现数学模型(插值、拟合和微分方程)
2020/11/13 Python
Ellesse英国官网:意大利高级运动品牌
2019/07/23 全球购物
幼儿园亲子活动方案
2014/01/29 职场文书
酒店经理职责
2014/01/30 职场文书
鼓励运动员的广播稿
2014/02/08 职场文书
班组长安全工作职责
2014/07/15 职场文书
酒店厨房管理制度
2015/08/06 职场文书
基于Golang 高并发问题的解决方案
2021/05/08 Golang