问题描述:
在训练自己数据集中突然出现了报错如下:
File "/.../yolov5-master/utils/dataloaders.py", line 181, in create_dataloader
dataset = LoadImagesAndLabels(
File "/.../yolov5-master/utils/dataloaders.py", line 604, in __init__
assert nf > 0 or not augment, f"{prefix}No labels found in {cache_path}, can not start training. {HELP_URL}"
assert nf > 0 or not augment, f"{prefix}No labels found in {cache_path}, can not start training. {HELP_URL}"
AssertionError: train: No labels found in /..../yolov5-master/data/ImageSets/train.cache, can not start training. See https://docs.ultralytics.com/yolov5/tutorials/train_custom_data
#或者如下:
AssertionError: train: No labels found in /.../yolov5-master/data/ImageSets/labels.cache, can not start training. See https://docs.ultralytics.com/yolov5/tutorials/train_custom_data
总结一下:
可以先参考博客
https://blog.csdn.net/IYXUAN/article/details/124339385
写的非常详细,包括数据集格式以及文件结构;
这一问题主要排查的是:
- yaml文件中对数据集的路径是否正确,在train.py中是否修改yaml文件;
- 在datasets中的数据结构,以及数据集转化后是否有正确的路径和格式;
如果还有问题可以参考我遇到的小错误排查:
- 如果是找不到train.cache, 在我这里是因为数据集转换为yolo格式后,train.txt , text.txt, val.txt中没有正确指向图片的详细路径;
如下,要写清楚图片所在的具体路径,即便dataset放到哪个文件夹,指定清楚就能找到;
- 在确定路径后我的报错变为第二个,no labels found in labels.cache
查了半天发现是我把json文件转换yolo格式后,用错了文件夹,给服务器传的还是json文件,很低级的错误,记录一下。