yolov5项目增加注意力机制

1. 添加步骤

1.1 models/common.py 加入新增的网络结构

1.2 在models/yolo.py注册组件

1.3 models/yolov5_xxx.yaml 新建一个文件夹,修改模型结构配置

1.3.1 注意力模块的添加位置

注意力机制可以添加在backbone,Neck,Head等部分,常见的有两种,一种是在主干的SPPF前添加一层;二是将backbone中的C3全部替换。不同的位置效果可能不同,需要我们用数据集反复测试。

这就是所谓的调参

1.3.2 修改后续层的参数

当在网络中添加了新的层之后,该层后续层的编号会发生变化。

1. Concat

如原本Concat层的系数也要修改,[-1, 14],[-1, 10] -> [-1, 15], [-1, 11]

2. Detect

同样Detec指定的是[17, 20, 23]层,在添加了SE注意力层之后,就需要对Detect进行修改,[17, 20, 23] -> [18, 21, 24]

1.4 验证是否加入成功

1.5 train.py 修改'--cfg'默认参数,训练时指定模型结构配置文件

2. 增加SE注意力机制

2.1 新增SE模块

放在common.py中

2.2 注册组件

yolo.py

2.3 创建yolov5s_SE.yaml文件

2.3.1 将SE模块写入第9层

2.3.2 修改后续层的参数

Concat

改为

Detect

更改为

3. 验证是否加入成功

修改yolo.py

运行yolo.py 第9层成功加入SE模块

4. 修改train.py

相关推荐
点云SLAM1 小时前
Eigen 中矩阵的拼接(Concatenation)与 分块(Block Access)操作使用详解和示例演示
人工智能·线性代数·算法·矩阵·eigen数学工具库·矩阵分块操作·矩阵拼接操作
木枷2 小时前
NAS-Bench-101: Towards Reproducible Neural Architecture Search
人工智能·物联网
BAOYUCompany3 小时前
暴雨服务器更懂人工智能+
运维·服务器·人工智能
飞哥数智坊3 小时前
Coze实战第17讲:工资条自动拆分+一对一邮件发送
人工智能·coze
cwn_3 小时前
自然语言处理NLP (1)
人工智能·深度学习·机器学习·自然语言处理
点云SLAM3 小时前
PyTorch中flatten()函数详解以及与view()和 reshape()的对比和实战代码示例
人工智能·pytorch·python·计算机视觉·3d深度学习·张量flatten操作·张量数据结构
智海观潮3 小时前
Unity Catalog与Apache Iceberg如何重塑Data+AI时代的企业数据架构
大数据·人工智能·ai·iceberg·catalog
爱分享的飘哥3 小时前
第三篇:VAE架构详解与PyTorch实现:从零构建AI的“视觉压缩引擎”
人工智能·pytorch·python·aigc·教程·生成模型·代码实战
柏峰电子4 小时前
市政道路积水监测系统:守护城市雨天出行安全的 “智慧防线”
大数据·人工智能·安全
蓑雨春归4 小时前
自主智能Agent如何重塑工作流自动化:技术、经济与未来展望
人工智能·chatgpt·自动化