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

用猪头过日子. 用猪头过日子.     2022-10-21     643

关键词:

        这两天打算使用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],预测成功,碰到死耗子了,可用,有大佬清楚原因可以评论区留言分享一下,感谢。 

tusimple车道线检测处理自己的数据集用自己的数据集训练模型

tusimple车道线检测处理自己的数据集用自己的数据集训练模型_喜欢爱喝矿泉水的男孩的博客-CSDN博客标注数据将自己的数据用labelme(至于如何安装和使用请自查)打开,然后选择线段或者点进行标注,标注完成之后会生成jso... 查看详情

转载faster-rcnn+zf用自己的数据集训练模型(matlab版本)

...好了自己的数据集,该数据集格式和VOC2007相同。下面是训练前的一些修改。(做数据集的过程可以看http://blog.csdn.net/sinat_30071459/article/details/50723212) Faster-RCNN源码下载地址:Matlab版本:https://github.com/ShaoqingRen/faster_rcnnPyt 查看详情

怎样用自己的数据集对caffe训练好的model进行fineture

...行修改,使之符合自己的需求。最难的就是从零开始设计训练网络模型。题主可以体验一下从零开始设计训练模型,但是不要陷太深。如果题主设计了很好的网络模型,欢迎分享啊根据您的数据量,强烈建议finetune 查看详情

在自己的数据集上训练 TensorFlow 对象检测

】在自己的数据集上训练TensorFlow对象检测【英文标题】:TrainTensorflowObjectDetectiononowndataset【发布时间】:2017-12-1121:27:26【问题描述】:在花了几天时间尝试完成这项任务后,我想分享一下我如何回答这个问题的经验:如何使用TS... 查看详情

[课程][原创]yolov5安装标注训练自己数据集windows版

搞定系列:yolov5训练自己数据集windows版课程地址:搞定系列:yolov5训练自己数据集windows版--深度学习视频教程-人工智能-CSDN程序员研修院开会员学更多课程课程介绍课程目录讨论留言你将收获1、学会如何搭建yolov5环... 查看详情

cvpr2020论文解读:少点目标检测

...系检测器的少点目标检测目标检测的惯用方法需要大量的训练数据,准备这样高质量的训练数据很费精力的。本文中,提出一种新的少点目标检测网络,只用几个带注释的示例的看不见的类来检测目标。集中到新方法的核心是,... 查看详情

[课程][原创]paddleocr训练自己数据集windows版

paddleocr训练自己数据集windows版课程地址:paddleocr训练自己数据集windows版--深度学习视频教程-人工智能-CSDN程序员研修院15节节数课程介绍课程目录讨论留言你将收获1、可以学会安装paddleocr在windows上GPU环境2、学会paddleocr训练... 查看详情

[深度学习][原创]yolox快速训练自己数据集方法

...新中,本文将使用非常简单的步骤即可完成自己模型训练任务。第一步:搭建自己的yolox环境,yolox支持windows和linux大家按照官方教程安装即可,这里不是本文重点介绍。第二步准备数据集:一般我们用的是VOC数据... 查看详情

yolov7训练自己的数据集(口罩检测)(代码片段)

YOLOv7训练自己的数据集(口罩检测)前言前提条件实验环境项目结构制作自己的数据集数据集目录结构训练自己的数据集VOC格式数据集转换成YOLO格式数据集修改cfg配置新建一个myyolov7.yaml配置文件myyolov7.yaml内容创建自己... 查看详情

yolox训练流程解析

yolox训练代码写得比较简单,就是需要我们自己根据自己的数据定义好加载数据的方式,评估方式即可。整体训练流程我用xmind画出来了,最主要就是定义YourDataDetection类,加载我们自己的训练集数据和验证集数据... 查看详情

数据集切割

一、数据集切割  我们通常将数据及切割成两部分:训练数据集(TrainingDataset);测试数据集(TestingDataset).  注意:可采用分层抽样的方式进行,以保持数据在目标字段上分布的一致性。     1.数据分割•80%... 查看详情

detectron2maskrcnn训练自己的数据集

参考技术A摘要:使用Detectron2来训练一个maskRCNN实例分割的模型。数据集用labelme标注,最后转为coco格式训练。参考:安装detectron2labelme标注格式转为coco格式@[toc]用labelme标注的分割任务采用链接labelme标注格式转为coco格式的方法转... 查看详情

深度学习100例|第53天:用yolov5训练自己的数据集(超级详细完整版)(代码片段)

...#xff09;配置完YOLOv5需要的环境后,今天我们试着用YOLOv5训练自己的数据。࿰ 查看详情

faster-rcnn训练自己的数据集

.../article/details/50723212按照下面这个博客修改faster-rcnn源码,训练自己的数据:http://blog.csdn.net/sinat_30071459/article/details/51332084训练自己的数据的时候如果提示assert(boxes[:,2] 查看详情

用yolov8推荐的roboflow工具来训练自己的数据集(代码片段)

...分类它们。作为一种深度学习技术,YOLOv8需要大量的训练数据来实现最佳性能。为了让YOLOv8能够有效地识别自己的应用中的物体,开发者需要准备大量的训练数据,而构建自定义数据集是一个非常耗时的过程,往... 查看详情

yolov7训练自己的数据集(代码片段)

yolov7训练自己的数据集一.安装yolov7并配置1.安装Anaconda2.创建虚拟环境3.下载yolov7源码4.下载权重5.安装依赖二.运行目标检测三.训练自的数据集1.创建所需文件2.下载labelImg标注工具3.配置训练的相关文件四.正式训练五.使用自己的... 查看详情

折腾faster-rcnn(三)--训练篇

...学习前面,我们已经成功跑起来faster-rcnn,并且自己动手训练了PascalVOC2007图像集,但是笔者接下来继续沿着官方文件跑PascalVOC2012,训练到第二阶段的某个点,程序就开始报错退出。查看logs发现,找不到图像的Annotation文件。遂放... 查看详情

pytorch定义并训练自己的数字数据集

...触很多教程都是直接加载datasets已有的MNIST等,如果想要训练自己的数据就可以采用这个方法。基本步骤:获取并读取数据-->定义网络模型和损失函数-->使用优化算法训练模型-->利用验证数据集求取网络识别准确度1、首先... 查看详情