YOLOv5ds搭建流程及遇到的bug

1、环境配置

git clone https://github.com/midasklr/yolov5ds.git
conda create -n yolov5ds
Conda activate yolov5ds
pip install torch==1.8.1+cu101 torchvision==0.9.1+cu101 -f https://download.pytorch.org/whl/torch_stable.html
pip install -r requirements.txt

2、下载预训练模型(可略,代码会自动下载)

在yolov5ds-main根目录新建weights文件夹
下载yolov5预训练模型Releases · ultralytics/yolov5 · GitHub放到weights文件夹中

3、准备数据集——非常关键

det文件夹存放检测数据集yolo格式
seg文件夹存放分割数据集 labels存放分割图像.png
YOLOv5ds搭建流程及遇到的bug_第1张图片

4、配置文件参数修改

4-1、models/segheads.yaml
segnc:改为自己的分割类别数 + 1(这里一定要+1)

4-2、data/voc.yaml
train:改为自己det文件夹下train.txt路径
val:改为自己det文件夹下val.txt路径
road_seg_train:改为自己seg文件夹下images/train文件夹路径
road_seg_val:改为自己seg文件夹下images/val文件夹路径
nc:改为自己的检测类别数
segnc:改为自己的分割类别数(这里一定不要+1 !!!)

4-3、models/yolov5s.yaml
nc:改为自己的检测类别数

4-4、trainds.py
parse_opt函数下修改对应default里面的内容

5.后台训练

nohup python trainds.py --device 1,2 > log.txt 2>&1 &

Bug1:RuntimeError: weight tensor should be defined either for all or no classes
解决:https://blog.csdn.net/sadjhaksdas/article/details/125762260
Bug2:RuntimeError: result type Float can‘t be cast to the desired output type long int
解决:https://blog.csdn.net/Thebest_jack/article/details/125649451

6检测

python detectds.py

Bug3:RuntimeError: result type Float can‘t be cast to the desired output type long int
原因:输入放在的gpu上,权重却没有放在gpu上,导致数据类型不一致
解决:在 detectds.py 中用 Ctrl+F 搜索定位到model = ckpts[‘model’]位置,然后在下方加上一行代码:
model = model.cuda()
Bug4:IndexError: index 1 is out of bounds for axis 0 with size 1
解决:
在这里插入图片描述

你可能感兴趣的:(python,深度学习)