分享

tf.placeholder() is not compatible with eager execution 原因分析 解决方案

 行走在理想边缘 2022-06-24 发布于四川

导航

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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多