Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
tensorflow懒惰吗?_Tensorflow - Fatal编程技术网

tensorflow懒惰吗?

tensorflow懒惰吗?,tensorflow,Tensorflow,假设你有这样一段代码 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的所有元素都为true,则不需要 结果就是(或等于)e 问题

假设你有这样一段代码

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的所有元素都为true,则不需要 结果就是(或等于)e


问题是:当会话以result运行,并且e的元素都为true时,是否计算f?

TL;DR:TensorFlow是严格的,因此在执行
tf.select()
节点之前,将对
e
f
进行评估

这引起了一些混乱。TensorFlow首先修剪数据流图,根据该图静态地需要哪些操作来生成获取的值(即
sess.run()
)的参数)。但是,一旦修剪了图形,运行时将使用严格执行,因此必须先计算操作的所有输入(例如
tf.select()
),然后才能执行该操作

在模块中使用函数对条件执行提供了实验支持,但目前对此的文档很少