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之用Python计算
Sep 12 Python
python编程使用协程并发的优缺点
Sep 20 Python
2019 Python最新面试题及答案16道题
Apr 11 Python
Python实现京东秒杀功能代码
May 16 Python
python多进程读图提取特征存npy
May 21 Python
python爬虫 模拟登录人人网过程解析
Jul 31 Python
详解Python中打乱列表顺序random.shuffle()的使用方法
Nov 11 Python
Django中Aggregation聚合的基本使用方法
Jul 09 Python
Python3以GitHub为例来实现模拟登录和爬取的实例讲解
Jul 30 Python
Python实现像awk一样分割字符串
Sep 15 Python
matplotlib如何设置坐标轴刻度的个数及标签的方法总结
Jun 11 Python
Python虚拟环境virtualenv是如何使用的
Jun 20 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获取从html表单传递数组的方法
2015/03/20 PHP
浅析php如何实现爬取数据原理
2018/09/27 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
2020/02/22 PHP
PHP编程一定要改掉的5个不良习惯
2020/09/18 PHP
测试你的JS的掌握程度的代码
2009/12/09 Javascript
教你如何使用PHP输出中文JSON字符串
2014/05/22 Javascript
angular简介和其特点介绍
2015/01/29 Javascript
js窗口关闭提示信息(兼容IE和firefox)
2015/10/23 Javascript
第一次动手实现bootstrap table分页效果
2016/09/22 Javascript
微信js-sdk预览图片接口及从拍照或手机相册中选图接口用法示例
2016/10/13 Javascript
jQuery实现发送验证码并60秒倒计时功能
2016/11/25 Javascript
两种简单的跨域方法(jsonp、php)
2017/01/02 Javascript
基于JQuery及AJAX实现名人名言随机生成器
2017/02/10 Javascript
通过说明与示例了解js五种设计模式
2019/06/17 Javascript
layui table动态表头 改变表格头部 重新加载表格的方法
2019/09/21 Javascript
js 压缩图片的示例(只缩小体积,不更改图片尺寸)
2020/10/21 Javascript
WebPack工具运行原理及入门教程
2020/12/02 Javascript
[00:27]DOTA2荣耀之路2:Patience from zhou!
2018/05/24 DOTA
python 重命名轴索引的方法
2018/11/10 Python
python使用信号量动态更新配置文件的操作
2020/04/01 Python
基于python实现模拟数据结构模型
2020/06/12 Python
Python字符串函数strip()原理及用法详解
2020/07/23 Python
python装饰器实现对异常代码出现进行自动监控的实现方法
2020/09/15 Python
巴西最好的男鞋:Rafarillo
2018/05/25 全球购物
Sneaker Studio捷克:购买运动鞋
2018/07/08 全球购物
英国第一摩托车和摩托车越野配件商店:GhostBikes
2019/03/10 全球购物
在C中是否有模拟继承等面向对象程序设计特性的好方法
2012/05/22 面试题
Weblogic和WebSphere不同特点
2012/05/09 面试题
电子商务专业自我鉴定
2013/12/18 职场文书
小露珠教学反思
2014/04/30 职场文书
冬季施工防火方案
2014/05/17 职场文书
新婚姻法离婚协议书范文
2014/11/30 职场文书
欢迎词范文
2015/01/27 职场文书
健康教育主题班会
2015/08/14 职场文书
Keras在mnist上的CNN实践,并且自定义loss函数曲线图操作
2021/05/25 Python
详解flex:1什么意思
2022/07/23 HTML / CSS