yolopose训练自己的数据集时发出警告:
Ignoring corrupted image and/or label ../yolopose/coco_kpts/images/train/0000023.jpg: cannot reshape array of size 49 into shape (2)
报错:
dataset = LoadImagesAndLabels(path, imgsz, batch_size,
File "/root/yolopose/utils/datasets.py", line 415, in __init__
labels, shapes, self.segments = zip(*cache.values())
ValueError: not enough values to unpack (expected 3, got 0)
在../yolopose/coco_kpts/labels这个路径下面有xxx.cache文件,删掉重新跑试试看,这里记录的是上一次你运行的一些数据集缓存,而这个缓存里面你目前的数据是空的就会这样。如果删除掉之后还是不行,说明你的数据集有问题了,也就是读取到的标签或者图片数量不对。
另外,你上面的报错图片../yolopose/coco_kpts/images/train/0000023.jpg这张图片长度不对,比如7x7大小的图片,你想把它reshape为row为2的图片就会报错,因为49无法整除2,就会导致他的col轴是多少无法自动计算,所以报错。我不清楚你是否改过什么,按理来说都是先resize或者padding为一个固定的尺寸之后再进行reshape操作的,这样就不会出现你这个问题。
引用chatGPT作答,
这个警告是由于在训练yolopose时,读取的图像或标签数据可能已损坏或格式不正确导致的。警告中提到的“cannot reshape array of size 49 into shape (2)”表示无法将一个大小为49的数组重新调整为大小为2的形状。
报错信息中的 "not enough values to unpack (expected 3, got 0)" 则表示从缓存中读取的标签数据不完整,期望得到3个值,但是实际上没有获取到任何值。
建议您检查一下训练数据集的图像和标签数据是否存在格式不正确、丢失或损坏等问题,尤其是针对报错中提到的那个具体的文件 ../yolopose/coco_kpts/images/train/0000023.jpg 进行仔细检查。您可以尝试打开该文件,或者尝试使用其他工具查看该文件的内容,以确定它是否存在问题。
如果数据存在问题,建议您尽快修复或替换这些文件,以确保训练能够正常进行
以下回答参考GPT,并由JoseKe整理完成,希望您能采纳: