tf.placeholder() is not compatible with eager execution 原因分析 解决方案
1. 解决方案一步操作即可。在你的 tf.placeholder() 前面输入以下代码:tf.compat.v1.disable_eager_execution()如下图,搞定!2. 补充知识2.1 关于TensorFlow 1 和 2 的兼容问题之前的代码都是用TensorFlow 1 写的,更新了TensorFlow 2 后,TensorFlow 1 的代码岂不是跑不了了??答案是否定的。只需
·
1 问题描述
使用tf.placeholder() 模块的时候,报错如下:
2. 解决方案
一步操作即可。在你的 tf.placeholder() 前面输入以下代码:
tf.compat.v1.disable_eager_execution()
如下图,
搞定!
3 原因分析
Tensorflow 2.0 会默认使用 Eager Execution这个功能,具体代码为,
tf.compat.v1.enable_eager_execution()
这段代码会直接导致与你的 tf.placeholder() 这段代码冲突。因此,解决方案简单且直接,就是不使用 Eager Execution 这个功能即可。
4. 补充知识
关于TensorFlow 1 和 2 的兼容问题
之前的代码都是用TensorFlow 1 写的,更新了TensorFlow 2 后,TensorFlow 1 的代码岂不是跑不了了??答案是否定的。
只需要在import的时候,加入这么一段代码即可:
import tensorflow.compat.v1 as tf
原因是,TensorFlow 2 中自带的 tensorflow.compat.v1 模块可以兼容原有1.x的代码,其中compat的中文意思就是【兼容】。OK,正文如下。
更多推荐
已为社区贡献3条内容
所有评论(0)