tf.placeholder() is not compatible with eager execution的解决方法「建议收藏」

tf.placeholder() is not compatible with eager execution的解决方法「建议收藏」最近安装了TensoFlow2.0及以上的版本都发现啊出现这个问题:RuntimeError:tf.placeholder()isnotcompatiblewitheagerexecution.这是因为在运行**tf.compat.v1.placeholder(dtype,shape=None,name=None)**的时候急切执行了这条语句,但是我们一般都是在一…

大家好,又见面了,我是你们的朋友全栈君。

最近安装了TensoFlow2.0及以上的版本都发现啊出现这个问题:

RuntimeError: tf.placeholder() is not compatible with eager execution.

这是因为在运行**tf.compat.v1.placeholder(dtype, shape = None, name = None)**的时候急切执行了这条语句,但是我们一般都是在一个Session前先去定义placeholder,但是不会去执行,然后再在Sesion上下文管理器中去传入我们的数据,然后执行。
这里给出一个方法(对我有效)

在代码中添加这样一句:

tf.compat.v1.disable_eager_execution()

例子

Error

import tensorflow as tf
import numpy as np
# tf.compat.v1.disable_eager_execution()
x = tf.compat.v1.placeholder(tf.float32, shape=(1024, 1024))
y = tf.matmul(x, x)

with tf.compat.v1.Session() as sess:
    print(sess.run(y))

    # rand_array = np.random.rand(1024, 1024)
    # print(sess.run(y, feed_dict={x: rand_array}))

RuntimeError: tf.placeholder() is not compatible with eager execution.

Correct

import tensorflow as tf
import numpy as np
tf.compat.v1.disable_eager_execution()
x = tf.compat.v1.placeholder(tf.float32, shape=(1024, 1024))
y = tf.matmul(x, x)

with tf.compat.v1.Session() as sess:
    # print(sess.run(y))

    rand_array = np.random.rand(1024, 1024)
    print(sess.run(y, feed_dict={ 
   x: rand_array}))

[[252.48357 255.5346 248.42102 … 260.47867 257.15802 254.84673]
[247.44424 248.02411 250.1583 … 253.2936 251.4498 242.8446 ]
[259.25705 259.74298 259.33575 … 261.40015 257.27484 261.23822]

[245.12628 258.36353 246.82956 … 247.89975 253.03627 252.05295]
[247.1987 261.00418 254.8853 … 260.04547 260.02435 250.82901]
[256.0824 256.6464 255.48541 … 263.32083 259.73798 255.77368]]

参考资料:
1、eager execution not working with placeholders #18165

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/158379.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 两位数乘法速算(无意中发现)

    两位数乘法速算(无意中发现)比如目前计算12*34=?现在拿ab*cd=?举例子步骤:就是b*d的个位数放在?的个位上。。。。。。。。。。。。。。。。。①然后如果bd有十位那么先记下来(心里默记)。。。。。。。。。。。②然后计算bc+a*d+②结果得到的个位数写在①前面。。。。。。。。③然后把上一步剩下的结果除了个位数以后的保留下来。。。。。。。。。④然后…

    2022年6月7日
    33
  • 孙鑫老师 java从入门到精通 视频教程 批量下载

    孙鑫老师 java从入门到精通 视频教程 批量下载本视频教程是孙鑫老师亲自开发录制的,内容涵盖了java技术从入门到精通整个过程。对于java爱好者是一套不可多得的教材!相信下载此教程的同志都是未来的电脑高手,对于批量下载的方法我在这时就不一一说了,相信兄弟们都能找到这种简单规律。这里以第三课批量下载为例简单说一下:(记得将通配符长度设为1哦)第一课Java的一些基本概念http://www.ibook8.com/te

    2022年5月17日
    39
  • 简易SDRAM控制器的verilog代码实现

    简易SDRAM控制器的verilog代码实现SDRAM是每隔15us进行刷新一次,但是如果当SDRAM需要进行刷新时,而SDRAM正在写数据,这两个操作之间怎么进行协调呢?需要保证写的数据不能丢失,所以,如果刷新的时间到了,先让写操作把正在写的4个数据(突发长度为4)写完,然后再去进行刷新操作;而如果在执行读操作也遇到需要刷新的情况,也可以先让数据读完,再去执行刷新操作。思路:SDRAM控制器包括初始化、读操作、写操作…

    2022年7月25日
    9
  • MySQLdump的参数详解大全

    MySQLdump的参数详解大全

    2021年6月2日
    172
  • 大数据实时项目(采集部分)[通俗易懂]

    大数据实时项目(采集部分)[通俗易懂]第一章 实时需求概览1实时需求与离线需求的比较离线需求,一般是根据前一日的数据生成报表,虽然统计指标、报表繁多,但是对时效性不敏感。实时需求,主要侧重于对当日数据的实时监控,通常业务

    2022年8月2日
    9
  • 【算法千题案例】每日LeetCode打卡——93.宝石与石头[通俗易懂]

    【算法千题案例】每日LeetCode打卡——93.宝石与石头[通俗易懂]算法题打卡:宝石与石头。没有特别幸运,那么请先特别努力,别因为懒惰而失败,还矫情地将原因归于自己倒霉。所以说,树倒了,没有一片雪花是无辜的

    2022年7月24日
    11

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号