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框架中的低层次缓存API
Jul 24 Python
python3批量删除豆瓣分组下的好友的实现代码
Jun 07 Python
python实现画一颗树和一片森林
Jun 25 Python
Pycharm设置去除显示的波浪线方法
Oct 28 Python
Python中flatten( )函数及函数用法详解
Nov 02 Python
为什么Python中没有"a++"这种写法
Nov 27 Python
Django为窗体加上防机器人的验证码功能过程解析
Aug 14 Python
python 并发编程 多路复用IO模型详解
Aug 20 Python
Python3+Selenium+Chrome实现自动填写WPS表单
Feb 12 Python
python 发送get请求接口详解
Nov 17 Python
python sleep和wait对比总结
Feb 03 Python
python中对列表的删除和添加方法详解
Feb 24 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开启安全模式后禁用的函数集合
2011/06/26 PHP
PHP中几个常用的魔术常量
2012/02/23 PHP
详解PHP中的序列化、反序列化操作
2017/03/21 PHP
ajax更新数据后,jquery、jq失效问题
2011/03/16 Javascript
JS实现标签页效果(配合css)
2013/04/03 Javascript
JS正则表达式获取分组内容的方法详解
2013/11/15 Javascript
JS获得图片alt信息的方法
2015/04/01 Javascript
jquery+CSS3实现淘宝移动网页菜单效果
2015/08/31 Javascript
基于javascript代码实现通过点击图片显示原图片
2015/11/29 Javascript
JS上传图片预览插件制作(兼容到IE6)
2016/08/07 Javascript
详解前端自动化工具gulp自动添加版本号
2016/12/20 Javascript
jQuery实现可移动选项的左右下拉列表示例
2016/12/26 Javascript
React-router中结合webpack实现按需加载实例
2017/05/25 Javascript
基于JavaScript中标识符的命名规则介绍
2018/01/06 Javascript
使用Vue如何写一个双向数据绑定(面试常见)
2018/04/20 Javascript
Javasript设计模式之链式调用详解
2018/04/26 Javascript
Bootstrap Table实现定时刷新数据的方法
2018/08/13 Javascript
JQuery实现简单的复选框树形结构图示例【附源码下载】
2019/07/16 jQuery
小程序如何在不同设备上自适应生成海报的实现方法
2019/08/20 Javascript
在HTML中使用JavaScript的两种方法
2020/12/24 Javascript
Python利用ElementTree模块处理XML的方法详解
2017/08/31 Python
疯狂上涨的Python 开发者应从2.x还是3.x着手?
2017/11/16 Python
详解Tensorflow数据读取有三种方式(next_batch)
2018/02/01 Python
Django项目开发中cookies和session的常用操作分析
2018/07/03 Python
对pycharm代码整体左移和右移缩进快捷键的介绍
2018/07/16 Python
Python Web编程之WSGI协议简介
2018/07/18 Python
Flask和Django框架中自定义模型类的表名、父类相关问题分析
2018/07/19 Python
Tensorflow 实现修改张量特定元素的值方法
2018/07/30 Python
pyhanlp安装介绍和简单应用
2019/02/22 Python
opencv之颜色过滤只留下图片中的红色区域操作
2020/06/05 Python
如何使用python-opencv批量生成带噪点噪线的数字验证码
2020/12/21 Python
艺术设计专业个人求职信
2014/04/10 职场文书
五好家庭申报材料
2014/12/20 职场文书
商务宴请邀请函范文
2015/02/02 职场文书
客房领班岗位职责
2015/02/11 职场文书
2016元旦主持人开场白
2015/12/03 职场文书