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

YOLOv5改进——添加SimAM注意力机制

目录

一、SimAM注意力机制核心代码

二、修改common.py

三、修改yolo.py

​四、建立yaml文件 

五、验证

六、出现RuntimeError问题

七、CA注意力机制


一、SimAM注意力机制核心代码

在models文件夹下新建modules文件夹,在modules文件夹下新建一个py文件。这里为simam.py。复制以下代码到文件里面。

import torch
import torch.nn as nn


class SimAM(torch.nn.Module):
    def __init__(self, channels = None, e_lambda = 1e-4):
        super(SimAM, self).__init__()

        self.activaton = nn.Sigmoid()
        self.e_lambda = e_lambda

    def __repr__(self):
        s = self.__class__.__name__ + '('
        s += ('lambda=%f)' % self.e_lambda)
        return s

    @staticmethod
    def get_module_name():
        return "simam"

    def forward(self, x):

        b, c, h, w = x.size()
        
        n = w * h - 1

        x_minus_mu_square = (x - x.mean(dim=[2,3], keepdim=True)).pow(2)
        y = x_minus_mu_square / (4 * (x_minus_mu_square.sum(dim=[2,3], keepdim=True) / n + self.e_lambda)) + 0.5

        return x * self.activaton(y)

注意:很多改进教程都是将代码直接复制到common.py文件,如果改进机制多了容易造成混乱。建议创建一个modules文件夹,将改进机制放里面方便管理。

二、修改common.py

在common.py文件中,在前面的部分添加以下代码,导入GhostV2.py的内容:

from models.modules.simam import *

三、修改yolo.py

在yolo.py文件中,在导入common模块的上面一行添加以下代码,导入GhostV2.py的内容:

from models.modules.simam import *

注意:这里位置不要搞错,不然可能会找不到导入的模块。

如下图所示: 


http://www.kler.cn/a/348870.html

相关文章:

  • 算法收敛的一些证明方法与案例
  • 利用 HandBrake 压制视频
  • springboot使用第三方SDK类库
  • 你还在手动绘制思维导图?快来看看这4款在线神器,Top级推荐
  • Vue项目中使用ECharts
  • Matlab实现海鸥优化算法优化回声状态网络模型 (SOA-ESN)(附源码)
  • 【Windows命令】Windows下启动Nginx后,在任务管理器里面没有发现nginx.exe进程
  • 棉花叶片病害虫害检测数据集
  • 保护 -- 1+1保护与1:1保护
  • IOS APP初体验-第1课:如何在Mac中真机调试
  • 一篇 带你了解 XSS——(下篇)
  • NewStar CTF 2024 re方向 week2 wp
  • Geist「Polter」测试网现已上线——不可错过的关键信息
  • 电脑插上U盘不显示怎么回事?怎么解决?
  • IT基础监控运维:监控易的深度解析与应用
  • Python网络爬虫
  • 大模型烧钱战,百度云亟需突围之路
  • AD9680(adc直采芯片)使用说明
  • Java:数据结构-队列(Queue)
  • SpringBoot教程(三十二) | SpringBoot集成Skywalking链路跟踪