RuntimeError: tf.placeholder() is not compatible with eager execution.和没有placeholder函数解决方法
程序员文章站
2022-06-15 13:49:35
...
在新版本tensorflow (1.15.0,2.0及以上) 中由于没有tf.placeholder占位符,函数调用应为:
a = tf.compat.v1.placeholder(dtype=tf.float32)
但这样placeholder在运行时会被立刻执行发生报错,为了让它只作为一个定义而不被立刻运行,等到session部分再运行,应在前面加上:
tf.compat.v1.disable_eager_execution() # 使placeholder只被定义,防止placeholder立刻被执行
整体程序为(以相加为例):
# 使用占位符构建计算
tf.compat.v1.disable_eager_execution() # 使placeholder只被定义,防止placeholder立刻被执行
a = tf.compat.v1.placeholder(dtype=tf.float32)
b = tf.compat.v1.placeholder(dtype=tf.float32) # 创建两个占位节点
adder = a + b
print(a)
print(b)
print(adder)
tf.compat.v1.disable_eager_execution() # 无法直接调用tf.Session
sess = tf.compat.v1.Session()
print(sess.run(adder, {a: 3, b: 4}))
print(sess.run(adder, {a: [1,3], b: [2,3]}))
运行结果为:
Tensor("Placeholder:0", dtype=float32)
Tensor("Placeholder_1:0", dtype=float32)
Tensor("add:0", dtype=float32)
7.0
[3. 6.]
上一篇: Python爬虫爬取商品失败处理方法
下一篇: Gson转换实体
推荐阅读
-
RuntimeError: tf.placeholder() is not compatible with eager execution.
-
RuntimeError: tf.placeholder() is not compatible with eager execution.和没有placeholder函数解决方法
-
RuntimeError: tf.placeholder() is not compatible with eager execution.解决方法
-
RuntimeError: tf.placeholder() is not compatible with eager execution.(亲测有效)