tensorflow的sess.run的参数执行顺序
sess.run的多个参数执行
是将整个计算图中所有需要计算的节点,计算完全后一次行输出,
两次print顺序不同,结果不同
import tensorflow as tf# 基础数据
state1 = tf.Variable(0, dtype=tf.int8,name= 'mi')
state = tf.Variable(0, dtype=tf.int8,name= 'MID_VAL')
one = tf.constant(1, dtype=tf.int8,name='ONE')# 对数据处理的节点new_val = tf.add(state, one*2, name='ADD') # state+1→ new_val
update = tf.assign(state, new_val, name='update') # update功能,更新参数init = tf.global_variables_initializer()with tf.Session() as sess:sess.run(init)print(sess.run([new_val,state]))print(sess.run([update,state]))
下图中第一次打印的是没有run赋值节点的内容,因此未执行后边的赋值动作
当将打印的两个命令换顺序后出现,下面的内容,分析不同顺序打印的差别原因是,在第一个命令中执行了赋值动作,后边的state初始值是2,对于没有要求执行的后面节点动作,也不会自动执行(第二个state没有赋值要求,就没有变化)
同一次run是将需要的节点全部计算后输出
将打印的中的参数修改,发现new_val打印的数值仍然是2,和前面一样。表明参数中的update的赋值命令执行后,并没有再次对其前面的步骤进行重复,(因为new_val没有成为4)
对同一个变量进行赋值操作
import tensorflow as tf# 基础数据
state = tf.Variable(0, dtype=tf.int8,name= 'MID_VAL')
one = tf.constant(1, dtype=tf.int8,name='ONE')# 对数据处理的节点new_val = tf.add(state, 2, name='ADD') # state+1→ new_val
update = tf.assign(state, new_val, name='update') # update功能,更新参数
new_val1 = tf.multiply(state, 5, name='mul') # 乘法
update1 = tf.assign(state, new_val1, name='update1')init = tf.global_variables_initializer()with tf.Session() as sess:sess.run(init)print(sess.run([update, update1]))
下面是上述程序执行的节点过程,根据结果是先进行了绿色线的state更新,所以最后才赋值为10,但通过改变update和update1的顺序结果并未改变,但还是中间变换有一些问题
将中间的数据变化也显示
显示结果中的2和12表示进行了加法运算,这是能理解的
with tf.Session() as sess:sess.run(init)for _ in range(2):print(sess.run([update,new_val, update1, new_val1]))
混乱的执行列表
将加法的执行换成下面,只是加了一个one*,但输出结果就不同,而且有时候同样执行同一个程序,会出现两种不同结果,从下面结果中表明进行了加法,但在赋值过程中出现问题,有可能是时间问题
new_val = tf.add(state, one*2, name='ADD')
当只改变new_val1的值的时候
new_val1 = tf.multiply(state, one*5, name='mul') # 乘法
出现的结果被赋值的结果就不是0,可以理解为,先进行了加法结果的赋值,后进行乘法的赋值
tensorflow的sess.run的参数执行顺序相关推荐
- tensorflow中sess.run执行原理及常见问题
1.执行原理: 首先:对于sess.sun(fetch), 只有fetch里的图元素, 才会被执行, 不在fetch中的图节点是不会执行的: 其次:sess.run()里面的执行顺序是按fetch列表 ...
- tensorflow中sess.run()越来越慢的问题解决
tensorflow中sess.run()越来越慢的问题解决 在我们运行tf.Session.run()的次数越多,会发现程序的输出越来越慢,这是因为直接用run去读取数据是很慢的,所以run越多,就 ...
- tensorflow中sess.run第一个参数衣服不能随便穿
如图所示: 纬度从2维变成3维了 ,导致结果错误连续出现 本质是自己对sess.run第一个参数没有太注意,习惯性的加了个列表的外衣:导致维度增加:
- tensorflow学习--sess.run()
---恢复内容开始--- 当我们编写tensorflow代码时, 总是定义好整个计算图,然后才调用sess.run()去执行整个定义好的计算图, 那么有两个问题:一是当执行sess.sun()的时候, ...
- 坑 之 tensorflow使用sess.run处理图片时越来越慢,占用内存越来越大的问题
最近在项目中需要使用tensorflow来对图片进行离线预处理,但是使用sess.run时代码越来越慢,最后几分钟才能处理一张图片,这可怎么能行,我的数据集有数万张图片...... 原始代码 def ...
- tensorflow中sess.run()
Session()方法 tensorflow的内核使用更加高效的C++作为后台,以支撑它的密集计算.tensorflow把前台(即python程序)与后台程序之间的连接称为"会话(Sessi ...
- sess.run()
函数:run(fetches, feed_dict=None, options=None, run_metadata=None) 当构建完图后,需要在一个session会话中启动图,第 ...
- Tensorflow:sess.run():参数 feed_dict等作用
feed_dict参数的作用是替换图中的某个tensor的值.例如: a = tf.add(2, 5) b = tf.multiply(a, 3) with tf.Session() as sess: ...
- timertask run函数未执行_图执行模式下的 TensorFlow 2
文 / 李锡涵,Google Developers Expert 本文节选自<简单粗暴 TensorFlow 2.0> 尽管 TensorFlow 2 建议以即时执行模式(Eager E ...
最新文章
- 浅谈“闭包”,什么才是“闭包”思想!—— javascript
- Docker Compose 1.18.0 之服务编排详解
- REST API URI 设计的七准则
- 查看oracle自动优化,使用索引查询更快,优化器为何不能自动识别
- 前端学习(2968):实现路由跳转的两种方式
- Android Demo---如何敲出圆角的Button+圆角头像
- PHP 中跳转网页的三种方法
- python从语音生成语谱图
- 从矩阵与空间操作的关系理解CSS3的transform
- Android 打包AAB+PAD(java篇)
- php博饼,妙趣横生庆中秋:厦门博饼
- 2021Java实现关注公众号登陆网站
- 东南电子IPO过会:应收账款8023万 美的与格力未付款
- jQuery 已经落幕了~
- 三段论_五项基本原则
- 开源物业管理系统的对比
- 用计算机处理文本教学反思,四年级信息技术下册 使用压缩软件教学反思 冀教版...
- google账号已停用,此账号的使用方式似乎违反了Google的政策
- Shiro权限管理框架详解
- pandas查看数据