YOLOv8创新魔改教程(一)如何进行模块创新

YOLOv8创新魔改教程(一)如何进行模块创新

YOLOv8创新魔改教程

本人研一,最近好多朋友问我要如何修改模型创新模块,就想着不如直接开个专栏歇一歇文章,也算是对自己学习的总结,本专栏以YOLOv8为例(后续会出其他模型的),手把手叫大家如何从零创新模块,喜欢的朋友可以点个关注喽。

(一)寻找创新点

我们想对模型创新时,要首先寻找创新点,如何寻找?对于研究目标是图像的朋友,可以关注一下CVPR ICCV这些计算机视觉的会议,大多情况下,我们的创新点就来自于这些期刊。

(二)github找创新点源码

这里我以《SCConv: Spatial and Channel Reconstruction Convolution for Feature Redundancy》这篇文章为例。大家可以看到这篇文章提出了一个叫SCConv的卷积模块。在这里插入图片描述
现在大家就可以去github找创新点源码了,有的文章会提供,有的则不会,不过也没事,github总有人会发表出来,大家直接去搜就可以。(https://github.com/cheng-haha/ScConv/blob/main/ScConv.py)
在这里插入图片描述

(三)将代码整合到自己的网络中

到这一步有的同学可能会开始头疼,我代码能力不行,我不会编程等等等等,我想和大家说的是,这一步超级的简单的,只需要会复制粘贴就好了

代码一般整合的部位

在YOLOv8中,我们的代码可以添加到 ultralytics/nn/modules/block.py中,接下来我带大家走一遍流程。

如何添加

第一步,打开 ultralytics/nn/modules/block.py这个文件,直接将我们找到的代码复制进来。
在这里插入图片描述
第二步,将创新模块导入,大家要把每个class的名称导入到block的__all__ ()的括号内,ultralytics/nn/modules/init.py文件中from .block import()的括号内和__all__ = ()的括号内,一共是三处,大家不要漏掉。
在这里插入图片描述

在这里插入图片描述

进行融合

使用YOLOv8的同学可能会发现,发表的论文大多数是对c2f模块的创新,所以我也举个例子方便大家参考。大家在block.py中,找到c2f模块,可以看到,里面有四处卷积可以供我们修改,其中Bottleneck有两处。
在这里插入图片描述

在这里插入图片描述
大家在修改的时候,建议大家开个新模块,改个名字在修改,比如要修改c2f
在这里插入图片描述

(三)测试代码

修改yaml文件,在这里建议大家创建一个新的。
将c2f换成我们融合后的,当然,也可以把卷积换成新的卷积。
在这里插入图片描述
运行成功!可能会出现一些报错,无非是模块没添加成功,大家根据错误提示修改就可以。

ScConv
感谢各位的点赞与支持,下一篇会更新添加注意力机制相关内容。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

「C++」类和对象2

🎇个人主页:Ice_Sugar_7 🎇所属专栏:C启航 🎇欢迎点赞收藏加关注哦! 文章目录 🍉前言🍉构造函数🍌参数🍌默认构造函数🥝两种类型🥝编译…

CentOS系统环境搭建(二十四)——借助Git实现一键部署

centos系统环境搭建专栏🔗点击跳转 文章目录 如何一键部署1.后端1.1 拉取代码1.2 打包1.2.1 如果打包没问题,只看这部分即可1.2.2 maven有问题看这一部分1.2.2.1 安装jdk1.2.2.2 Jdk路径寻找,使用命令1.2.2.3 由此可知,jdk路径为…

优化问题,详解静态优化

优化问题,尤其静态优化问题,在控制系统设计中随处可见,例如基于燃油经济性和驾驶体验的多目标优化的汽车发动机 MAP 标定,基于性能指标优化的飞行器结构设计参数优化,以实验数据与模型输出匹配为目标的电池 RC 等效电路…

K8S集群搭建redis集群的步骤

在Kubernetes(K8s)集群上搭建Redis集群涉及多个步骤,包括创建配置文件、部署StatefulSets和设置网络。以下是一个基本指南: 1. 准备Redis配置文件 首先,创建一个Redis配置文件(redis.conf)&am…

Python基础学习快速入门

文章目录 Number变量String字符串Def函数Class类List列表Tuple元组Dictionary字典Set集合值与引用类型if条件控制Loop循环 Number变量 python直接赋值,不需要定义变量类型。不需要**,逗号结尾符 使用print**直接进行输出 #赋值 a 1.0 print(a)a 7 print(a)p…

带删除的并查集

Almost Union-Find 支持三种操作 合并 x x x和 y y y所在的集合把 x x x移到 y y y所在的集合求 x x x所在的集合的元素个数和元素之和 操作1和3是基本的并查集的操作. 关键在于操作 2 2 2: 若使用朴素的并查集,把节点 1 1 1合并到 3 3 3所在的集合,会…

华为OD机试 - 最多购买宝石数目(Java JS Python C)

题目描述 橱窗里有一排宝石,不同的宝石对应不同的价格,宝石的价格标记为 gems[i] 0 ≤ i < nn = gems.length宝石可同时出售0个或多个,如果同时出售多个,则要求出售的宝石编号连续; 例如客户最大购买宝石个数为m,购买的宝石编号必须为:gems[i],gems[i+1],...,ge…

ES-ELSER 如何在内网中离线导入ES官方的稀疏向量模型(国内网络环境下操作方法)

ES官方训练了稀疏向量模型&#xff0c;用来支持语义检索。&#xff08;目前该模型只支持英文&#xff09; 最好是以离线的方式安装。在线的方式&#xff0c;在国内下载也麻烦&#xff0c;下载速度也慢。还不如用离线的方式。对于一般的生产环境&#xff0c;基本上也是网络隔离的…

SQL注入漏洞的检测及防御方法

SQL注入&#xff08;SQL Injection&#xff09;是一种广泛存在于Web应用程序中的严重安全漏洞&#xff0c;它允许攻击者在不得到授权的情况下访问、修改或删除数据库中的数据。这是一种常见的攻击方式&#xff0c;因此数据库开发者、Web开发者和安全专业人员需要了解它&#xf…

力扣labuladong——一刷day62

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、力扣1245. 树的直径二、力扣968. 监控二叉树三、力扣979. 在二叉树中分配硬币 前言 说过后序位置的特殊之处&#xff0c;后序位置可以接收到子树的信息&…

盘点68个Android游戏Game源码安卓爱好者不容错过

盘点68个Android游戏Game源码安卓爱好者不容错过 学习知识费力气&#xff0c;收集整理更不易。 知识付费甚欢喜&#xff0c;为咱码农谋福利。 Game下载链接&#xff1a;https://pan.baidu.com/s/1hWnuttrqTfwDKYvuVMuSwQ?pwd8888 提取码&#xff1a;8888 项目名称 2048…

混合使用Windows和Linux子系统的工具和命令

文章目录 在Windows中运行Linux命令使用PowerShell混合使用Linux和Windows命令通过power shell在Windows混合使用Linux工具在Linux中混合使用Windows 工具 推荐阅读 Windows和Linux的工具和命令可以通过WSL互换使用。 可以在Linux子系统中运行Windows命令&#xff0c;也可以在W…

LabVIEW在调用image.cpp或drawmgr.cpp因为DAbort而崩溃

LabVIEW在调用image.cpp或drawmgr.cpp因为DAbort而崩溃 出现下列问题&#xff0c;如何解决&#xff1f; 1. LabVIEW 程序因image.cpp或drawmgr.cpp中的错误而崩溃 2. 正在通过cRIO-9034运行独立的LabVIEW应用程序&#xff0c;但它因drawmgr.cpp中的错误而崩溃 …

SSM项目实战-POJO设计

1、schedule_db.sql CREATE DATABASE schedule_db CHARACTER SET utf8 ;USE schedule_db;CREATE TABLE sys_schedule (sid int NOT NULL AUTO_INCREMENT COMMENT 日程id,uid int DEFAULT NULL COMMENT 用户id,title varchar(50) DEFAULT NULL COMMENT 标题,completed int DEFAU…

Apache APISIX 体验指南

APISIX 体验指南 所有的 sh 脚本通过 git bash 执行。 出现错误仔细核对文档。 github 地址&#xff1a; 使用 docker 安装 apisix 确保本地安装 Docker 和 Docker-compose 如未安装参开以下文档安装&#xff1a; Docker&#xff1a;https://docs.docker.com/engine/install/c…

Python 中的 FileSystem Connector:打通文件系统的便捷通道

更多Python学习内容&#xff1a;ipengtao.com 大家好&#xff0c;我是涛哥&#xff0c;今天为大家分享 Python 中的 FileSystem Connector&#xff1a;打通文件系统的便捷通道&#xff0c;全文4100字&#xff0c;阅读大约11分钟。 在现代软件开发中&#xff0c;文件系统是不可或…

1+x网络系统建设与运维(中级)-练习题

一.给设备重命名 同理可得&#xff0c;所有交换机和路由器都用一下命令配置 <Huawei>sys [Huawei]sysn LSW1 二.配置VLAN LSW1&#xff1a; [LSW1]vlan batch 10 20 [LSW1]int e0/0/1 [LSW1-Ethernet0/0/1]port link-type access [LSW1-Ethernet0/0/1]port default vlan…

Leetcode 剑指 Offer II 055. 二叉搜索树迭代器

题目难度: 中等 原题链接 今天继续更新 Leetcode 的剑指 Offer&#xff08;专项突击版&#xff09;系列, 大家在公众号 算法精选 里回复 剑指offer2 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 实现一个二叉搜索树迭代器类 BSTIterator &#xff0c;表示一个按…

Linux破解用户密码【基于redhat9】

Linux破解用户密码【基于redhat9】 操作步骤&#xff1a; 重启虚拟机&#xff0c;选择第二行&#xff0c;按下e键在倒数第二行的末尾加入 rd.break,按下ctrlx键&#xff0c;进入终端界面重新挂载/sysroot为读写切换到bash修改用户密码创建 /.autorelabel 文件使SELinux安全策略…

【容器】Docker打包Linux操作系统迁移

0x0 场景 因老服务器操作系统文centos6.5&#xff0c;现要迁移至uos v20 1050a&#xff08;底层centos8&#xff09;&#xff0c;其中需要迁移的应用组件有&#xff1a; mysql 、tomcat、apachehttpd&#xff0c;因版本跨越太大&#xff0c;导致centos8直接安装无法完全恢复原…