YOLOV8离谱报错
YOLOV8离谱报错
跑了以一个YOLOV8具体的实例,并解决中文显示乱码问题,我上传到了b站,链接如下:
【租界GPU服务器进行YOLOV8目标检测并解决中文报错问题】https://www.bilibili.com/video/BV1Pg4y1M72U?vd_source=7f1982c56a437c7b00c3695687b7086d
今天下午跑数据集,用的是yolov8在恒源云上租的4080的GPU服务器,跑垃圾分类数据集( https://blog.csdn.net/m0_54882506/article/details/129880489 ), 结果报错了,报错信息如下:
Traceback (most recent call last):
File "/usr/local/bin/yolo", line 8, in <module>
sys.exit(entrypoint())
File "/usr/local/lib/python3.8/dist-packages/ultralytics/yolo/cfg/__init__.py", line 391, in entrypoint
getattr(model, mode)(**overrides) # default args from model
File "/usr/local/lib/python3.8/dist-packages/ultralytics/yolo/engine/model.py", line 371, in train
self.trainer.train()
File "/usr/local/lib/python3.8/dist-packages/ultralytics/yolo/engine/trainer.py", line 191, in train
self._do_train(world_size)
File "/usr/local/lib/python3.8/dist-packages/ultralytics/yolo/engine/trainer.py", line 362, in _do_train
self.metrics, self.fitness = self.validate()
File "/usr/local/lib/python3.8/dist-packages/ultralytics/yolo/engine/trainer.py", line 462, in validate
metrics = self.validator(self)
File "/usr/local/lib/python3.8/dist-packages/torch/autograd/grad_mode.py", line 27, in decorate_context
return func(*args, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/ultralytics/yolo/engine/validator.py", line 169, in __call__
self.update_metrics(preds, batch)
File "/usr/local/lib/python3.8/dist-packages/ultralytics/yolo/v8/detect/val.py", line 107, in update_metrics
correct_bboxes = self._process_batch(predn, labelsn)
File "/usr/local/lib/python3.8/dist-packages/ultralytics/yolo/v8/detect/val.py", line 158, in _process_batch
iou = box_iou(labels[:, 1:], detections[:, :4])
File "/usr/local/lib/python3.8/dist-packages/ultralytics/yolo/utils/metrics.py", line 70, in box_iou
inter = (torch.min(a2, b2) - torch.max(a1, b1)).clamp(0).prod(2)
RuntimeError:
自己把服务器重置,重新配了好几遍,结果都是运行一个epoch就报错,如下:
自己翻阅了很多材料,找了很多大神,都没有正确的解决!
说一下我的解决思路(这里特别感谢一下yaogle哥,给了我很多建议!!!YYDS):
1.怀疑环境配置有问题,自己在报错的时候,利用官方给出的测试代码:yolo predict model=yolov8n.pt source='https://ultralytics.com/images/bus.jpg'
进行测试,结果是成功的,又将服务器重置,重新配置,测试一遍yoloV8都是测试成功,但是跑一下数据,还是报错,此时我排除了是环境配置的问题。
2.接下来我怀疑的是数据问题,因为这个数据集,很奇怪(*).jpg,在训练的时候有警告,我就想是不是数据的问题,我找来我万能的人脸口罩数据集(V5 V8之前跑成功过),这个数据集很小,导入,跑一下,结果还是一个epoch就报错,此时排除数据的问题。
3.就在我万念俱灰之时,我想我下午不是跑通了这个数据集的部分数据吗?我是咋跑通的?我回忆了一下,想到下午自己省钱,租的是0.6毛一小时的3060,而我现在用的是2.5一小时的4070,我就抱着试一试的心态,开了一个3060的服务器,跑了一下,结果如下:
哈哈,没想到真的跑通了,我又跑了我的万能数据集,人脸口罩数据集和额外找的数据集测试一下,都跑通了!!!看来越新越贵的东西,未必越好,哈哈哈哈哈~ ~ ~ ~ ~ ~ ~(魔性的笑声)
我不知道这是不是,这个问题的真正解决,但对我来说确实是目前的最优解,芜湖起飞(还没吃完饭,今晚点烧烤)!!!!