Tensor.name在急切执行中毫无意义

时间:2018-09-14 22:54:41

标签: python tensorflow

我在google colab中的tensorflow中进行了一些练习,并尝试了一些渴望执行的事情。当我通过运行以下代码在tf.case上进行练习时:

x = tf.random_normal([])
y = tf.random_normal([])

op = tf.case({tf.less(x,y):tf.add(x,y), tf.greater(x,y):tf.subtract(x,y)}, default = tf.multiply(x,y), exclusive = True)

我仔细地遵循了tf.case中的示例,但是它一直在报告属性错误:

AttributeError: Tensor.name is meaningless when eager execution is enabled.

我是python和TF以及深度学习的新手。任何人都可以尝试运行上面的代码来帮助我找出答案吗?

谢谢

1 个答案:

答案 0 :(得分:0)

我找到了答案。在tf.case中,不要为第一个参数使用字典。而是使用包含一系列元组的列表,如下所示:

#under eager execution

op = tf.case([(tf.less(x,y),tf.add(x,y)),(tf.greater(x,y),tf.subtract(x,y))], default = tf.multiply(x,y), exclusive = True)