导航 1 问题描述 2. 解决方案 3 原因分析 4. 补充知识 关于TensorFlow 1 和 2 的兼容问题 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,正文如下。 |
|