(已解决)报错 ValueError: Tensor conversion requested dtype float32 for Tensor with dtype resource

2023-05-16

记录一个花了一整天才解决的问题:
(Tensorflow 1.14, python 3.6)

自己写的深度学习网络,在build graph阶段报错:ValueError: Tensor conversion requested dtype float32 for Tensor with dtype resource

查看 tf.variable 的 dtype 发现全都是“float32", 而正常情况下(对应我的tf版本)应该是"float32_ref”。不清楚二者有何不同,但float32这个类型导致我生成的graph里按变量名读不到指定的 tensor 内容。
例如:
直接读网络里的某个tf变量v,输出为: <tf.Variable ‘conv/kernel:0’ shape=(64, 64) dtype=float32>
而使用get_tensor_by_name()从生成的graph里读同一个tf变量,输出为: Tensor(“conv/kernel:0”, shape=(), dtype=resource)
dtype莫名其妙变成了resource,shape信息也读不到。

原因:

tensorflow.python.keras.layers 与 tf.layers 里的 Layer 不同.
我的网络里用到了keras的层,比如 Dense, Embedding,导致数据类型变成了 float32 而不是 float32_ref。
(检查发现把 tensorflow.python.keras.layers.Dense 替换成 tensorflow.layers.Dense, 就可以使相关的变量类型变成 float32_ref,也可以从graph里正常读到其shape和dtype了)

解决方法:

有些层只有keras里有,tf里没有,例如 Embedding. 为了使用这些层,且使数据类型为“float32_ref",可以自己写一个wrapper,同时以 keras layer 和 tensorflow base layer 为父类:

from tensorflow.python.layers import base

class MyEmbedding(tensorflow.python.keras.layers.Embedding, base.Layer):
    def __init__(self, input_dim, output_dim):
        super(MyEmbedding, self).__init__(input_dim=input_dim, output_dim=output_dim)

一个忠告:说多了都是泪,能用torch坚决别碰tf…

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

(已解决)报错 ValueError: Tensor conversion requested dtype float32 for Tensor with dtype resource 的相关文章

  • 搭建靶场

    在终端输入 xff1a ifconfig查看ip地址 xff0c 接着输入netdiscover r xxx xxx xxx 1 24 可能出现在vmware上的kali搜索不到virbox上的靶机 xff0c 这是因为二者不在同一网段 x
  • 矩阵链乘法(最优解)————算法导论(C语言实现)

    这两天算法课刚学了这个 xff0c 于是就想着用C语言自己撸出来 首先是寻找最优解的过程 xff0c 对于下标从i到j的矩阵链 xff0c 我们将其分成两部分i到k和k 43 1到j xff0c 遍历i到j之间的每一个k xff0c 找到最
  • Win10小喇叭显示红叉,显示未找到输出设备的解决方式

    最近遇到一个问题 xff0c 重装win10系统之后 xff0c 新系统右下角的小喇叭一直显示红叉 xff0c 右击显示 扬声器安装程序unknown xff0c 查了网上很多的教程 xff0c 不是通过驱动精灵 鲁大师重新安装声卡驱动 x
  • Vscode——调整左侧菜单字体大小

    不知道键盘按啥了 xff0c vscode开发工具上左侧目录字体特别小 xff0c 看着真的太难受了 调整左侧菜单字体大小 1 按ctrl 43 shift 43 p 2 点击打开设置 3 在settings json文件中加入 windo
  • 关于web安全问题解决方案

    启用了不安全的HTTP方法 xff08 禁用put delete调用方式 xff0c 尽量只使用post方式 内网可以用get xff09 危害 xff1a 这些方法表示可能在服务器上使用了 WebDAV 由于dav方法允许客户端操纵服务器
  • ubuntu换源

    以阿里的源为例 首先去这个网页 xff0c 找到你对应版本的源https developer aliyun com mirror ubuntu spm 61 a2c6h 13651102 0 0 3e221b118WiEjq ustc xf
  • 升级powershell7

    升级powershell7 搜索软件包 winget search powershell 升级 winget span class token function install span Microsoft PowerShell 应该在路径
  • 最全的百度网盘搜索引擎

    1 易查搜索 xff08 https so acurd com xff09 推荐指数 43 资源聚合做的比较好的一个网站 xff0c 也是最常用的一个网站 xff0c 据up主说有脚本会定时检测每个搜索引擎 xff0c 不通的或者服务器挂的
  • 使用ffmpeg对视频指定时间点加入指定音频和gif动图 实现水印旋转

    为了丰富文章 xff0c 本文也会演示一些动画效果 xff0c 如跑马灯效果 xff0c 淡入淡出等效果 在上一篇文章中 xff0c 我们使用了把gif图片转化为mov透明底的视频 xff0c 使用ffmpeg画中画的滤镜效果 xff0c
  • 解决在本地不能访问es服务器的问题

    背景 我们有一台服务器 xff0c 40 163服务器 xff0c 大家的代码都是在这一台机器上面执行 xff0c 使用idea自带的ftp功能 xff0c 在163服务器 xff0c 我们可以访问mysql redis es等服务 xff
  • mac安装graphviz的一些曲折经历(同样使用其他情况)

    我之前是Ubuntu用户 xff0c 后来用了macOS xff0c 但是发现macOS的包管理工具不好用 xff0c 偶尔会有些软件安装不上 xff0c 网上查呢也不一定查到结果前台我调试golang的代码 xff0c 想要下载graph
  • 秒杀要不要用锁?五种方案的代码实践和超卖演示

    https www jianshu com p a2bd89e0d24b 工欲善其事必先利其器 xff0c 我们先来装一下相关工具 jmeter 我是在mac演示的 xff0c 所以我先安装一下brew ruby e span class
  • golang入门微服务

    什么是微服务 微服务 xff0c 又称微服务架构 xff0c 是一种架构风格 xff0c 它将应用程序构建为以业务领域为模型的小型自治服务集合 就像我们要写一本书 xff0c 一共有三个章节 xff0c 为了敏捷开发 xff0c 我们让三个
  • 什么是内存?什么是内存逃逸?怎么做内存逃逸分析

    内存 平时我们在电脑上听歌 xff0c 聊天 xff0c 或者启动某个程序 xff0c 那么这个启动过程 xff0c 其实就是把程序从硬盘读入到内存中去 就像安卓手机 xff0c 内存不够了很卡 xff0c 杀掉几个软件 xff0c 内存就
  • go继承nacos配置中心并读取配置信息

    配置中心 为什么需要配置中心 平时我们写一个demo的时候 xff0c 或者说一个单体的应用 xff0c 都会有一个配置文件 xff0c 不管是 json文件或者yaml文件 xff0c 里面包含了redis mysql es等信息 xff
  • 这些神仙问题,整垮了chatGpt

    垮掉 xff0c 全部垮掉 今天刚上了一个chat聊天功能 xff0c 网友们就不甘落后 xff0c 纷纷展示了自己的技能 分分钟给我整垮了 神仙问题 玉皇大帝住在平流层还是对流层 xff1f 空腹的时候可以吃饭吗 xff1f 自来水不能直
  • Qt主窗口:(QMenuBar)创建菜单,状态栏(QStatusBar)使用

    mainWindow h ifndef MAINWINDOW H define MAINWINDOW H include lt QMainWindow gt include lt qmenu h gt include lt qaction
  • 【shell实战之编写备份脚本-12】

    文章目录 第一种方式 xff1a 使用Mysqldump逻辑备份1 备份多个数据库 分库备份 取出要备份的多个数据库赋值给一个变量 xff0c 然后利用循环的方式进行多库备份2 备份某个数据库的多表 xff1a 3 分库分表备份 xff1a
  • mysql 分组之后 取分组之后最新的数据

    一 数据表设计 二 查询场景 统计每门课的考试次数 最新一次考试的时间 最新一次考试的录入成绩的老师 1 统计没门课的考试次数 考试次数统计 select project 39 科目 39 count project 39 考试次数 39
  • java读取jar包中的文件

    最近遇到读取不到文件的问题 xff0c 开发测试一切正常 xff0c 打包发版后读取不到文件的情况 之前文件路径是相对路径 xff0c 在jar包中其实是读取不到的 这时候需要使用类装载器 ClassLoader 进行读取配置文件 1 Cl

随机推荐