Tensorflow cond-ValueError:操作'case_3 / cond / Merge'已被标记为不可获取

时间:2018-10-21 09:20:27

标签: python tensorflow

我正在尝试运行简单的代码:

Date        Team    Score Category
1/1/2018    A       100
1/1/2018    A       150
1/1/2018    A       200
1/1/2018    A       250
1/1/2018    A       300
1/1/2018    B       300
1/1/2018    B       400
1/1/2018    B       500
2/1/2018    A       150
2/1/2018    A       200
2/1/2018    A       225
2/1/2018    A       300
2/1/2018    A       350
2/1/2018    B       350
2/1/2018    B       450
2/1/2018    B       550

Date:                       1/1/2018
Team:                       A
Actual Score:               225
Category Score (Output):    200


Date:                       2/1/2018
Team:                       A
Actual Score:               225
Category Score (Output):    225

我收到错误消息:

import tensorflow as tf

x = tf.random_uniform([], minval=-1, maxval=1, dtype=tf.float32)
y = tf.random_uniform([], minval=-1, maxval=1, dtype=tf.float32)
z = tf.Variable(1.0)
def f1(): 
    return x + y + z
def f2(): return x - y
def f3(): return tf.constant(0, dtype=tf.float32)
out = tf.case({tf.less(x, y): f1, tf.greater(x, y): f2}, default=f3, exclusive=True)

with tf.Session() as sess:
    sess.run(tf.global_variables_initializer()) #Edited
    print(sess.run(out)) 

我已经阅读了以下问题:Tensorflow: tf.case giving errors,这很相似,但是他们没有 ValueError: Operation 'case_3/cond/Merge' has been marked as not fetchable. ,似乎可以解决错误

我已经研究了这个问题:https://github.com/tensorflow/tensorflow/issues/4094#issue-173787623 并隐约地理解了该错误是如何发生的。

我实际上想了解的是Tensorflow将如何(以及是否)通过if语句计算梯度。

0 个答案:

没有答案