前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Tensorflow入门教程(六)——执行顺序和控制依赖关系

Tensorflow入门教程(六)——执行顺序和控制依赖关系

作者头像
医学处理分析专家
发布2020-06-29 11:30:16
1K0
发布2020-06-29 11:30:16
举报

上一篇我介绍了如何使用Tensorflow的重载操作。这一篇我会说一说Tensorflow中执行顺序和控制依赖关系的理解。

Tensorflow不会立即运行已定义的操作,而是会在图形中创建相应的节点,并使用Session.run()方法对其进行计算。这使的Tensorflow在运行时可以进行优化,确定以最佳的执行顺序并尽可能修剪未使用的节点。如下例子,这里我们创建3个张量,两个常量张量和另一个存储加法结果的张量。在这里我们是不能覆盖张量的值,如果要修改张量值,我们必须创建一个新的张量然后再赋值给它。运行结果是3。

注意:如果图中只有tf.Tensors,我们是不需要担心依赖关系的,但是我们有可能会用到tf.Variables,tf.Variables会让依赖关系变得更加复杂。所以我们尽量使用张量,只有张量不能工作时才让Variables来做。

与张量不同,变量是可更新的。如何我们使用变量来做上面同样的事情。

运行结果也是3。tf.assign返回值是一个表示分配值的张量。

到目前为止,一切看起来都很好,但我们看一个稍微复杂一些的例子。

张量c在这里会出现不确定性值,这个值可能是3或7,取决于相加操作和赋值操作哪个先执行。

在代码中定义的操作顺序与Tensorflow运行是无关的。唯一需要关注的是控制依赖关系。张量的控制依赖性很简单,每次在一个操作中使用张量时,该操作都会定义该张量的隐式依赖关系。当处理变量时,需要使用tf.control_dependencies()按如下方式显式定义依赖关系。

张量c在这里只有一个结果3,上述代码控制依赖关系是赋值操作依赖于加操作的,即先执行加操作再执行赋值操作的。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-05-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 最新医学影像技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档