全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 嵌入式技术 >

解锁YOLOv8修改+注意力模块训练与部署流程

时间:2023-08-11 14:14

人气:

作者:admin

标签: YAML  python 

导读:很多人也想跟修改YOLOv5源码一样的方式去修改YOLOv8的源码,但是在github上面却发现找到的YOLOv8项目下面TAG分支是空的...

YOLOv8源码到底在哪?

很多人也想跟修改YOLOv5源码一样的方式去修改YOLOv8的源码,但是在github上面却发现找到的YOLOv8项目下面TAG分支是空的,然后就直接从master/main下面把源码克隆出来一通修改了,其实这种方式风险很高,而且也不是正确的选择,原因在于Master/main分支是工作跟合并的代码主仓,不是发布的版本代码,开源项目团队开发者随时随地都在修改代码,很可能导致引入新BUG,直接使用master/main分支的下面的代码会有两个致命问题:

1. 无法标记版本信息
2. 无法确信代码的是否含有致命BUG
灵魂拷问,YOLOv8对应版本的源代码究竟在哪里?其实对Python安装包稍微了解一下你就知道了,以我自己为例,我是用pip方式安装YOLOv8的,查找一下安装好的YOLOv8包目录应该如下(默认情况下):

43b08b1c-380a-11ee-9e74-dac502259ad0.png

C:UsersAdministratorAppDataLocalProgramsPythonPython38Libsite-packages
然后找到下面的两个文件夹,源码就在这里了。

43dc56d4-380a-11ee-9e74-dac502259ad0.png

YOLOv8添加SE注意力模块

分别修改YOLOv8的模型描述文件yolov8.yaml,模型加载与定义文件task.py与模块结构化实现文件block.py,修改的内容跟YOLOv5注意力机制添加完全一致。修改yolov8.yaml文件,这里我直接插入了SENet注意力模块,修改以后文件与之前的文件对比如下:

4407f244-380a-11ee-9e74-dac502259ad0.png

然后修改源码文件task.py与block.py 实现SENet注意机制解析支持。全部完成之后就可以直接开始训练模型了,这里基于我的DM码数据集完成模型结构修改之后的YOLOv8注意力模型的训练,命令行跟以前唯一不同的是需要从指定修改的YAML文件开始训练,才是对的,训练的命令行如下:

yolo train model=yolov8.yaml data=dm_dataset.yaml epochs=15 imgsz=640 batch=1

4464ef12-380a-11ee-9e74-dac502259ad0.png

4485fbc6-380a-11ee-9e74-dac502259ad0.png

44d52be2-380a-11ee-9e74-dac502259ad0.png

ONNX导出与推理测试

然后导出ONNX格式模型,设置一下opset=11 会有好处。

yolo export model=runsdetect	rain10weightsest.pt format=onnx

44e8caf8-380a-11ee-9e74-dac502259ad0.png

导出ONNX格式也可以啦。

预测推理

yolo predict mode=detect model=runsdetect	rain10weightsest.onnx

4522bed4-380a-11ee-9e74-dac502259ad0.png

454682ec-380a-11ee-9e74-dac502259ad0.png

从此又解锁了YOLOv8模型结构+各种注意力机制的即插即用从训练到导出部署技能。





审核编辑:刘清

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信