广告区
广告区
关注本站官方公众号:程序员总部,领取三大福利!
福利一:python和前端辅导
福利二:进程序员交流微信群,专属于程序员的圈子
福利三:领取全套零基础视频教程(python,java,前端,php)
发布于2022-08-01 19:58 阅读(917) 评论(0) 点赞(26) 收藏(0)
这两天打算使用YOLOv5做一下实例分割,找到
用YOLOv5ds训练自己的数据集——同时检测和分割_2021黑白灰的博客-CSDN博客_yolov5图像分割
Yolov5同时进行目标检测和分割分割_LeeCW2022的博客-CSDN博客_yolov5分割
这两篇文章当参考,但是中间的问题多多。
首先,训练参数的设置,按照黑白灰大佬的参数设置大体上没错,但是会容易出现RuntimeError: weight tensor should be defined either for all or no classes 这个问题。
分析原因主要是分割头输入输出的类别数目不一样。那么我们就只用修改segheads.yaml里的segnc,为自己的类别数+1。
同时,对于voc.yaml里面的类别数务必只改为自己的类别数,不能+1,里面的segnc也千万不能+1,因为+1后可以跑但是在detect的时候会超过类别索引,导致预测不了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!大家也不想大半段时间白跑把。报错为:IndexError: index 3 is out of bounds for axis 0 with size 3。
补充:在预测是还是报这个错,需要更改detectds.py中的颜色数量,数量需要加上1,所以更改115行为:
接下来就可以进行分割的预测了。
最后,在使用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类型的了,就能顺利预测了。
其他的就按照黑白灰大佬的步骤制作数据集和调参就行,目前只遇到了这些比较难搞的问题,有其他问题再说。
补充:AttributeError: 'tuple' object has no attribute 'shape'
使用detect.py时候报错。原因是啥我也不清楚,但是我看
这一块的时候看到他在detectds.py中的第一个参数的应用是不一样的,
那我就试着在detect.py中加上[0][0]显示超出,去掉一个[0],预测成功,碰到死耗子了,可用,有大佬清楚原因可以评论区留言分享一下,感谢。
原文链接:https://blog.csdn.net/sadjhaksdas/article/details/125762260
关注本站官方公众号:程序员总部,领取三大福利!
福利一:python和前端辅导
福利二:进程序员交流微信群,专属于程序员的圈子
福利三:领取全套零基础视频教程(python,java,前端,php)
关注公众号回复python,免费领取 全套python视频,回复充值+你的账号,免费为您充值1000积分
作者:美达
链接:https://www.pythonheidong.com/blog/article/1630411/75e5155ad460d85695b3/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!