首页 > 其他分享 >yolov8添加EffectiveSE 注意力模块

yolov8添加EffectiveSE 注意力模块

时间:2024-03-27 15:01:06浏览次数:26  
标签:__ Conv nn self yolov8 EffectiveSE 模块 BiFPN C2f

###################### BiFPN  ###################################

# BiFPN
# 两个特征图add操作
class BiFPN_Add2(nn.Module):
    def __init__(self, c1, c2):
        super(BiFPN_Add2, self).__init__()
        self.w = nn.Parameter(torch.ones(2, dtype=torch.float32), requires_grad=True)
        self.epsilon = 0.0001
        self.conv = nn.Conv2d(c1, c2, kernel_size=1, stride=1, padding=0)
        self.silu = nn.SiLU()

    def forward(self, x):
        w = self.w
        weight = w / (torch.sum(w, dim=0) + self.epsilon)
        return self.conv(self.silu(weight[0] * x[0] + weight[1] * x[1]))


# 三个特征图add操作
class BiFPN_Add3(nn.Module):
    def __init__(self, c1, c2):
        super(BiFPN_Add3, self).__init__()
        self.w = nn.Parameter(torch.ones(3, dtype=torch.float32), requires_grad=True)
        self.epsilon = 0.0001
        self.conv = nn.Conv2d(c1, c2, kernel_size=1, stride=1, padding=0)
        self.silu = nn.SiLU()

    def forward(self, x):
        w = self.w
        weight = w / (torch.sum(w, dim=0) + self.epsilon)
        return self.conv(self.silu(weight[0] * x[0] + weight[1] * x[1] + weight[2] * x[2]))


###################### BiFPN  ###################################

1.在ultralytics/nn/modules/block.py文件的最后加入上述代码。并在文件上方的__all__中加入下述标框代码

2.在ultralytics/nn/modules/__init__.py中加入下述标框代码

3.ultralytics/nn/tasks.py中加入下述标框代码

4.在ultralytics/cfg/models/v8目录下创建yolov8-BiFPN.yaml文件,复制下述代码。

# Ultralytics YOLO 

标签:__,Conv,nn,self,yolov8,EffectiveSE,模块,BiFPN,C2f
From: https://blog.csdn.net/qq_63632802/article/details/137077456

相关文章

  • BOSHIDA DC电源模块与其他电源模块的区别与优势
    BOSHIDADC电源模块与其他电源模块的区别与优势在现代电子设备中,电源模块是不可或缺的组成部分。电源模块的作用是将外部电源的电能转换为设备所需的电能进行供应。在电源模块的选择中,DC电源模块与其他电源模块有着明显的区别与优势。 首先,DC电源模块与其他电源模块的区别在......
  • Python pandas模块
    1、转换python字典类型为dataframe#!/usr/bin/envpython#-*-coding:utf-8-*-#__author__=#pandas>=1.5.3importpandasaspdpydict={'Dosage':'1.1.1.1,2.2.2.2,4.4.4.4,5.5.5.5','HalfLife':'6.6.6.6,7.7.7.7,8.8.8.......
  • enum模块
    文章目录enumauto()enumenum是Python的一个标准库,它提供了枚举类型(EnumeratedTypes)的支持。枚举类型是一种用户定义的类型,它包含了一组命名的常量。使用枚举类型可以使代码更清晰、更易读,因为它用具体的名字代替了数字或其他难以理解的标识符。在Python3.4......
  • 肖sir__python之模块7.1
    ython之模块一、模块的介绍(1)python模块,是一个python文件,以一个.py文件,包含了python对象定义和pyhton语句(2)python对象定义和python语句(3)模块让你能够有逻辑地组织你的python代码段。(4)把相关的代码分配到一个模块里能让你的代码更好用,更易懂(5)模块能定义函数,类和变量,模块里也能包含可......
  • Swoole 源码分析之 Coroutine 协程模块
    首发原文链接:Swoole源码分析之Coroutine协程模块大家好,我是码农先森。引言协程又称轻量级线程,但与线程不同的是;协程是用户级线程,不需要操作系统参与。由用户显式控制,可以在需要的时候挂起、或恢复执行。通过协程程序可以在执行的过程中保存当前的状态,并在恢复后从该状态处......
  • nginx stream 模块 编辑
    ### 一下为nginx-1.25.3版本为例,环境CentOS7.6!一、下载编辑在CentOS中安装Nginx并包含特定模块,你需要从源代码编译Nginx。以下是具体步骤:1.首先,你需要安装一些必要的开发工具和库。在命令行中输入以下命令:```bashsudoyuminstallgcc-c++pcrepcre-develzlibz......
  • 计算机各硬件模块负责的功能
    cpu       数学计算  字符操作  ,高速缓存  多次使用的指针 全局变量GPU      图形相关3维度物理学数学计算南北桥     鼠标键盘,CPU到南北桥到显卡和显卡GET内存  ,  显存不够使用内存条内存硬盘      ......
  • 非极大值抑制篇 | YOLOv8更换NMS之DIoU-NMS / CIoU-NMS / EIoU-NMS / GIoU-NMS / GIoU
    前言:Hello大家好,我是小哥谈。YOLOv8中的NMS指非极大值抑制(Non-MaximumSuppression),它是一种用于目标检测算法中的后处理技术。在检测到多个重叠的边界框时,NMS可以帮助选择最佳的边界框。NMS的工作原理是首先根据预测边界框的置信度对它们进行排序,然后从置信度最高的边界框开......
  • 0101支付安全-支付模块-项目实战
    文章目录一、信息安全的基础-机密性1相关概念2对称加密和非对称加密二、身份认证三摘要算法四、数字签名五、数字证书结语在支付过程中,设计多方的敏感信息,那么安全尤为重要。下面先简单介绍下,相关概念。一、信息安全的基础-机密性1相关概念明文:加密前的消......
  • 自然语言处理下载nltk模块库
    nltk安装目录nltk安装1.官方下载2.离线下载2.1下载nltk资料包2.2解压下载的资料包重命名2.2.1将解压后的packages文件夹重命名为nltk_data2.2.2查看将重命名的文件夹放在那个位置2.2.3将上述nltk_data文件夹放在2.2.2打印的位置处3.验证是否下载成功1.官......