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,正文如下。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐