1问题描述
Traceback (most recent call last):
File "F:/code/yolov7-pose/train.py", line 562, in <module>
train(hyp, opt, device, tb_writer)
File "F:/code/yolov7-pose/train.py", line 204, in train
image_weights=opt.image_weights, quad=opt.quad, prefix=colorstr('train: '), kpt_label=kpt_label)
File "F:\code\yolov7-pose\utils\datasets.py", line 74, in create_dataloader
kpt_label=kpt_label)
File "F:\code\yolov7-pose\utils\datasets.py", line 414, in __init__
labels, shapes, self.segments = zip(*cache.values())
ValueError: not enough values to unpack (expected 3, got 0)
train: WARNING: Ignoring corrupted image and/or label F:\code\yolov7-pose\person\images\train\00.jpg: cannot reshape array of size 55 into shape (2)
train: WARNING: Ignoring corrupted image and/or label F:\code\yolov7-pose\person\images\train\01.jpg: cannot reshape array of size
2解决方案:不要使用右键运行,要使用命令行运行.
还需要注意两点:第一点,在进行命令行操作之前,需要把数据集中train和val文件夹里面的labels.cache删除掉。尤其上一次运行没成功,这两个labels.cache文件一定要删除,不然指定运行不通。 第二点:检查数据中的图片和标签是否对应。不对应也会报错。
另外,如果训练的准确率为0,一般都是数据集的问题。比如,有一次,我使用了目标检测的数据集进行了关键点检测代码的训练,出现了准确率为0的现象。
python train.py --data data/coco_kpts_128.yaml --cfg cfg/yolov7-w6-pose.yaml --weights yolov7-w6-person.pt --kpt-label(千万要注意配置文件和路径要正确,这里的yaml文件和路径要注意修改)