You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法将Pascal VOC转换为tfrecords,TensorFlow目标检测API训练报错

解决KITTI转TFRecord时的两类问题

一、核心报错:ValueError无法转换浮点数字符串为整数

你的问题出在generate_tfrecord1.py的xml_to_csv函数第92行——直接把带换行空格的浮点数字符串(比如"\n 692.09\n ")或纯浮点字符串(比如"583.43")转成整数,自然会触发类型转换错误。

修复步骤:

  1. 打开/workspace/scripts/generate_tfrecord1.py,找到处理边界框坐标的代码段(大概在第92行附近,对应xmin、xmax、ymin、ymax的处理)。
  2. 修改每一行坐标转换逻辑,先清理字符串的空白字符,再将浮点值转为整数:
    # 原报错代码(示例)
    xmin = int(xml.find('bndbox/xmin').text)
    
    # 修改为:
    xmin_text = xml.find('bndbox/xmin').text.strip()  # 移除换行、空格等空白字符
    xmin = int(float(xmin_text))  # 先转float处理浮点值,再转int
    
  3. 对xmax、ymin、ymax做完全相同的修改,确保所有坐标都经过空白清理和正确的类型转换。

这样处理后,不管是带冗余空白的浮点字符串还是纯浮点字符串,都能顺利转为整数类型。

二、tensorflow_io相关库加载警告

这类警告通常是因为tensorflow_io库版本与你的TensorFlow版本不兼容,或者代码中导入了该库但实际没用到。

可选处理方式:

  • 直接忽略警告:如果不影响功能,可以在脚本开头添加代码屏蔽警告:
    import warnings
    warnings.filterwarnings("ignore", category=UserWarning, module="tensorflow_io")
    
  • 匹配版本重装:如果确实需要使用tensorflow_io,安装与你的TensorFlow版本匹配的版本(比如TensorFlow 2.15对应tensorflow_io==0.35.0):
    pip install tensorflow_io==<对应版本号>
    
  • 删除无用导入:检查generate_tfrecord1.py中是否有import tensorflow_io的语句,如果没用到该库的功能,直接删除这条导入即可消除警告。

内容的提问来源于stack exchange,提问作者MUHAMMAD JUNAID

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 17:01:48