原址:https://www.2cto.com/kf/201610/559887.html

session.run()

session.run([fetch1, fetch2])

import tensorflow as tf
state = tf.Variable(0.0,dtype=tf.float32)
one = tf.constant(1.0,dtype=tf.float32)
new_val = tf.add(state, one)
update = tf.assign(state, new_val)
init = tf.initialize_all_variables()
with tf.Session() as sess:sess.run(init)for _ in range(10):u,s = sess.run([update,state])print s

在我的电脑上输出是 0.0, 2.0, 3.0, 4.0, 5.0, 5.0, 6.0, 8.0, 9.0, 10.0
是不是很奇怪为什么输出的不是0.0–9.0, 或1.0–10.0
我的猜测是:底层在fectch这两个值的时候,是并行运算的,第一次:程序先fetch “state”的值,然后fetch “update”(导致了assign op)。 第二次,程序先fetch “update”(导致了 assign op),然后fetch “state” . 所以导致了第一次输出是0.0, 第二次输出是2.0.
注:(update op 更新state的值, 而我在fetch update 的同时也fetch 了state, 只有在这种情况下才会出现上述的问题。 如果我不fetch state ,而去fetch add1的话, 就不会出现上述问题,可见底层是先更新了state的值,才去计算add1。这样的话我们经常使用的代码sess.run([train_op, loss]),获取的loss就是train_op执行完之后的loss了)

执行sess.run()时,tensorflow是否计算了整个图

我们在编写代码的时候,总是要先定义好整个图,然后才调用sess.run()。那么调用sess.run()的时候,程序是否执行了整个图

import tensorflow as tf
state = tf.Variable(0.0,dtype=tf.float32)
one = tf.constant(1.0,dtype=tf.float32)
new_val = tf.add(state, one)
update = tf.assign(state, new_val) #返回tensor, 值为new_val
update2 = tf.assign(state, 10000)  #没有fetch,便没有执行
init = tf.initialize_all_variables()
with tf.Session() as sess:sess.run(init)for _ in range(3):print sess.run(update)

和上个程序差不多,但我们这次仅仅是fetch “update”,输出是1.0 , 2.0, 3.0,可以看出,tensorflow并没有计算整个图,只是计算了与想要fetch 的值相关的部分

sess.run() 中的feed_dict

我们都知道feed_dict的作用是给使用placeholder创建出来的tensor赋值。其实,他的作用更加广泛:feed 使用一个 值(不能是tensor,可以是tensor.eval())临时替换一个 op 的输出结果. 你可以提供 feed 数据作为 run() 调用的参数. feed 只在调用它的方法内有效, 方法结束, feed 就会消失.

y = tf.Variable(1)
with tf.Session() as sess:tf.initialize_all_variables().run()print sess.run(y,feed_dict={y:3}) #使用3 替换掉tf.Variable(1)的输出结果,所以打印出来3print sess.run(y)  #由于feed只在调用他的方法范围内有效,所以这个打印的结果是 1

tensorflow学习笔记(1):sess.run()相关推荐

  1. tensorflow学习笔记(三十二):conv2d_transpose (解卷积)

    tensorflow学习笔记(三十二):conv2d_transpose ("解卷积") deconv解卷积,实际是叫做conv_transpose, conv_transpose ...

  2. tensorflow学习笔记二——建立一个简单的神经网络拟合二次函数

    tensorflow学习笔记二--建立一个简单的神经网络 2016-09-23 16:04 2973人阅读 评论(2) 收藏 举报  分类: tensorflow(4)  目录(?)[+] 本笔记目的 ...

  3. tensorflow学习笔记——使用TensorFlow操作MNIST数据(1)

    续集请点击我:tensorflow学习笔记--使用TensorFlow操作MNIST数据(2) 本节开始学习使用tensorflow教程,当然从最简单的MNIST开始.这怎么说呢,就好比编程入门有He ...

  4. TensorFlow学习笔记(二):快速理解Tutorial第一个例子-MNIST机器学习入门 标签: 机器学习SoftmaxTensorFlow教程 2016-08-02 22:12 3729人阅

    TensorFlow学习笔记(二):快速理解Tutorial第一个例子-MNIST机器学习入门 标签: 机器学习SoftmaxTensorFlow教程 2016-08-02 22:12 3729人阅读 ...

  5. Tensorflow学习笔记2:About Session, Graph, Operation and Tensor

    简介 上一篇笔记:Tensorflow学习笔记1:Get Started 我们谈到Tensorflow是基于图(Graph)的计算系统.而图的节点则是由操作(Operation)来构成的,而图的各个节 ...

  6. Win10:tensorflow学习笔记(4)

    前言 学以致用,以学促用.输出检验,完整闭环. 经过前段时间的努力,已经在电脑上搭好了深度学习系统,接下来就要开始跑程序了,将AI落地了. 安装win10下tensforlow 可以参照之前的例子:w ...

  7. Win10: tensorflow 学习笔记(3)

    前言 学以致用,以学促用.输出检验,完整闭环. 怕什么真理无穷,进一寸有一寸的欢喜--胡适 经过前段时间的努力,已经在电脑上搭好了深度学习系统,接下来就要开始跑程序了,将AI落地了. 安装win10下 ...

  8. TensorFlow学习笔记--第三节张量(tensor)及其定义方法

    目录 在TensorFlow中,所有的数据通过张量的形式来表示 1张量及属性: 1.1维数(阶) 1.2 形状 1.3数据类型 TensorFlow 支持以下三种类型的张量: **1.常量** **2 ...

  9. tensorflow学习笔记(八):LSTM手写体(MNIST)识别

    文章目录 一.LSTM简介 二.主要函数 三.LSTM手写体(MNIST)识别 1.MNIST数据集简介 2.网络描述 3.项目实战 一.LSTM简介 LSTM是一种特殊的RNN,很好的解决了RNN中 ...

  10. 炼数成金Tensorflow学习笔记之2.2_变量

    炼数成金Tensorflow学习笔记之2.2_变量 代码及分析 代码及分析 import tensorflow as tfx = tf.Variable([1, 2]) a = tf.constant ...

最新文章

  1. 一些零碎知识(域名、DNS、浏览器、动态静态页面、web应用系统工作原理)
  2. linux假延迟脚本,linux – 期望脚本期望错过发送字符串延迟问题
  3. bat入门-----依据ping状态判断ip【第一天】
  4. Tensorflow(0)--Tensorboard
  5. IDC敲黑板啦:未来企业IT以混合云为主
  6. 医学科研中的作用_医学方复旦附属中山医院科研技能训练营开课啦!一起来感受数据挖掘的魅力!...
  7. vue2.0中ckeckbox(复选框)的使用心得,及对click事件和change的理解
  8. mysql amoeba 事务_MySQL基于Amoeba实现读写分离
  9. ZOJ 1904 海狸咬木
  10. App Icon 和 LaunchImage 尺寸
  11. matlab灰度直方图均衡化_图像的灰度直方图、直方图均衡化、直方图规定化(匹配)
  12. 百度之星1004度度熊的午饭时光
  13. vue3.0引入element插件报错解决
  14. 36. 有效的数独(技巧)
  15. 前端工程化:express服务端开发
  16. 重拾Java基础知识:枚举
  17. 解决“windows已经阻止此软件因为无法验证发行者”方法
  18. 灰色预测模型_python
  19. 皮卡丘的python程序_皮卡丘第一种
  20. PoE交换机供电距离只能跑100米,就不能再远一点吗?

热门文章

  1. tomcat开发远程调试端口以及利用eclipse进行远程调试
  2. html5中的行高元素,详解HTML元素的height、offsetHeight、clientHeight、scrollTop等梳理
  3. 向上传文件服务器,向服务器上传文件
  4. phpexcel 获取工作簿名称_工作分享 | Excel快速汇总考勤
  5. php 修改文件访问时间,PHP中获取文件创建日期、修改日期、访问时间的方法
  6. 教你如何把自己从好友的QQ中删除
  7. 好用的下拉第三方——nicespinner
  8. 实验 5 编写、调试具有多个段的
  9. 重新捡起flask(三)
  10. .NET深入学习笔记(4):深拷贝与浅拷贝(Deep Copy and Shallow Copy)