网站开发的项目总结兰州做网站或小程序

bicheng/2026/1/17 13:26:30/文章来源:
网站开发的项目总结,兰州做网站或小程序,如何修改网站图片,wordpress文章搬家目录 简介 CBAM注意力机制原理及代码实现 原理 代码实现 GAM注意力机制 原理 代码实现 修改损失函数 YAML文件 完整代码 #x1f680;#x1f680;#x1f680;订阅专栏#xff0c;更新及时查看不迷路#x1f680;#x1f680;#x1f680; http://t.csdnimg.c…目录 简介 CBAM注意力机制原理及代码实现 原理 代码实现 GAM注意力机制 原理 代码实现 修改损失函数 YAML文件 完整代码 订阅专栏更新及时查看不迷路 http://t.csdnimg.cn/sVHxvhttp://t.csdnimg.cn/sVHxv 简介 Ultralytics 推出了最新版本的 YOLO 模型。注意力机制是提高模型性能最热门的方法之一。 本次将介绍几种常见的注意力机制这些注意力机制在大多数的数据集上均能有效的提升目标检测的精度/召回率/准确率。 CBAM注意力机制原理及代码实现 原理 CBAM注意力机制结构图 CBAMConvolutional Block Attention Module是一种用于卷积神经网络CNN的注意力机制它能够增强网络对输入特征的关注度提高网络性能。CBAM 主要包含两个子模块通道注意力模块Channel Attention Module和空间注意力模块Spatial Attention Module。 以下是CBAM注意力机制的基本原理 1. 通道注意力模块Channel Attention Module 输入经过卷积层的特征图。 处理步骤 对每个通道进行全局平均池化得到通道的全局平均值。 通过两个全连接层将全局平均值映射为两个权重向量一个用于缩放一个用于偏置。 将这两个权重向量与原始特征图相乘以加权调整每个通道的重要性。 2. 空间注意力模块Spatial Attention Module** 输入通道注意力模块的输出。 处理步骤      对每个通道的特征图进行分别的最大池化和平均池化得到两个空间特征图。      将这两个空间特征图相加通过一个卷积层产生一个权重图。      将原始特征图与权重图相乘以加权调整每个空间位置的重要性。 3. 整合    将通道注意力模块和空间注意力模块的输出相乘得到最终的注意力增强特征图。    将这个注意力增强的特征图传递给网络的下一层进行进一步处理。 CBAM的关键优势在于它能够同时考虑通道和空间信息有助于网络更好地理解和利用输入特征。这种注意力机制有助于提高网络在视觉任务上的性能使其能够更有针对性地关注重要的特征。 代码实现 路径./ultralytics/nn/modules/conv.py class ChannelAttention(nn.Module):Channel-attention module https://github.com/open-mmlab/mmdetection/tree/v3.0.0rc1/configs/rtmdet.def __init__(self, channels: int) - None:super().__init__()self.pool nn.AdaptiveAvgPool2d(1)self.fc nn.Conv2d(channels, channels, 1, 1, 0, biasTrue)self.act nn.Sigmoid()def forward(self, x: torch.Tensor) - torch.Tensor:return x * self.act(self.fc(self.pool(x)))class SpatialAttention(nn.Module):Spatial-attention module.def __init__(self, kernel_size7):Initialize Spatial-attention module with kernel size argument.super().__init__()assert kernel_size in (3, 7), kernel size must be 3 or 7padding 3 if kernel_size 7 else 1self.cv1 nn.Conv2d(2, 1, kernel_size, paddingpadding, biasFalse)self.act nn.Sigmoid()def forward(self, x):Apply channel and spatial attention on input for feature recalibration.return x * self.act(self.cv1(torch.cat([torch.mean(x, 1, keepdimTrue), torch.max(x, 1, keepdimTrue)[0]], 1)))class CBAM(nn.Module):Convolutional Block Attention Module.def __init__(self, c1, kernel_size7): # ch_in, kernelssuper().__init__()self.channel_attention ChannelAttention(c1)self.spatial_attention SpatialAttention(kernel_size)def forward(self, x):Applies the forward pass through C1 module.return self.spatial_attention(self.channel_attention(x)) 添加完代码以后需要在./ultralytics/nn/tasks.py进行注册 GAM注意力机制 原理 目标的设计是一种减少信息缩减并放大全局维度交互特征的机制。我们采用 CBAM 的顺序通道空间注意力机制并重新设计子模块。整个过程如图所示。 GAM结构图 通道注意力机制 通道注意力子模块使用 3D 排列来保留三个维度的信息。然后它使用两层 MLP多层感知器放大跨维度通道空间依赖性。 MLP是一种编码器-解码器结构其缩减比为r与BAM相同。通道注意子模块如图所示。  通道注意力子模块 空间注意力机制 在空间注意力子模块中为了关注空间信息我们使用两个卷积层进行空间信息融合。我们还使用与 BAM 相同的通道注意子模块的缩减率 r。同时最大池化会减少信息并产生负面影响。我们删除池化以进一步保留特征图。因此空间注意力模块有时会显着增加参数的数量。为了防止参数显着增加我们在 ResNet50 中采用带有通道洗牌的组卷积。没有组卷积的空间注意力子模块如图所示。  空间注意力子模块 代码实现 代码添加在 ./ultralytics/nn/modules/conv.py 中同样需要在task.py中注册 class GAM_Attention(nn.Module):def __init__(self, c1, c2, groupTrue, rate4):super(GAM_Attention, self).__init__()self.channel_attention nn.Sequential(nn.Linear(c1, int(c1 / rate)),nn.ReLU(inplaceTrue),nn.Linear(int(c1 / rate), c1))self.spatial_attention nn.Sequential(nn.Conv2d(c1, c1 // rate, kernel_size7, padding3, groupsrate) if group else nn.Conv2d(c1, int(c1 / rate),kernel_size7,padding3),nn.BatchNorm2d(int(c1 / rate)),nn.ReLU(inplaceTrue),nn.Conv2d(c1 // rate, c2, kernel_size7, padding3, groupsrate) if group else nn.Conv2d(int(c1 / rate), c2,kernel_size7,padding3),nn.BatchNorm2d(c2))def forward(self, x):b, c, h, w x.shapex_permute x.permute(0, 2, 3, 1).view(b, -1, c)x_att_permute self.channel_attention(x_permute).view(b, h, w, c)x_channel_att x_att_permute.permute(0, 3, 1, 2)# x_channel_attchannel_shuffle(x_channel_att,4) #last shufflex x * x_channel_attx_spatial_att self.spatial_attention(x).sigmoid()x_spatial_att channel_shuffle(x_spatial_att, 4) # last shuffleout x * x_spatial_att# outchannel_shuffle(out,4) #last shufflereturn out 修改损失函数 WIoU是一种新型的损失函数代码实现 def WIoU(cls, pred, target, selfNone):self self if self else cls(pred, target)dist torch.exp(self.l2_center / self.l2_box.detach())return self._scaled_loss(dist * self.iou) 这个其实就是修改了loss.py中的BboxLoss在本段代码的第十二行将type改成了WIoU class BboxLoss(nn.Module):def __init__(self, reg_max, use_dflFalse):Initialize the BboxLoss module with regularization maximum and DFL settings.super().__init__()self.reg_max reg_maxself.use_dfl use_dfldef forward(self, pred_dist, pred_bboxes, anchor_points, target_bboxes, target_scores, target_scores_sum, fg_mask):IoU loss.weight target_scores.sum(-1)[fg_mask].unsqueeze(-1)loss,iou bbox_iou(pred_bboxes[fg_mask], target_bboxes[fg_mask], xywhFalse,type_WIoU)loss_iouloss.sum()/target_scores_sum# DFL lossif self.use_dfl:target_ltrb bbox2dist(anchor_points, target_bboxes, self.reg_max)loss_dfl self._df_loss(pred_dist[fg_mask].view(-1, self.reg_max 1), target_ltrb[fg_mask]) * weightloss_dfl loss_dfl.sum() / target_scores_sumelse:loss_dfl torch.tensor(0.0).to(pred_dist.device)return loss_iou, loss_dfl YAML文件 # Ultralytics YOLO , AGPL-3.0 license # YOLOv8 object detection model with P3-P5 outputs. For Usage examples see https://docs.ultralytics.com/tasks/detect# Parameters nc: 9 # number of classes scales: # model compound scaling constants, i.e. modelyolov8n.yaml will call yolov8.yaml with scale n# [depth, width, max_channels]n: [0.33, 0.25, 1024] # YOLOv8n summary: 225 layers, 3157200 parameters, 3157184 gradients, 8.9 GFLOPss: [0.33, 0.50, 1024] # YOLOv8s summary: 225 layers, 11166560 parameters, 11166544 gradients, 28.8 GFLOPsm: [0.67, 0.75, 768] # YOLOv8m summary: 295 layers, 25902640 parameters, 25902624 gradients, 79.3 GFLOPsl: [1.00, 1.00, 512] # YOLOv8l summary: 365 layers, 43691520 parameters, 43691504 gradients, 165.7 GFLOPsx: [1.00, 1.25, 512] # YOLOv8x summary: 365 layers, 68229648 parameters, 68229632 gradients, 258.5 GFLOPs# YOLOv8.0n backbone backbone:# [from, repeats, module, args]- [-1, 1, Conv, [64, 3, 2]] # 0-P1/2- [-1, 1, Conv, [128, 3, 2]] # 1-P2/4- [-1, 3, C2f, [128, True]]- [-1, 1, Conv, [256, 3, 2]] # 3-P3/8- [-1, 6, C2f, [256, True]]- [-1, 1, Conv, [512, 3, 2]] # 5-P4/16- [-1, 6, C2f, [512, True]]- [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32- [-1, 3, C2f, [1024, True]]- [-1, 1, SPPF, [1024, 5]] # 9# YOLOv8.0n head head:- [-1, 1, nn.Upsample, [None, 2, nearest]]- [[-1, 6], 1, Concat, [1]] # cat backbone P4- [-1, 3, C2f, [512]] # 12- [-1, 1, GAM_Attention, [512,512]]- [-1, 1, nn.Upsample, [None, 2, nearest]]- [[-1, 4], 1, Concat, [1]] # cat backbone P3- [-1, 3, C2f, [256]] # 16 (P3/8-small)- [-1, 1, GAM_Attention, [256,256]]- [-1, 1, Conv, [256, 3, 2]]- [[-1, 12], 1, Concat, [1]] # cat head P4- [-1, 3, C2f, [512]] # 20 (P4/16-medium)- [-1, 1, GAM_Attention, [512,512]]- [-1, 1, Conv, [512, 3, 2]]- [[-1, 9], 1, Concat, [1]] # cat head P5- [-1, 3, C2f, [1024]] # 24 (P5/32-large)- [-1, 1, GAM_Attention, [1024,1024]]- [[17, 21, 25], 1, Detect, [nc]] # Detect(P3, P4, P5)在head部分可以将GAM_attention改成不同的注意力机制来改变网络结构从而提升目标检测 的精度 完整代码 链接: https://pan.baidu.com/s/1IDnEZxpcaEgBowlTxX2iNA?pwdvdrs 提取码: vdrs

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

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

相关文章

聊网站推广网站开发流程丽江

前提 Jenkins是容器化部署的,目前有后端Java的部署任务,完成打包生成jar包后,需要运行Dockerfile,打包生成镜像,进行了一些实践 参考文章 https://hackmamba.io/blog/2022/04/running-docker-in-a-jenkins-container…

网站名字 备案ccms系统

0x01 产品简介 ChatGPT-Next-Web 是一种基于 OpenAI 的 GPT-3.5 、GPT-4.0语言模型的产品。它是设计用于 Web 环境中的聊天机器人,旨在为用户提供自然语言交互和智能对话的能力。 0x02 漏洞概述 2024年3月,互联网上披露CVE-2023-49785 ChatGPT-Next-Web SSRF/XSS 漏洞,未经…

文案交流网站项目管理软件免费版

Pickcode 通过视觉课程、聊天机器人、游戏和绘图来教授编程。 Pickcode 是一种新的语言和编辑器,可以直观地指导用户编写代码来制作聊天机器人、动画图画和游戏。Pickcode 旨在让用户在学习更高级的语言之前能够充满信心地开始学习编码。 Pickcode 可视化编程语言…

湖南省住房和城乡建设厅网站汕头网站推广系统

1. 一位全加器 2. 二进制加法原理 两个N位二进制补码相加,为防止溢出时导致计算结果错误,可将这两个加数先进行符号位扩展,变为N1位二进制数,然后相加,结果亦取N1位,可保证运算结果正确。 根据多位加法器…

青岛胶州网站建设电商网站方案建设

RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客…

中企动力做的网站好吗wordpress 路径插件下载

今天真是狂学了一天的C,什么期末考试,滚tmd(就一门政治,不能影响我c的脚步),今天还是指针,主要是函数指针和函数指针数组,将简单的两位数计算器程序用此方式更加简单的实现了&#x…

网站视频怎么下载到本地单页网站开发

洗地机可以说是一种非常实用的清洁工具,尤其是对于那些需要经常给家里地板清洁的人来说。它能够高效、彻底清洁地板,去除顽固污渍、灰尘和细菌,让家居环境更加洁净卫生。可是面对型号繁多的洗地机,我们应该怎么挑选呢?…

潍坊网站制作培训广东网站建设网

目录 一.概述 二.基础实现 1.导入坐标 2.定义实现类 3.注解 4.访问Servlet 三.执行流程 四.生命周期 1.加载和实例化 2.初始化 3.请求处理 4.服务终止 五.方法 1.init 2.service 3.destroy 4.getServletInfo 5.getServletConfig 六.体系结构 七.urlPatter…

成都网站建设优化推广建设部网站官网 施工许可

文章目录 前言播放效果视频播放的实现总结 一、前言 现在市面上很多应用都跟视频有关,那么在鸿蒙系统上怎么来播放视频呢,今天就讲解视频播放控件,让你也能快速地进行视频播放功能开发。 最后呢,我会提供一个鸿蒙中涉及的主要…

制作企业网站宣传图步骤什么是嵌入式软件工程师

文章目录 前言一、Nim游戏1.题目描述输入格式输出格式数据范围输入样例:输出样例: 2.算法 二、台阶-Nim游戏1.题目描述输入格式输出格式数据范围输入样例:输出样例: 2.算法 三、集合-Nim游戏1.题目描述输入格式输出格式数据范围输…

网站建设 百度贴吧北京给网站做系统的公司名称

最近有个需求就是一个抽象仓储层接口方法需要SqlServer以及Oracle两种实现方式,为了灵活我在依赖注入的时候把这两种实现都给注入进了依赖注入容器中,但是在服务调用的时候总是获取到最后注入的那个方法的实现,这时候就在想能不能实现动态的选…

如何做网站服务器映射网站开发人员应具备什么素质

17.1 进程介绍 在Windows下打开任务管理器就可以查看到系统所有进程,如图17-1所示。 图17-1 Windows下的任务管理器 这里列出了系统中所有的进程。不过也可以使用命令行工具来查看进程。每个进程都会有一个process ID,简称为pid。 17.2 查看进程 也可…

保定网站制作哪家好建设Wordpress能更新到最新版本

绘制如下图形...... 作者不想写了,也不会写,明显老师刁难......我已畏惧 Im so tired......

青岛网站设计皆挺青岛山西建设工程执业注册中心网站

官网:https://docs.docker.com/engine/reference/commandline/init/ 简介 docker init是一个命令行实用程序,可帮助初始化项目中的 Docker 资源。.dockerignore它根据项目的要求创建 Dockerfile、Compose 文件。这简化了为项目配置 Docker 的过程&#…

上海专业网站建设机构wordpress中文更改

目录 一、前言 二、正文 Ⅰ.核心概念: Ⅱ.优势: Ⅲ.应用场景:

打车网站开发长春关键词排名公司

以gitee为例,GitHub也可参考本文 创建远程仓库 在自己的gitee主页 创建本地仓库 在文件夹下,右键→git bash here git init添加gitignore vi .gitignoregitignore里的内容根据自己实际情况设置,这里举个例子 # #开头的是注释 # Prer…

关于公司网站建设方案收集上海网站建设有限公司

优质博文:IT-BLOG-CN 一、题目 给你一个数组nums和一个值val,你需要"原地"移除所有数值等于val的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用O(1)额外空间并"原地"修改输入数组。元…

河西区做网站的公司网站建设的感想与建议

最近在做搜索召回率的提升工作。粮草未动兵马先行!在做之前应该先有一把尺子来衡量召回率的好坏。所以应该先构建测试数据集,然后去做标准化测试。 有了测试机集以后。再去做搜索优化,才能看出来效果。 当然可以选择一些开源的测试集。如果可…

西宁市城乡规划建设局网站优设网官网首页

源码介绍: 最新版WordPress系统文章自动采集插件,它是一款帮助用户提供方便快捷的文章自动采集方案的插件。WordPress自动采集插件,让内容采集变得高效便捷。作为Auto Post pro完美运行版,这里分享的是WordPress文章采集插件Auto…

西峡做网站网站建设有哪三部

二叉查找树(BST) 二叉树的一种应用就是来实现堆,今天我们再看看用二叉查找树(Binary Search Tree, BST)。 前面有章节说到了查找操作,包括线性查找、二分查找、哈希查找等,线性查找效率比较低,二分又要求必须是有序的序列&#x…