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的参数执行顺序相关推荐

  1. tensorflow中sess.run执行原理及常见问题

    1.执行原理: 首先:对于sess.sun(fetch), 只有fetch里的图元素, 才会被执行, 不在fetch中的图节点是不会执行的: 其次:sess.run()里面的执行顺序是按fetch列表 ...

  2. tensorflow中sess.run()越来越慢的问题解决

    tensorflow中sess.run()越来越慢的问题解决 在我们运行tf.Session.run()的次数越多,会发现程序的输出越来越慢,这是因为直接用run去读取数据是很慢的,所以run越多,就 ...

  3. tensorflow中sess.run第一个参数衣服不能随便穿

    如图所示: 纬度从2维变成3维了 ,导致结果错误连续出现 本质是自己对sess.run第一个参数没有太注意,习惯性的加了个列表的外衣:导致维度增加:

  4. tensorflow学习--sess.run()

    ---恢复内容开始--- 当我们编写tensorflow代码时, 总是定义好整个计算图,然后才调用sess.run()去执行整个定义好的计算图, 那么有两个问题:一是当执行sess.sun()的时候, ...

  5. 坑 之 tensorflow使用sess.run处理图片时越来越慢,占用内存越来越大的问题

    最近在项目中需要使用tensorflow来对图片进行离线预处理,但是使用sess.run时代码越来越慢,最后几分钟才能处理一张图片,这可怎么能行,我的数据集有数万张图片...... 原始代码 def ...

  6. tensorflow中sess.run()

    Session()方法 tensorflow的内核使用更加高效的C++作为后台,以支撑它的密集计算.tensorflow把前台(即python程序)与后台程序之间的连接称为"会话(Sessi ...

  7. sess.run()

    函数:run(fetches,   feed_dict=None,    options=None,    run_metadata=None) 当构建完图后,需要在一个session会话中启动图,第 ...

  8. Tensorflow:sess.run():参数 feed_dict等作用

    feed_dict参数的作用是替换图中的某个tensor的值.例如: a = tf.add(2, 5) b = tf.multiply(a, 3) with tf.Session() as sess: ...

  9. timertask run函数未执行_图执行模式下的 TensorFlow 2

    文 /  李锡涵,Google Developers Expert 本文节选自<简单粗暴 TensorFlow 2.0> 尽管 TensorFlow 2 建议以即时执行模式(Eager E ...

最新文章

  1. 浅谈“闭包”,什么才是“闭包”思想!—— javascript
  2. Docker Compose 1.18.0 之服务编排详解
  3. REST API URI 设计的七准则
  4. 查看oracle自动优化,使用索引查询更快,优化器为何不能自动识别
  5. 前端学习(2968):实现路由跳转的两种方式
  6. Android Demo---如何敲出圆角的Button+圆角头像
  7. PHP 中跳转网页的三种方法
  8. python从语音生成语谱图
  9. 从矩阵与空间操作的关系理解CSS3的transform
  10. Android 打包AAB+PAD(java篇)
  11. php博饼,妙趣横生庆中秋:厦门博饼
  12. 2021Java实现关注公众号登陆网站
  13. 东南电子IPO过会:应收账款8023万 美的与格力未付款
  14. jQuery 已经落幕了~
  15. 三段论_五项基本原则
  16. 开源物业管理系统的对比
  17. 用计算机处理文本教学反思,四年级信息技术下册 使用压缩软件教学反思 冀教版...
  18. google账号已停用,此账号的使用方式似乎违反了Google的政策
  19. Shiro权限管理框架详解
  20. pandas查看数据

热门文章

  1. android显示二维毫秒,Android 悬浮窗显示毫秒级时间
  2. spark为什么速度快?
  3. C# (初入江湖)-猫狗大战(面向对象的三大特征)
  4. 移动端设置滚动条隐藏
  5. 【图层技巧】有一个“图层”,它有一些顽固、我们不能打印
  6. Python处理大数据越来越慢的问题
  7. JedisPool踩坑记录
  8. Oracle登录被拒绝——修改密码
  9. 安卓开发-自定义照相机界面
  10. 计算机毕业设计(73)php小程序毕设作品之美食菜谱小程序系统