news 2026/5/30 12:44:48

TFRecord读取报错怎么办?教你一招避坑

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
TFRecord读取报错怎么办?教你一招避坑
💓 博客主页:瑕疵的CSDN主页
📝 Gitee主页:瑕疵的gitee主页
⏩ 文章专栏:《热点资讯》

被TFRecord特征类型坑到凌晨三点,这招真香

目录

今天跑数据管道,TFRecord读取突然报错:
ValueError: Expected float32, got string

我盯着屏幕盯了半小时,以为是文件路径错了。结果一查,发现是特征类型写死了float32,但实际TFRecord里存的是base64字符串。

核心根源
TFRecord存储图片时,会把图片转成字符串(base64编码)。我定义特征时手滑写成float32,解析时自然对不上。不是文件问题,是描述和数据打架。

错误示范(我踩的坑):

# 错误示范:图片字段设成float32feature_description={'image':tf.io.FixedLenFeature([],tf.float32),# 错!实际是字符串'label':tf.io.FixedLenFeature([],tf.int64)}defparse_func(example):features=tf.io.parse_single_example(example,feature_description)image=features['image']# 这里直接报错label=features['label']returnimage,label

运行就崩:Expected float32, got string。我试过重写路径、删缓存,全白费。

正确姿势(直接上代码):

# 正确姿势:匹配实际数据类型feature_description={'image':tf.io.FixedLenFeature([],tf.string),# 改成string'label':tf.io.FixedLenFeature([],tf.int64)}defparse_func(example):features=tf.io.parse_single_example(example,feature_description)# 重点:用decode_jpeg把字符串转成图片image=tf.io.decode_jpeg(features['image'],channels=3)# 通道数设3label=features['label']returnimage,label

关键点:

  1. 特征类型必须用tf.string(和存储一致)
  2. tf.io.decode_jpeg转换,别直接拿字符串当图片
  3. 通道数按实际设(RGB是3,灰度是1)


(图:左边错误类型 vs 右边实际数据类型)

避坑总结

  1. 生成TFRecord前,先用tf.io.TFRecordWriter写个测试样本,打印数据类型
  2. 读取时,别信自己记的类型——直接看数据:print(features['image'].numpy())
  3. 报错时,先看Expectedgot,别瞎猜路径
  4. 永远在parse_func里加个tf.debugging.assert_type校验

这次坑我半小时,但记住:TFRecord的特征描述是数据管道的命根子。下次再出错,直接看特征定义,别浪费时间。
(附:生成TFRecord时,图片转字符串的代码我写在评论区了,需要的自取)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/30 12:44:29

Adobe-GenP终极指南:如何快速解锁Adobe全家桶专业功能

Adobe-GenP终极指南:如何快速解锁Adobe全家桶专业功能 【免费下载链接】Adobe-GenP Adobe CC 2019/2020/2021/2022/2023 GenP Universal Patch 3.0 项目地址: https://gitcode.com/gh_mirrors/ad/Adobe-GenP Adobe-GenP是一款功能强大的Adobe Creative Cloud…

作者头像 李华
网站建设 2026/5/30 12:42:26

MATLAB脚本:模拟高斯光束通过薄透镜后的聚焦光强分布与三维可视化

本文还有配套的精品资源,点击获取 简介:提供一个开箱即用的MATLAB脚本Gaussian_beam_focusing.m,完整实现高斯光束在自由空间传播、经理想薄透镜相位调制、以及焦平面附近光强分布的数值计算与图像呈现。支持自定义输入参数:激…

作者头像 李华
网站建设 2026/5/30 12:39:48

如何彻底解决网盘下载限速问题?LinkSwift技术方案深度解析

如何彻底解决网盘下载限速问题?LinkSwift技术方案深度解析 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / …

作者头像 李华
网站建设 2026/5/30 12:39:47

从禾川HCQ0到台达ASD680:Codesys电子凸轮多品牌伺服配置避坑指南

跨品牌伺服集成实战:Codesys电子凸轮配置全解析在工业自动化项目中,工程师常常面临一个现实挑战:如何在同一个控制系统中集成不同品牌的伺服驱动器,并实现高精度的电子凸轮同步。这种需求在设备升级改造、多供应商采购或特殊工艺场…

作者头像 李华