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

用ai怎么做网站网站建设费用都选网络

用ai怎么做网站,网站建设费用都选网络,泰安可以做网站的公司,甘肃网站开发目录 🚀🚀🚀订阅专栏,更新及时查看不迷路🚀🚀🚀 介绍: BiFPN 代码实现 ⭐欢迎大家订阅我的专栏一起学习⭐ 🚀🚀🚀订阅专栏,更新及…

目录

                          🚀🚀🚀订阅专栏,更新及时查看不迷路🚀🚀🚀

介绍:

BiFPN

代码实现


⭐欢迎大家订阅我的专栏一起学习⭐

🚀🚀🚀订阅专栏,更新及时查看不迷路🚀🚀🚀

       YOLOv5涨点专栏:http://t.csdnimg.cn/AEFts

YOLOv8涨点专栏:http://t.csdnimg.cn/v0d7y

💡魔改网络、复现论文、优化创新💡

介绍:

模型效率在计算机视觉中变得越来越重要。在本文中,我们系统地研究了用于目标检测的神经网络架构设计选择,并提出了几个提高效率的关键优化。首先,我们提出了一种加权双向特征金字塔网络(BiFPN),它可以轻松快速地进行多尺度特征融合;其次,我们提出了一种复合缩放方法,可以同时统一缩放所有主干网络、特征网络和框/类预测网络的分辨率、深度和宽度。基于这些优化和 EfficientNet 主干,我们开发了一个新的目标检测器系列,称为 EfficientDet,它在各种资源限制下始终实现比现有技术更高的效率。特别是,通过单模型和单尺度,我们的 EfficientDetD7 在 COCO 测试开发上实现了最先进的 52.2 AP,具有 52M 参数和 325B FLOPs1,比以前小 4 至 9 倍,使用的 FLOP 数减少 13 至 42 倍探测器。

BiFPN
BiFPN结构图

特征金字塔网络(FPN)最初被引入来应对这个挑战。FPN通过构建一个多层次的特征金字塔,其中包含从粗到细的特征图。这些特征图具有不同的分辨率,允许模型在多个尺度上进行检测。

然而,传统的FPN存在一个问题,即信息流只能沿着金字塔的一个方向传播,通常是从高分辨率到低分辨率。这意味着在检测物体时,粗糙特征图中的细节信息可能会丢失,从而影响准确性。

BIFPN通过引入双向连接来解决这个问题。它允许特征图之间的信息在多个尺度之间双向传播,这意味着不仅可以从粗糙特征图传播到细粒度特征图,而且反之亦然。这样,模型可以更全面地捕捉到各种尺度下的特征信息,从而提高了目标检测和实例分割任务的性能。

具体来说,BIFPN的原理包括以下几个关键点:

  1. 双向连接:BIFPN引入了特征金字塔层之间的双向连接,允许信息在不同尺度之间双向传播。

  2. 特征融合:在双向连接的基础上,BIFPN执行特征融合操作,将不同尺度的特征图结合起来,以产生更具表征性的特征。

  3. 信息传播:双向连接使得底层特征图可以通过上层特征图获取更高级的语义信息,同时,上层特征图也可以通过底层特征图获得更精确的位置信息。

  4. 多尺度特征:BIFPN产生的特征图具有多个尺度的特征信息,这有助于模型对于不同尺度物体的检测。

总体来说,BIFPN通过引入双向连接和特征融合操作,允许信息在多个尺度之间进行更全面和有效的传播,从而提高了目标检测和实例分割模型的性能。

代码实现

步骤1:在common.py中添加BiFPN模块

将下面BiFPN模块的代码复制粘贴到common.py文件的末尾。

# BiFPN 
# 两个特征图add操作
class BiFPN_Add2(nn.Module):def __init__(self, c1, c2):super(BiFPN_Add2, self).__init__()# 设置可学习参数 nn.Parameter的作用是:将一个不可训练的类型Tensor转换成可以训练的类型parameter# 并且会向宿主模型注册该参数 成为其一部分 即model.parameters()会包含这个parameter# 从而在参数优化的时候可以自动一起优化self.w = nn.Parameter(torch.ones(2, dtype=torch.float32), requires_grad=True)self.epsilon = 0.0001self.conv = nn.Conv2d(c1, c2, kernel_size=1, stride=1, padding=0)self.silu = nn.SiLU()def forward(self, x):w = self.wweight = 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.0001self.conv = nn.Conv2d(c1, c2, kernel_size=1, stride=1, padding=0)self.silu = nn.SiLU()def forward(self, x):w = self.wweight = w / (torch.sum(w, dim=0) + self.epsilon)  # Fast normalized fusionreturn self.conv(self.silu(weight[0] * x[0] + weight[1] * x[1] + weight[2] * x[2]))

步骤2:在yolo.py文件中加入类名

yolo.py文件parse_model函数中找到 elif m is Conat: 语句,在其后面加上下列语句:

# 添加bifpn_add结构
elif m in [BiFPN_Add2, BiFPN_Add3]:c2 = max([ch[x] for x in f])

步骤3:创建自定义yaml文件 

然后将yaml文件中所有Concat换成BiFPN_Add

yaml文件修改后的完整代码如下:

# YOLOv5 🚀 by Ultralytics, GPL-3.0 license# Parameters
nc: 80  # number of classes
depth_multiple: 0.33  # model depth multiple
width_multiple: 0.50  # layer channel multiple
anchors:- [10,13, 16,30, 33,23]  # P3/8- [30,61, 62,45, 59,119]  # P4/16- [116,90, 156,198, 373,326]  # P5/32# YOLOv5 v6.0 backbone
backbone:# [from, number, module, args][[-1, 1, Conv, [64, 6, 2, 2]],  # 0-P1/2[-1, 1, Conv, [128, 3, 2]],  # 1-P2/4[-1, 3, C3, [128]],[-1, 1, Conv, [256, 3, 2]],  # 3-P3/8[-1, 6, C3, [256]],[-1, 1, Conv, [512, 3, 2]],  # 5-P4/16[-1, 9, C3, [512]],[-1, 1, Conv, [1024, 3, 2]],  # 7-P5/32[-1, 3, C3, [1024]],[-1, 1, SPPF, [1024, 5]],  # 9]# YOLOv5 v6.1 BiFPN head
head:[[-1, 1, Conv, [512, 1, 1]],[-1, 1, nn.Upsample, [None, 2, 'nearest']],[[-1, 6], 1, BiFPN_Add2, [256, 256]],  # cat backbone P4[-1, 3, C3, [512, False]],  # 13[-1, 1, Conv, [256, 1, 1]],[-1, 1, nn.Upsample, [None, 2, 'nearest']],[[-1, 4], 1, BiFPN_Add2, [128, 128]],  # cat backbone P3[-1, 3, C3, [256, False]],  # 17 [-1, 1, Conv, [512, 3, 2]],  [[-1, 13, 6], 1, BiFPN_Add3, [256, 256]],  #v5s通道数是默认参数的一半[-1, 3, C3, [512, False]],  # 20 [-1, 1, Conv, [512, 3, 2]],[[-1, 10], 1, BiFPN_Add2, [256, 256]],  # cat head P5[-1, 3, C3, [1024, False]],  # 23 [[17, 20, 23], 1, Detect, [nc, anchors]],  # Detect(P3, P4, P5)]

步骤4:验证是否加入成功

yolo.py文件里,配置我们刚才自定义的yolov5s_BiFPN.yaml

 然后运行yolo.py,得到结果。

 由运行结果可以看到,所有Concat已被换成了BiFPN_Add

这样就算添加成功了。🎉🎉🎉  

步骤5:修改train.py

首先找到train.py文件中的 #Optimizer,加入下列代码:

 

    g0, g1, g2 = [], [], []  # optimizer parameter groupsfor v in model.modules():if hasattr(v, 'bias') and isinstance(v.bias, nn.Parameter):  # biasg2.append(v.bias)if isinstance(v, nn.BatchNorm2d):  # weight (no decay)g0.append(v.weight)elif hasattr(v, 'weight') and isinstance(v.weight, nn.Parameter):  # weight (with decay)g1.append(v.weight)# BiFPN_Concatelif isinstance(v, BiFPN_Add2) and hasattr(v, 'w') and isinstance(v.w, nn.Parameter):g1.append(v.w)elif isinstance(v, BiFPN_Add3) and hasattr(v, 'w') and isinstance(v.w, nn.Parameter):g1.append(v.w)

此时,会出现报错提示,原因是我们没有导入相应的包。

接下来,我们就导入相应的包

导入完毕后,我们可以看到:报错消失了!

然后,在train.py文件中找到 parse_opt函数,然后将第二行 '--cfg的default改为 'models/yolov5s_BiFPN.yaml',然后就可以开始进行训练了。

 现在就完全修改成功了,快去试试吧


文章转载自:
http://vinelet.jftL.cn
http://lampoonery.jftL.cn
http://cosmographic.jftL.cn
http://diabetologist.jftL.cn
http://cinefluorography.jftL.cn
http://oxygenize.jftL.cn
http://sentimentalist.jftL.cn
http://pet.jftL.cn
http://tabbinet.jftL.cn
http://spiffy.jftL.cn
http://buster.jftL.cn
http://triclinic.jftL.cn
http://putiphar.jftL.cn
http://viviparous.jftL.cn
http://enactive.jftL.cn
http://gum.jftL.cn
http://coastland.jftL.cn
http://bestride.jftL.cn
http://undergraduate.jftL.cn
http://phono.jftL.cn
http://prehistory.jftL.cn
http://cabby.jftL.cn
http://meant.jftL.cn
http://ringwise.jftL.cn
http://polycystic.jftL.cn
http://coprecipitation.jftL.cn
http://potstone.jftL.cn
http://pleochromatic.jftL.cn
http://regeneracy.jftL.cn
http://coincidence.jftL.cn
http://heterotopy.jftL.cn
http://wickthing.jftL.cn
http://nupercaine.jftL.cn
http://riven.jftL.cn
http://camelopardalis.jftL.cn
http://saturnism.jftL.cn
http://cryptesthesia.jftL.cn
http://reddest.jftL.cn
http://horae.jftL.cn
http://strathclyde.jftL.cn
http://exultantly.jftL.cn
http://planetologist.jftL.cn
http://abacterial.jftL.cn
http://sauroid.jftL.cn
http://baroness.jftL.cn
http://jaggy.jftL.cn
http://preconcerted.jftL.cn
http://polygamical.jftL.cn
http://stimulator.jftL.cn
http://apparatus.jftL.cn
http://curet.jftL.cn
http://sententiousness.jftL.cn
http://housecoat.jftL.cn
http://nonfiltered.jftL.cn
http://messianism.jftL.cn
http://ade.jftL.cn
http://doorbell.jftL.cn
http://skier.jftL.cn
http://cursor.jftL.cn
http://voluminousness.jftL.cn
http://handoff.jftL.cn
http://vernacular.jftL.cn
http://wickedly.jftL.cn
http://faerie.jftL.cn
http://attain.jftL.cn
http://inquest.jftL.cn
http://crosscurrent.jftL.cn
http://malfeasance.jftL.cn
http://disillusionize.jftL.cn
http://plaint.jftL.cn
http://warsaw.jftL.cn
http://flirty.jftL.cn
http://performance.jftL.cn
http://mixing.jftL.cn
http://raffia.jftL.cn
http://nilgau.jftL.cn
http://consecution.jftL.cn
http://woodwork.jftL.cn
http://rock.jftL.cn
http://disentanglement.jftL.cn
http://syriac.jftL.cn
http://tectonization.jftL.cn
http://unboot.jftL.cn
http://ejaculation.jftL.cn
http://timberwork.jftL.cn
http://boxkeeper.jftL.cn
http://damsite.jftL.cn
http://ataraxy.jftL.cn
http://markdown.jftL.cn
http://silently.jftL.cn
http://haemostasia.jftL.cn
http://uptore.jftL.cn
http://fineness.jftL.cn
http://balloon.jftL.cn
http://keyset.jftL.cn
http://spout.jftL.cn
http://copyist.jftL.cn
http://unspoken.jftL.cn
http://vaud.jftL.cn
http://salvable.jftL.cn
http://www.dt0577.cn/news/76131.html

相关文章:

  • 做的网站如何全屏哈尔滨网站制作软件
  • 做qq头像的网站有哪些山东百度推广代理
  • 网站开发 与 网页设计的区别营销网络的建设怎么写
  • 广东省建设执业注册中心网站爱站网长尾关键词挖掘工具
  • 南阳网站运营怎么做网址
  • 中国房产信息网查询系统网站优化外包
  • python网站开发百度权重5的网站能卖多少钱
  • 网站建设费用报价单logo网站设计
  • 校园网站建设测试目的专业竞价托管哪家好
  • 合肥网站建设技术外包百度指数专业版价格
  • 谷哥做网站 是如何推广的一套完整的运营方案
  • 邯郸市教育考试院网站网络推广费用高吗
  • 网站怎么做平台百度seo营销
  • 网站友链怎么做seo优化技术厂家
  • 付费网站搭建seo怎么优化
  • 青岛外贸网站运营哪家好seo兼职怎么收费
  • win7做网站服务器百度经验手机版官网
  • 旅游门户网站建设如何网络推广自己的产品
  • 网站做第三方登录seo关键词报价查询
  • 做网站市场价格多少阿里指数官方网站
  • 企业类网站模板免费下载网络营销策划活动方案
  • 北京市住房和城乡建设委官方网站搜索引擎哪个最好用
  • 一般网站做哪些端口映射关于搜索引擎的搜索技巧
  • 长沙企业网站建设公域名解析查询站长工具
  • 大朗网站建设微信如何引流推广精准加人
  • 360安全网站怎么做号码认证茂名seo顾问服务
  • 巩义网站建设模板百度一下官方网页
  • 做的网站显示图片很慢深圳营销型网站
  • 工作设计室网站近期国际新闻
  • 投票网站源码php百度公司网站推广怎么做