当前位置: 首页 > news >正文

改进yolo11模型学习

文章目录

  • YOLOv8本地环境配置与调试自定义模块全过程(含断点调试)
    • 配置环境
      • 创建 Anaconda 虚拟环境
      • 安装 PyTorch
    • 下载 YOLOv8 代码
    • 安装依赖
    • 新建训练入口脚本 `train.py`
    • 修改 `data.yaml`
    • 设置解释器(确保使用 Anaconda 的 yolov8 虚拟环境)
    • 运行报错解决
      • 原因分析:
      • 解决办法:
    • 成功运行模型后,进行断点调试
      • 查找并打断点(以 sppf 为例)
    • 加入 ViT 模块进行调试
    • 修改模型结构(以 yolov8n 为例)
    • 验证前向传播
    • 小技巧:快速定位卷积层
    • 总结

YOLOv8本地环境配置与调试自定义模块全过程(含断点调试)

学习视频:【教程】改进yolov8,缝合yolov8
up主:学不会电磁场


配置环境

创建 Anaconda 虚拟环境

conda create -n yolov8 python=3.8

可根据需要修改 Python 版本,建议 3.8 是因为与 YOLOv8 和 PyTorch 的兼容性好。

安装 PyTorch

pip install torch==1.8.1+cu111 torchvision==0.9.1+cu111 torchaudio==0.8.1 -f https://download.pytorch.org/whl/torch_stable.html

下载 YOLOv8 代码

链接: https://pan.baidu.com/s/1fTd5_OCKjz5JxWuVxPHVjg?pwd=6qv7 提取码: 6qv7

将代码下载并解压至本地,例如路径为:

G:\BaiduNetdiskDownload\yolo_change\yolov8\YOLOv8-main

把所有的文件解压后放在一起:

解压文件结构


安装依赖

cd G:\BaiduNetdiskDownload\yolo_change\yolov8\YOLOv8-main
pip install -r requirements.txt

新建训练入口脚本 train.py

内容如下:

from ultralytics import YOLOif __name__ == "__main__":model = YOLO("ultralytics/models/v8/yolov8n.yaml")model.train(data="dataset/data.yaml", epochs=300, imgsz=640, batch=2)

修改 data.yaml

train: G:/BaiduNetdiskDownload/yolo_change/yolov8/YOLOv8-main/dataset/train/images
val: G:/BaiduNetdiskDownload/yolo_change/yolov8/YOLOv8-main/dataset/valid/images
test: G:/BaiduNetdiskDownload/yolo_change/yolov8/YOLOv8-main/dataset/test/imagesnc: 10
names: ['cat', 'chicken', 'cow', 'dog', 'fox', 'goat', 'horse', 'person', 'racoon', 'skunk']

设置解释器(确保使用 Anaconda 的 yolov8 虚拟环境)

切换解释器


运行报错解决

当运行 train.py 报如下错误:

ModuleNotFoundError: No module named 'cv2'

原因分析:

YOLOv8 使用了 OpenCV 进行图像处理,当前环境未安装 cv2 模块。

解决办法:

pip install opencv-python

成功运行模型后,进行断点调试

查找并打断点(以 sppf 为例)

找到 modules.py 文件中 sppf 模块的位置:

打断点

运行调试,查看模型结构:

调试运行

确认模型能运行时,观察以下变量的 shape:

self.cv2(torch.cat((x, y1, y2, self.m(y2)), 1)).shape

输出shape


加入 ViT 模块进行调试

先在 vit.py 中编写自己的模块,测试无误后:

运行ViT

vit.py 中的模块复制粘贴至 modules.py 中,确保模块功能正常。


修改模型结构(以 yolov8n 为例)

将自定义模块插入网络第10层,并修改后续结构以匹配输出维度:

插入模块

记得在 yaml 文件中更新该结构。


验证前向传播

再次打断点调试,确认进入了自定义模块的 forward 流程:

进入前向传播


小技巧:快速定位卷积层

若要调试模型中第一个卷积层,可结合名称查找:

卷积层


总结

本文从环境配置、训练脚本编写、运行调试到模型结构修改,完整记录了 YOLOv8 本地部署及自定义模块调试的全过程。你可以在此基础上深入修改结构、添加注意力模块或融合 Transformer。

http://www.xdnf.cn/news/680275.html

相关文章:

  • 真话与假话
  • #跟着Lucky学鸿蒙# HarmonyOS NEXT 工程介绍
  • jenkins-jenkins简介
  • 【Redis】Redis使用规范
  • 鸿蒙OSUniApp 制作带有分页功能的列表组件#三方框架 #Uniapp
  • Python实战:打造高效通讯录管理系统
  • 汽车副水箱液位传感器介绍
  • 项目中的流程管理之Power相关流程管理
  • 牛客周赛 Round 94
  • Linux中磁盘分区与挂载
  • c#基础08(数组)
  • 数据结构-散列表查找(哈希表)
  • qt QAxWidget
  • 嵌入式使用snprintf(str, sizeof(str), “ULV: %.3fV“,values);后出现小数部分丢失的错误以及解决方案
  • thinkadmin中使用layui日期选择器,数据库存储时间戳
  • 记录一ubuntu22.04做开机启动mysql、nginx、redis
  • java 数据输出占5列,右对齐
  • 柠檬(lemon)是什么东西?
  • 全视通智慧病房在护士站、病房及卫生间场景中的创新应用
  • brep2seq 源码笔记2
  • ISP图像处理算法之Demosaic
  • ns-3仿真_wifi发送链路简单解析
  • IEEE出版|2025年智能制造、机器人与自动化国际学术会议 (IMRA2025)
  • 精准调控:基于 SWMM 动态控制规则的合流制排水系统溢流污染防治技术
  • 开源模型应用落地-模型上下文协议(MCP)-安全认证的创新与实践探索(十)
  • 商城前端监控体系搭建:基于 Sentry + Lighthouse + ELK 的全链路监控实践
  • Unity Sherpa-onnx 笔记
  • Python冲刺10天-如何实现基本的矩阵运算
  • 多线程(1)
  • async和await如何捕获异常