当前位置:   article > 正文

成功解决:ValueError: not enough values to unpack (expected 3, got 0)

not enough values to unpack (expected 3, got 0)

今天在用yolov5训练自己的数据集时,在训练的时候出现了下列问题:

出错的代码行为:

labels, shapes, self.segments = zip(*cache.values())

发生在yolo5-5.0\utils\dataloaders.py的LoadImagesAndLabels类下的__init__方法中

class LoadImagesAndLabels(Dataset):  # for training/testing 

在网上找了很久,给出的建议大致分为以下几种:

1.  data.ymal(训练集的图片和标签)的路径不对

2、图片, 标签 名称包含中文

3、你的标签文件的class分类是负数

4.   没有归一化

然后我进行了依次的检查,发现我的问题都不符合以上几类。

最后我的解决方法:

将data文件下的train.cache文件删除,然后再进行重新运行,最后程序就可以跑起来了。

train.cache是由DataSet API创建的,当DataSet API在读取预处理数据时,它会将处理后的数据缓存到train.cache文件中,以加速训练过程。也就是说train.cache作为一个缓存文件,用于存储训练过程中的中间结果,加速后续训练速度。每个epoch结束后,train.cache都会记录模型的参数和优化器状态,以及训练集和验证集损失等信息。下一次训练,train.chache文件存在,就可以直接加载其中的信息,避免重新计算,从而提高训练的效率。

总结一下我出现以上问题的原因:因为我先在程序上跑了coco的数据集,则有一个关于coco数据集的缓存,所以在换成我的数据集的时候,里面的缓存依然是coco的数据集信息,所以出现错误。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/462016
推荐阅读
  

闽ICP备14008679号