当前位置: 首页 > 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。

相关文章:

  • AI大模型学习三十、ubuntu安装comfyui
  • 让学习回归到技术上来(技术 !=== 死记硬背)
  • 项目启动以及Vue初识
  • 小白成长之路-计算机网络(四)
  • Axure中继器学习笔记
  • 磁盘管理练习题
  • RagFlow参数配置测试
  • 行为型:命令模式
  • 题解——相交链表(力扣160 easy)
  • 详解MySQL调优
  • SAAS架构设计2-流程图-用户与租户之间对应关系图
  • 大模型(7)——向量模型(向量化存储)
  • 第三章、运动学逆解(双足轮根据腿高求舵机角度)
  • 跨境快消品市场迎来爆发拐点:解码亚马逊“超级快消周“首日战报
  • 5G 网络中的寻呼流程
  • 聚焦北京央美备考画室:探寻实力之巅
  • java的vscode扩展插件
  • 实验设计与分析(第6版,Montgomery)第3章单因子实验:方差分析3.11思考题3.6 R语言解题
  • 【会员专享数据】1980—2022年中国0.1°分辨率逐日、逐月、逐年风速栅格数据
  • 数据库表添加索引
  • 手册设计网站/做销售怎么和客户聊天
  • 宁夏建设银行发行寄念币网站/官网seo怎么做
  • wordpress主题替换/百度seo排名培训优化
  • 在什么网站做贸易好/seo零基础培训
  • 本人想求做网站/南宁关键词排名公司
  • 怎么自己做淘宝客网站/一站式网络推广服务