YOLOv8源码到底在哪?
很多人也想跟修改YOLOv5源码一样的方式去修改YOLOv8的源码,但是在github上面却发现找到的YOLOv8项目下面TAG分支是空的,然后就直接从master/main下面把源码克隆出来一通修改了,其实这种方式风险很高,而且也不是正确的选择,原因在于Master/main分支是工作跟合并的代码主仓,不是发布的版本代码,开源项目团队开发者随时随地都在修改代码,很可能导致引入新BUG,直接使用master/main分支的下面的代码会有两个致命问题:
1. 无法标记版本信息 2. 无法确信代码的是否含有致命BUG灵魂拷问,YOLOv8对应版本的源代码究竟在哪里?其实对Python安装包稍微了解一下你就知道了,以我自己为例,我是用pip方式安装YOLOv8的,查找一下安装好的YOLOv8包目录应该如下(默认情况下):
C:UsersAdministratorAppDataLocalProgramsPythonPython38Libsite-packages然后找到下面的两个文件夹,源码就在这里了。
YOLOv8添加SE注意力模块
分别修改YOLOv8的模型描述文件yolov8.yaml,模型加载与定义文件task.py与模块结构化实现文件block.py,修改的内容跟YOLOv5注意力机制添加完全一致。修改yolov8.yaml文件,这里我直接插入了SENet注意力模块,修改以后文件与之前的文件对比如下:
然后修改源码文件task.py与block.py 实现SENet注意机制解析支持。全部完成之后就可以直接开始训练模型了,这里基于我的DM码数据集完成模型结构修改之后的YOLOv8注意力模型的训练,命令行跟以前唯一不同的是需要从指定修改的YAML文件开始训练,才是对的,训练的命令行如下:
yolo train model=yolov8.yaml data=dm_dataset.yaml epochs=15 imgsz=640 batch=1
ONNX导出与推理测试
然后导出ONNX格式模型,设置一下opset=11 会有好处。
yolo export model=runsdetect rain10weightsest.pt format=onnx
导出ONNX格式也可以啦。
预测推理
yolo predict mode=detect model=runsdetect rain10weightsest.onnx
从此又解锁了YOLOv8模型结构+各种注意力机制的即插即用从训练到导出部署技能。
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !