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

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐