yolov8-更换卷积模块-ContextGuidedBlock_Down

源码解读

class ContextGuidedBlock_Down(nn.Module):"""the size of feature map divided 2, (H,W,C)---->(H/2, W/2, 2C)"""def __init__(self, nIn, dilation_rate=2, reduction=16):"""args:nIn: the channel of input feature mapnOut: the channel of output feature map, and nOut=2*nIn"""super().__init__()nOut = nIn * 2self.conv1x1 = ConvBNPReLU(nIn, nOut, 3, 2)  # size/2, channel: nIn--->nOutself.F_loc = ChannelWiseConv(nOut, nOut, 3, 1)self.F_sur = ChannelWiseDilatedConv(nOut, nOut, 3, 1, dilation_rate)self.bn = nn.BatchNorm2d(2 * nOut, eps=1e-3)self.act = nn.PReLU(2 * nOut)self.reduce = Conv(2 * nOut, nOut, 1, 1)  # reduce dimension: 2*nOut--->nOutself.F_glo = FGlo(nOut, reduction)def forward(self, input):output = self.conv1x1(input)loc = self.F_loc(output)sur = self.F_sur(output)joi_feat = torch.cat([loc, sur], 1)  # the joint featurejoi_feat = self.bn(joi_feat)joi_feat = self.act(joi_feat)joi_feat = self.reduce(joi_feat)  # channel= nOutoutput = self.F_glo(joi_feat)  # F_glo is employed to refine the joint featurereturn output

模块:ConvBNPReLU,是一个卷积层,没有偏置项,先卷积,在归一化,在经过PReLU激活函数。

模块:ChannelWiseConv,是一个通道卷积操作。在标准的卷积中,每个卷积核都会跨输入特征图的所有通道进行卷积操作,这意味着输出的每个通道都是来自输入的所有通道的信息融合。在通道卷积中,每个卷积核只在对应的单个输入通道上操作,而不是跨通道。因此,每个输出通道的特征仅由对应的单个输入通道计算得出。通道卷积,对应的参数量更少,适合于移动端和嵌入式的部署。

模块:ChannelWiseDilatedConv,是一个空洞卷积,空洞卷积适用于处理具有层次化结构或多尺度特征的任务,捕捉更广泛的上下文信息。相当于扩大了卷积核,扩大的部分补0。

Relu与PRelu激活函数的对比。

模块:FGlo,nn.AdaptiveAvgPool2d(1) 是 PyTorch 中的一个自适应平均池化层,其目的是对输入的特征图进行全局平均池化操作,将空间特征转换成全局特征,使得网络能够处理不同尺寸的输入。nn.Linear()就是一个线性变换,相当于线性代数中矩阵的乘法。

总:卷积模块ContextGuidedBlock_Down,更易用于捕获局部特征、周围上下文和全局上下文,并将这些信息融合起来以提高准确性。

修改

yaml文件

task.py文件

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

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

相关文章

Hack The Box-Bizness

目录 信息收集 nmap dirsearch WEB Get shell 提权 get user flag get root flag 信息收集 nmap 端口扫描┌──(root㉿ru)-[~/kali/hackthebox] └─# nmap -p- 10.10.11.252 --min-rate 10000 -oA port Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-03-04 1…

力扣 第 387 场周赛 解题报告 | 珂学家 | 离散化树状数组 + 模拟场

前言 整体评价 手速场模拟场,思路和解法都蛮直接的。 所以搞点活 如果T2,如果不固定左上角,批量查询某个点为左上角,求满足总和 ≤ k \le k ≤k的子矩阵个数 如果T2,如果不固定左上角,求总和 ≤ k \le k…

Spring的Bean的生命周期 | 有图有案例

Spring的Bean的生命周期 Spring的Bean的生命周期整体过程实例化初始化服务销毁循环依赖问题 完整生命周期演示 Spring的Bean的生命周期 Spring Bean的生命周期:从Bean的实例化之后,通过反射创建出对象之后,到Bean称为一个完整的对象&#xf…

快上车:什么是人工智能?人工智能和普通程序的区别

什么是人工智能? 虽然AI历史很悠久,上个世纪50年代就有各种概念,但是发展很慢。第一次对人类的冲击就是1997年IBM深蓝击败国际象棋世界冠军,引起了人们的广泛关注,之后又销声匿迹。突然间2016人工智能alphaGO战胜了围…

具身智能计算系统,机器人时代的 Android | 新程序员

【导读】具身智能作为一种新兴的研究视角和方法论,正在刷新我们对智能本质及其发展的理解:传统的 AI 模型往往将智能视为一种独立于实体存在的抽象能力,而具身智能则主张智能是实体与其环境持续互动的结果。 本文深度剖析了具身智能计算系统…

程序员如何选择职业赛道?

一、自我评估与兴趣探索 程序员选择职业赛道时,可以考虑以下几个关键因素: 1、兴趣与热情:首先要考虑自己的兴趣和热情,选择符合个人喜好和激情的领域,能够激励自己持续学习和进步。 2、技术能力&am…

mysql5.7配置主从

原理: MySQL主从复制的工作原理如下:1. 主服务器产生Binlog日志当主服务器的数据库发生数据修改操作时,如INSERT、UPDATE、DELETE语句执行,主服务器会记录这些操作的日志信息到二进制日志文件中。2. 从服务器读取Binlog日志 从服务器会向主服务器发送请求,主服务器把…

微信小程序开发学习笔记《18》uni-app框架-网络请求与轮播图

微信小程序开发学习笔记《18》uni-app框架-网络请求 博主正在学习微信小程序开发,希望记录自己学习过程同时与广大网友共同学习讨论。建议仔细阅读uni-app对应官方文档 一、下载网络请求包 这个包是以前黑马程序员老师写的一个包,跟着课程学习&#x…

Open3D(C++) 指定点数的体素滤波

目录 一、算法原理1、算法过程2、参考文献二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT。 一、算法原理 1、算法过程 对于数据量较大的点云,在后期进行配准时会影响计算效率。而体素格网…

LCR 170. 交易逆序对的总数

解题思路: 归并排序,在归并的过程中不断计算逆序对的个数 count mid -i 1;的来源见下图,因为两个数组都是单调递增的,所以如果第一个数组的前一个元素大于第二个数组的对应元素,那么第一个数组的这一元素…

借助Aspose.SVG图像控件,在 C# 中将图像转换为 Base64

Base64 编码是一种二进制到文本的编码方案,可有效地将二进制数据转换为 ASCII 字符,为数据交换提供通用格式。在某些情况下,我们可能需要将JPG或PNG图像转换为 Base64 字符串数据。在这篇博文中,我们将学习如何在 C# 中将图像转换…

分享经典、现代和前沿软件工程课程

随着信息技术的发展,软件已经深入到人类社会生产和生活的各个方面。软件工程是将工程化的方法运用到软件的开发、运行和维护之中,以达到提高软件质量,降低开发成本的目的。软件工程已经成为当今最活跃、最热门的学科之一。 本次软件工程MOOC课…

现在如何才能开通微信公众号留言功能?

为什么公众号没有留言功能?2018年2月12日之后直到现在,新注册公众号的运营者会发现一个问题:无论是个人还是企业的公众号,在后台都找不到留言功能了。这对公众号来说绝对是一个极差的体验,少了一个这么重要的功能&…

万村乐数字乡村系统开源代码:革命性引领,助推乡村振兴新篇章

如今,国际社会普遍认为信息化、数字化已是重大且不可逆转的发展趋势,如何让广大农村地区充分分享到这个发展带来的红利,从而提升农村的经济活力,确保村民生活质量不断优化,已然成为我们需要认真研究并积极解决的重大议…

Window下编写的sh文件在Linux/Docker中无法使用

Window下编写的sh文件在Linux/Docker中无法使用 一、sh文件目的1.1 初始状态1.2 目的 二、过程与异常2.1 首先获取标准ubuntu20.04 - 正常2.2 启动ubuntu20.04容器 - 正常2.3 执行windows下写的preInstall文件 - 报错 三、检查和处理3.1 评估异常3.2 处理异常3.3 调整后运行测试…

uniapp+vue基于Android的图书馆借阅系统qb4y3-nodejs-php-pyton

uni-app框架:使用Vue.js开发跨平台应用的前端框架,编写一套代码,可编译到Android、小程序等平台。 框架支持:springboot/django/php/Ssm/flask/express均支持 前端开发:vue 语言:pythonjavanode.jsphp均支持 运行软件:idea/eclip…

2023天津公租房网上登记流程图,注册到信息填写

2023年天津市公共租赁住房网上登记流程图 小编为大家整理了天津市公共租赁住房网上登记流程,从登记到填写信息。 想要体验的朋友请看一下。 申请天津公共租赁住房时拒绝申报家庭情况会怎样? 天津市住房保障家庭在享受住房保障期间,如在应申…

智慧草莓基地:Java与SpringBoot的技术革新

✍✍计算机毕业编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java、…

xss.haozi:0x00

0x00没有什么过滤所以怎么写都没有关系有很多解 <script>alert(1)</script>

【Linux取经路】文件系统——inode与软硬链接

文章目录 一、前言二、认识硬件——磁盘2.1 磁盘的存储构成2.2 磁盘的逻辑抽象 三、操作系统对磁盘的使用3.1 再来理解创建文件3.2 再来理解删除文件3.3 再来理解目录 四、硬链接五、软链接六、结语 一、前言 在之前的【Linux取经路】文件系统之被打开的文件——文件描述符的引…