如何禁用TensorFlow的热切执行?
tensorflow
12
0

我正在尝试学习TensorFlow。目前,我正在与占位符一起工作。当我尝试创建占位符时,出现错误: RuntimeError: tf.placeholder() is not compatible with eager execution ,这是有道理的,因为占位符不能立即执行。

那么,如何关闭渴望执行的程序?

首先,我从未渴望执行过,所以我不确定它是如何发生的。与tf.disable_eager_execution()是否相反?

参考资料:
Stack Overflow
收藏
评论
共 2 个回答
高赞 时间 活跃

我假设您正在使用TensorFlow 2.0。在TF2中,默认情况下开启了紧急模式。但是,在TensorFlow 2.0.0-alpha0中有一个disable_eager_execution() ,但它隐藏得很深,无法从顶层模块名称空间(即tf名称空间)直接访问。

您可以像这样调用该函数:

import tensorflow as tf
from tensorflow.python.framework.ops import disable_eager_execution

disable_eager_execution()

a = tf.constant(1)
b = tf.constant(2)
c = a + b
print(c)

>>>Tensor("add:0", shape=(), dtype=int32)

print(disable_eager_execution.__doc__) 

>>>Disables eager execution. This function can only be called before any Graphs, Ops, or Tensors have been created. It can be used at the beginning of the program for complex migration projects from TensorFlow 1.x to 2.x.

收藏
评论

假设您正在使用Tensorflow 2.0预览版本,该版本默认情况下已启用急切执行。 v1 API中有一个disable_eager_execution() ,您可以将其放在代码的前面,例如:

import tensorflow as tf

tf.compat.v1.disable_eager_execution()

另一方面,如果您未使用2.0 Preview ,请检查是否在某处意外启用了急切执行。

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题