TensorFlow中遇错合集
- [一、`AttributeError: module 'tensorflow' has no attribute 'placeholder'`](#一、
AttributeError: module 'tensorflow' has no attribute 'placeholder'
) - [二、`RuntimeError: tf.placeholder() is not compatible with eager execution.`](#二、
RuntimeError: tf.placeholder() is not compatible with eager execution.
)
一、AttributeError: module 'tensorflow' has no attribute 'placeholder'
错误原因
- tensorflow版本问题:当前tensorflow版本为2.X,而tensorflow 2.0版本去掉了placeholder。tensorflow 1.*版本才有placeholder。
解决方案
- "向后兼容"。这种做法可以在新版本的TensorFlow中仍然使用旧的API,确保旧代码的兼容性。
具体实现
- 修改
import tensorflow as tf
为import tensorflow._api.v2.compat.v1 as tf
二、RuntimeError: tf.placeholder() is not compatible with eager execution.
错误原因
- tf.placeholder()意味着被提供给会话,该会话在运行时从feed dict接收值并执行所需的操作。(也就是默认为急切运行,我们爆出这个错误说明不需要急切运行)
解决方案
方式一:
- 在
tf.placeholder()
被调用前添加tf.compat.v1.disable_eager_execution()
方式二:
bash
import tensorflow._api.v2.compat.v1 as tf
tf.compat.v1.disable_eager_execution()