当前位置:  开发笔记 > 人工智能 > 正文

张量流是懒惰的吗?

如何解决《张量流是懒惰的吗?》经验,为你挑选了1个好方法。

假设你有一些像这样的代码

import tensorflow as tf
...
f = h*y + z*t  #Just some expression involving other tensors.
e = ... # some expression that does not involve f. 
result = tf.select(b, e, f)

sess.run(result)

b是与e和f相同形状的布尔张量.如果b的所有元素都评估为真,那么我们不需要f,结果将只是(或等于)e.

问题:当会话以结果运行,并且e的元素都是真的时,是否会被评估?



1> mrry..:

TL; DR: TensorFlow是严格,所以两者ef所述之前将被评估tf.select()的节点执行.

这引起了一些混乱.TensorFlow首先根据静态需要哪些操作来修剪数据流图,以生成所获取的值(即参数sess.run()).但是,一旦修剪了图形,运行时就会使用严格执行,从而tf.select()必须在该操作执行之前计算所有操作的输入(例如).

tf.control_flow_ops使用该tf.control_flow_ops.cond()函数在模块中有条件执行的实验支持,但目前这种情况很少.

推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有