今天运行Tensorflow时,出现以下错误:
RuntimeError: tf.placeholder() is not compatible with eager execution.
原因是下面这个语句:
x = tf.compat.v1.placeholder(tf.float32, [None, 784])
这个语句需要在session前定义,在session中执行,但在使用T的ensorFlow 2.0及以上版本中,默认情况下开启了紧急执行模式,即定义即执行。
所以,我们需要在上面的语句前定义一下它不着急执行,有两种解决方案:
方案一:
添加 tf.compat.v1.disable_eager_execution(),即:
tf.compat.v1.disable_eager_execution()
x = tf.compat.v1.placeholder(tf.float32, [None, 784])
方案一参考处
方案二:
添加tf.compat.v1.disable_v2_behavior(),即:
tf.compat.v1.disable_v2_behavior()
x = tf.compat.v1.placeholder(tf.float32, [None, 784])
方案二参考处