用YOLOv5ds训练自己的数据集,注意点!

这两天打算使用YOLOv5做一下实例分割,找到

用YOLOv5ds训练自己的数据集——同时检测和分割_2021黑白灰的博客-CSDN博客_yolov5图像分割

Yolov5同时进行目标检测和分割分割_LeeCW2022的博客-CSDN博客_yolov5分割

这两篇文章当参考,但是中间的问题多多。

首先,训练参数的设置,按照黑白灰大佬的参数设置大体上没错,但是会容易出现 RuntimeError: weight tensor should be defined either for all or no classes 这个问题。

用YOLOv5ds训练自己的数据集,注意点!

同时,对于voc.yaml里面的类别数务必只改为自己的类别数,不能+1,里面的segnc也千万不能+1,因为+1后可以跑但是在detect的时候会超过类别索引,导致预测不了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!大家也不想大半段时间白跑把。报错为: IndexError: index 3 is out of bounds for axis 0 with size 3

用YOLOv5ds训练自己的数据集,注意点!

接下来就可以进行分割的预测了。

最后,在使用detectds.py文件进行预测时,如果出现

RuntimeError: Input type (torch.cuda.HalfTensor) and weight type (torch.HalfTensor)这一报错,原因是你输入模型的数据和模型的数据类型不一样,输入数据是cuda类型的,而模型不是cuda类型的。解决办法就是找到Load model的地方,也就是detectds.py的第103行开始,在model赋值一行下面补充model = model.cuda(),这样加载的模型就是cuda类型的了,就能顺利预测了。

用YOLOv5ds训练自己的数据集,注意点!

其他的就按照黑白灰大佬的步骤制作数据集和调参就行,目前只遇到了这些比较难搞的问题,有其他问题再说。

补充: AttributeError: ‘tuple’ object has no attribute ‘shape’

用YOLOv5ds训练自己的数据集,注意点!

用YOLOv5ds训练自己的数据集,注意点!

那我就试着在detect.py中加上[0][0]显示超出,去掉一个[0],预测成功,碰到死耗子了,可用,有大佬清楚原因可以评论区留言分享一下,感谢。

Original: https://blog.csdn.net/sadjhaksdas/article/details/125762260
Author: 用猪头过日子.
Title: 用YOLOv5ds训练自己的数据集,注意点!

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/706477/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球