将布尔值提供给bool类型的占位符

时间:2018-04-05 10:05:14

标签: python tensorflow

我试图根据执行情况将training中的tf.layers.dropout参数设置为true / false。下面是相同的鳕鱼

Train=tf.placeholder(tf.bool,shape=())

sess.run(accuracy,feed_dict={X:X_inp,Y:Y_inp,Train: False })

但是当我运行代码时会出现以下错误。

InvalidArgumentError (see above for traceback): You must feed a value for placeholder tensor 'Placeholder' with dtype bool
         [[Node: Placeholder = Placeholder[dtype=DT_BOOL, shape=[], _device="/job:localhost/replica:0/task:0/gpu:0"]()]]

试图谷歌问题,但无法得到任何帮助。

1 个答案:

答案 0 :(得分:1)

我在Tensorflow中已知有一段时间的已知错误,请参阅this issue。我怀疑你正在运行一个过时的版本。尝试更新。

或者,您可以尝试在此版本中修复它。问题是布尔张量未正确初始化。因此,在运行常规初始化程序时,需要使用值初始化它。在您的代码中的某处,我想运行tf.global_variables_initializer()。一般来说,它是以这样的方式完成的:

init = tf.global_variables_initializer()
sess.run( init )

在该行中,插入像{ Train : True }这样的sess.run(init, { Train: True } )来强制初始化布尔张量,它也应该修复它。 (引用该问题的想法,尚未对其进行测试。)

这应该只在图表设置之后但在开始运行训练或推理之前完成一次。