YOLOV9训练自己的数据集

 1.代码下载地址GitHub - WongKinYiu/yolov9: Implementation of paper - YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information

 2.准备自己的数据集

这里数据集我以SAR数据集为例

具体的下载链接如下所示:

链接:https://pan.baidu.com/s/1cIiaOT2hbnQsa8e93cHQrg 
提取码:yyds

3.数据集路径调整

将数据集存放在yolov9的文件夹下面

4.新建data.yaml文件

train:  E:\liqiang\yolov9-main\data\SSDD\train\images  #  训练集绝对路径  进入到训练集存放图片的文件夹里面,按ctrl+L复制过来即可
val: E:\liqiang\yolov9-main\data\SSDD\val\images  # 验证集绝对路径  进入到验证集存放图片的文件夹里面,按ctrl+L复制过来即可
# test: D:\needed\air-filter\train\images
 
nc: 1  # class数
names: ['ship']  # 模型类别名

train的路径是训练集下面的images路径

val的路径是验证集下面的images路径

其他的根据自己的数据集进行调整

5.修改yolov9.yaml文件

把nc改为数据集类别即可

6.训练

报错1:

训练如果出现AttributeError: 'list' object has no attribute 'view'报错时,使用tain_dual.py进行训练,不要使用train.py进行训练

AMP: checks passed 
optimizer: SGD(lr=0.01) with parameter groups 230 weight(decay=0.0), 247 weight(decay=0.0005), 245 bias
albumentations: Blur(p=0.01, blur_limit=(3, 7)), MedianBlur(p=0.01, blur_limit=(3, 7)), ToGray(p=0.01), CLAHE(p=0.01, clip_limit=(1, 4.0), tile_grid_size=(8, 8))
train: Scanning E:\liqiang\yolov9-main\data\SSDD\train\labels.cache... 928 images, 0 backgrounds, 0 corrupt: 100%|██████████| 928/928 00:00
val: Scanning E:\liqiang\yolov9-main\data\SSDD\val\labels.cache... 232 images, 0 backgrounds, 0 corrupt: 100%|██████████| 232/232 00:00
Plotting labels to runs\train\exp10\labels.jpg... 
Image sizes 640 train, 640 val
Using 0 dataloader workers
Logging results to runs\train\exp10
Starting training for 10 epochs...

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
  0%|          | 0/232 00:01
Traceback (most recent call last):
  File "E:\liqiang\yolov9-main\train.py", line 634, in <module>
    main(opt)
  File "E:\liqiang\yolov9-main\train.py", line 528, in main
    train(opt.hyp, opt, device, callbacks)
  File "E:\liqiang\yolov9-main\train.py", line 304, in train
    loss, loss_items = compute_loss(pred, targets.to(device))  # loss scaled by batch_size
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\liqiang\yolov9-main\utils\loss_tal.py", line 168, in __call__
    pred_distri, pred_scores = torch.cat([xi.view(feats[0].shape[0], self.no, -1) for xi in feats], 2).split(
                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\liqiang\yolov9-main\utils\loss_tal.py", line 168, in <listcomp>
    pred_distri, pred_scores = torch.cat([xi.view(feats[0].shape[0], self.no, -1) for xi in feats], 2).split(
                                          ^^^^^^^

AttributeError: 'list' object has no attribute 'view'

报错2:

AttributeError: 'FreeTypeFont' object has no attribute 'getsize'

解决:

pip install Pillow==9.5  -i https://pypi.douban.com/simple/

训练命令:

 python .\train_dual.py  --cfg E:\liqiang\yolov9-main\models\detect\yolov9.yaml --data E:\liqiang\yolov9-main\data\data.yaml --device 0 --batch-size 4 --epoch 10 --hyp E:\liqiang\yolov9-main\data\hyps\hyp.scratch-high.yaml

yolov9.yaml绝对路径复制

data.yaml绝对路径复制

hyps绝对路径复制

 

7.推理

python detect.py --weights E:\liqiang\yolov9-main\runs\train\exp11\weights\best.pt  --source E:\liqiang\yolov9-main\data\images\000002.jpg

报错:AttributeError: 'list' object has no attribute 'device'

 解决:

将general.py中的:

    if isinstance(prediction, (list, tuple)):  # YOLO model in validation model, output = (inference_out, loss_out)
        prediction = prediction[0]  # select only inference output

    device = prediction.device

 替换为:

    if isinstance(prediction, (list, tuple)):
        processed_predictions = []  
        for pred_tensor in prediction:
            processed_tensor = pred_tensor[0] 
            processed_predictions.append(processed_tensor)  
        prediction = processed_predictions[0]
    device = prediction.device

 结果如下:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/474583.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

广州市高质量发展大会,东纺企服系统提出数智化新思路

近日&#xff0c;广州市海珠区凤阳街道高质量发展大会暨企业联盟沙龙荟在海珠区珠江国际纺织城D区6楼时尚馆召开。东纺科技作为海珠区企业代表&#xff0c;受邀出席参与活动。 本次大会对今年的高质量发展进行亮诺和展望。海珠区委常委、区纪委书记、区监委主任杨清谦以及海珠区…

【环境搭建和安装】thingsboard二次开发环境搭建

文章目录 1.安装JAVA2.安装maven环境3.安装nodeJS4.安装git环境5.安装npm依赖关系 提示&#xff1a; 1.我自己下载存放路径比较混乱&#xff0c;下载的文件尽量在一个新建的文件夹存放&#xff0c;目录全英更好。 2.环境是为了开源物联网平台&#xff0c;环境搭建和安装部署是成…

ETH网络 之 Gas花费实例

求关注&#xff0c;关注我&#xff0c;一起进入Web3的世界 前文回顾 GasBaseFee & PriorityFee部署ERC-721 交易Gas解析 部署NFT的交易 钱包Gas解读 费用清单 ItemValueDesc基础费用(BaseFee)0.102349622 Gwei基础费用是动态的&#xff0c;我们发送交易时是不确定的&…

想进阿里?先了解这个!@SpringMybatis注解面试解析

如有疑问或者更多的技术分享,欢迎关注我的微信公众号“知其然亦知其所以然”! 嗨,大家好!我是小米,今天要和大家聊一聊阿里巴巴面试题中的一个热门话题:@SpringMybatis注解。如果你是一个对技术充满好奇心的小伙伴,那么这篇文章一定会给你带来不少启发和收获! 在开始…

1、编写jsp文件,熟悉jsp页面的基本结构H编写看电影2、编写jsp文件,熟悉jsp动作标记、param传值的使用,计算机三角形的面积。

1、看电影 watchMovie.jsp: <% page language"java" contentType"text/html; charsetUTF-8" pageEncoding"UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <title>Insert ti…

数据分析能力模型分析与展示

具体内容&#xff1a; 专业素质 专业素质-01 数据处理 能力定义•能通过各种数据处理工具及数据处理方法&#xff0c;对内外部海量数据进行清洗和运用&#xff0c;提供统一数据标准&#xff0c;为业务分析做好数据支持工作。 L1•掌握一…

41 物体检测和目标检测数据集【李沐动手学深度学习v2课程笔记】

目录 1. 物体检测 2. 边缘框实现 3.数据集 4. 小结 1. 物体检测 2. 边缘框实现 %matplotlib inline import torch from d2l import torch as d2ld2l.set_figsize() img d2l.plt.imread(../img/catdog.jpg) d2l.plt.imshow(img);#save def box_corner_to_center(boxes):&q…

小白向软件开发教学实战:企业培训APP的设计与开发

随着信息技术的迅猛发展&#xff0c;软件开发已经成为了一个日益重要的技能。无论是个人还是企业&#xff0c;都希望能够掌握一定的软件开发能力&#xff0c;以满足自身的需求。尤其是在企业培训领域&#xff0c;定制化的软件应用能够提高培训效率和质量。 一、需求分析 在设计…

Vue.js前端开发零基础教学(二)

目录 前言 2.1 单文件组件 2.2 数据绑定 2.2.2 响应式数据绑定 2.3 指令 2.3.1 内容渲染指令 2.3.2 属性绑定指令 ​编辑 2.3.3 事件绑定指令 2.3.4 双向数据绑定指令 2.3.5 条件渲染指令 2.3.6 列表渲染指令 2.4 事件对象 2.5 事件修饰符 学习目标&am…

#Linux(帮助手册)

&#xff08;一&#xff09;发行版&#xff1a;Ubuntu16.04.7 &#xff08;二&#xff09;记录&#xff1a; &#xff08;1&#xff09;键入命令man man查看手册目录&#xff08;按q退出&#xff09; &#xff08;2&#xff09;查看手册需要先安装依赖包&#xff08;root权限安…

【spring】@ConditionalOnResource注解学习

ConditionalOnResource 介绍 ConditionalOnResource 是Spring框架中的一个条件化注解&#xff0c;它允许你根据类路径中是否存在指定的资源来决定是否加载特定的Bean定义或配置类。这个注解可以用于类级别或方法级别。 具体Conditional使用请看这篇文章【spring】Conditional…

【漏洞复现】4. Gitlab exiftool远程命令执行漏洞(CVE-2021-22205)复现与分析

文章目录 1. 预备知识2. 漏洞复现2.1 漏洞介绍2.1.1 简介2.1.2 事件过程 2.2 漏洞原理分析2.3 漏洞复现2.3.1 靶场搭建2.3.2 漏洞测试2.3.3 漏洞利用2.3.4 POC分析 2.4 漏洞修复 1. 预备知识 GitLab是一个基于Web的Git仓库管理工具&#xff0c;它提供了完整的DevOps平台&#x…

通俗理解自注意力机制

自注意力机制&#xff08;Self-Attention Mechanism&#xff09; 是一种用于处理序列数据的机制&#xff0c;最初被引入到神经网络模型中&#xff0c;用于在序列数据中建立全局依赖关系。自注意力机制最常用于自然语言处理和计算机视觉领域&#xff0c;特别是在Transformer模型…

机器学习 - 预测训练模型

接着上篇博客机器学习-训练模型做进一步说明。 There are three things to make predictions (also called performing inference) with a PyTorch model: Set the model in evaluation mode (model.eval())Make the predictions using the inference mode context manager (…

管理能力学习笔记一:角色转身

管理能力学习是为了解决角色转身后面临的更多更复杂的的问题。初晋管理层&#xff0c;需要转变工作习惯&#xff0c;学会分配时间。 角色转身 建立“授权”意识 通过匹配工作内容与下属员工能力&#xff0c;分配工作&#xff0c;避免陷入下属能力不足 -> 不愿授权 -> 下…

vue3通过el-cascader实现动态菜单切换页面

如果只有一级菜单只会显示一个按钮 <div style"width: 100%; margin-top: 10px; display: flex; align-items: center; border-bottom: 1px solid #ccc;"><template v-for"(menu, index) in cascaderData" :key"index"><el-casc…

Source Insight关于复制一段代码会自动添加空格或者Tab键的配置取消

Source Insight关于复制一段代码会自动添加空格或者Tab键的配置取消&#xff0c;这个情况在我们复制代码的时候对格式非常不友好&#xff0c;解决办法如下。 如下&#xff0c;我们可以设置相关配置&#xff1a; 设置完成后&#xff0c;然后再去复制&#xff0c;可以看到就没有相…

基于C/C++的easyx实现贪吃蛇游戏

文章目录&#xff1a; 一&#xff1a;运行效果 1.演示 2.思路和功能 二&#xff1a;代码 文件架构 Demo 必备知识&#xff1a;基于C/C的easyx图形库教程 一&#xff1a;运行效果 1.演示 效果图◕‿◕✌✌✌ 基于C/C的easyx实现贪吃蛇游戏运行演示 参考&#xff1a;【C语…

一文带你速通go语言指针

写在文章开头 关于go语言的系列文章更新了有一段时间了&#xff0c;从阅读量来看大部分接触go语言的读者都是Java开发&#xff0c;因为Java这门语言没有指针的概念&#xff0c;所以笔者专门整理了一篇文章带读者快速了解一下指针的概念。 Hi&#xff0c;我是 sharkChili &…

【蓝桥杯嵌入式】四、各种外设驱动(十)USART+DMA通信方式和串口通信协议的设计与使用

温馨提示&#xff1a;本文不会重复之前提到的内容&#xff0c;如需查看&#xff0c;请参考附录 【蓝桥杯嵌入式】附录 目录 重点提炼&#xff1a; 一、需求分析 1、需要的外设资源分析&#xff1a; 2、外设具体分析&#xff1a; CubeMX配置中&#xff0c;我们需要改动的参…