如何编写一个分段张量流函数,即一个内部有if语句的函数?在
现行代码
import tensorflow as tf
my_fn = lambda x : x ** 2 if x > 0 else x + 5
with tf.Session() as sess:
x = tf.Variable(tf.random_normal([100, 1]))
output = tf.map_fn(my_fn, x)
错误:
TypeError:不允许使用tf.Tensor
作为Python bool
。使用if t is not None:
代替if t:
来测试是否定义了张量,并使用逻辑TensorFlow ops来测试张量的值。在
你应该看看^{} 。在
例如,您可以:
编辑:从
tf.select
移动到tf.where
tf.select
也不再工作,如此线程所示 https://github.com/tensorflow/tensorflow/issues/8647对我有用的东西是
tf.where
这里的问题是,} 。在
my_fn
无法检查条件x>0
,因为x
是一个tf.Tensor
,这意味着只有在启动tensorflow会话并请求运行包含x
的图的一部分时,它才会填充值。要在图中包含if-then逻辑,必须使用tensorflow提供的操作,例如^{相关问题 更多 >
编程相关推荐