YOLO5训练报错AssertionError:test/labels.cache未检测到标签无法启动
YOLO5训练报错:
AssertionError: train: No labels found in /content/dataset/test/labels.cache, can not start training 排查方案 针对你更换数据集后出现的这个问题,按以下步骤逐一排查:
检查测试集标签文件有效性
- 确认
/content/dataset/test/labels下的标签文件格式:每个图片对应同名.txt文件,每行必须是类别ID x_center y_center width height格式(坐标需为0-1之间的归一化值,不能是像素值)。 - 排查空标签文件、类别ID超出yaml配置的
nc范围、坐标值不在0-1区间等异常情况。 - 确保标签文件编码为UTF-8,无乱码或特殊字符。
- 确认
核对数据集yaml配置
- 打开数据集yaml文件,确认
test字段指向的是/content/dataset/test/images(而非labels目录)。 - 检查
nc(类别总数)是否与数据集实际类别数匹配,names列表的类别顺序是否和标签中的类别ID一一对应。 - 确认训练命令中指定的yaml文件路径完全正确。
- 打开数据集yaml文件,确认
重置缓存文件
- 删除所有已生成的
.cache文件(包括train和test目录下的),重新运行训练命令让YOLO5重新生成缓存。 - 用命令
cat /content/dataset/test/labels.cache查看缓存内容,确认labels字段是否存在有效数据。
- 删除所有已生成的
验证图片与标签的对应关系
- 确保
/content/dataset/test/images中的每张图片,在/content/dataset/test/labels中都有同名的.txt标签文件(文件名完全一致,如cat.jpg对应cat.txt)。 - 排除特殊格式图片,YOLO5仅支持jpg、jpeg、png等常规格式。
- 确保
检查目录权限
确认当前用户对/content/dataset/test目录及所有子文件拥有读写权限,避免因权限不足导致缓存生成不完整。
内容的提问来源于stack exchange,提问作者김민재
相关产品推荐
相关产品推荐

