游乐游手机版
首页/AI热点日报/热点详情

海螺AI自定义模型训练失败?检查数据集格式与标签要求

类型:热点整理2026-06-08
海螺AI训练失败常因数据集格式问题,需检查列表文件是否按ICDAR2015规范编写、UTF-8无BOM编码、路径前缀正确,清除混入的换行或制表符;验证标注文件每行8个坐标加文本,用逗号分隔;确保图片与标注文件命名严格一一对应。

海螺AI自定义模型训练突然卡壳?先别急着调参数,问题多半不在模型本身,而是数据集准备环节埋了雷。根据实战经验,失败原因高度集中在几个常见陷阱里:目录结构混乱、路径写死、标注坐标缺失或文本文件里混入非法字符。排查思路很清晰:检查列表文件的格式与编码,确认坐标标注完整,再确保图片与标注文件一一对应。

海螺AI自定义模型训练失败怎么办_检查数据集格式与标签要求

检查train_list.txt和test_list.txt是否符合ICDAR2015索引规范

打开那两个列表文件,先看每一行是否严格写成“图片相对路径 + 空格 + 标注文件相对路径”的格式。路径里千万别出现中文、括号、#、%这类特殊字符,否则解析器很容易翻车。

编码也得留个心眼。用记事本另存为UTF-8无BOM格式,那个隐藏的BOM头经常被解析器当成非法字符直接报错。

接着检查路径前缀写对了没有。第一列应该以 train_images/ 开头,第二列以 train_gts/ 开头。如果写成 ./train_images/img_1.jpg 或者直接 img_1.jpg,那训练时必然会报错,因为路径压根对不上。

最后,用命令行检查换行符和分隔符有没有搞混。运行 head -n 3 train_list.txt | cat -A,如果看到 ^M(Windows换行)或者 ^I(制表符)混进去,必须全部清理干净,只保留空格作为分隔符。

验证标注文件是否满足8坐标+文本内容格式

随便挑一个 gt_img_1.txt 打开,逐行检查。每行必须有且仅有8个数字加1段文本,中间用英文逗号隔开,结尾不能有多余空格。

这里提供两个快速排查方法。方法一:用VS Code的正则搜索,输入 ^(d+,d+){4},[^,]+$,匹配成功的行才是合格格式。不匹配的就要重写。

方法二更推荐:直接跑一行Python脚本,能精确定位出问题行号和错误类型。
python -c "for i,l in enumerate(open('train_gts/gt_img_1.txt'),1): s=l.strip().split(','); print(f'第{i}行错误:坐标数{len(s)-1}≠8') if len(s)!=9 else None"

特别提醒:文本内容部分如果包含英文逗号、双引号或换行符,必须用反斜杠转义,否则解析器会直接中断。

确认图片与标注文件命名严格一一对应

这一步操作起来很简单,但容易遗漏。先列出 train_images/ 下所有图片的文件名(去掉扩展名),再列出 train_gts/ 下所有txt文件名(去掉 gt_ 前缀和 .txt 后缀)。然后用diff命令对比两个列表:
ls train_images/ | sed 's/..*$//' | sort > img_names.txt && ls train_gts/ | sed 's/gt_//; s/.txt$//' | sort > gt_names.txt && diff img_names.txt gt_names.txt

输出为空说明完全匹配。如果有差异,缺失的文件要补上,多余的文件清理掉即可。这一步卡住,基本就是命名没对上号。

来源:https://www.php.cn/faq/2609867.html?uid=969633

相关热点

继续查看同栏目近期热点。

延伸阅读

补充最近整理过的热点入口。