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

opencart做网站视频在线教育平台网站建设

opencart做网站视频,在线教育平台网站建设,建设四川网站,it运维#x1f4a1;#x1f4a1;#x1f4a1;本专栏所有程序均经过测试#xff0c;可成功执行#x1f4a1;#x1f4a1;#x1f4a1; 目标检测是计算机视觉中一个重要的下游任务。对于边缘盒子的计算平台来说#xff0c;一个大型模型很难实现实时检测的要求。基于一系列消融…本专栏所有程序均经过测试可成功执行 目标检测是计算机视觉中一个重要的下游任务。对于边缘盒子的计算平台来说一个大型模型很难实现实时检测的要求。基于一系列消融实验研究者提出了几个实用的网络设计效率指导原则。据此提出了一种新的架构称为ShuffleNetV2。在本文中给大家带来的教程是将原来的主干网络中的特征提取网络替换为shufflenetv2网络。文章在介绍主要的原理后将手把手教学如何进行模块的代码添加和修改并将修改后的完整代码放在文章的最后方便大家一键运行小白也可轻松上手实践。以帮助您更好地学习深度学习目标检测YOLO系列的挑战。 专栏地址 YOLOv5改进入门——持续更新各种有效涨点方法 点击即可跳转 1.原理 论文地址ShuffleNet V2: Practical Guidelines for Efficient CNN Architecture Design——点击即可跳转 官方代码pytorch官方代码仓库——点击即可跳转 ShuffleNetV2 是一种高效的卷积神经网络架构旨在优化计算资源的使用尤其适用于移动设备和嵌入式系统。ShuffleNetV2 由 Megvii (Face) 团队在 2018 年提出是 ShuffleNet 的改进版本主要通过优化信息流和减少内存访问成本来提升性能。 ShuffleNetV2 的设计理念 ShuffleNetV2 主要针对以下几个方面进行了优化 模型计算复杂度 通过减少冗余计算和优化卷积操作降低计算复杂度使得模型在计算资源有限的情况下仍能保持较高性能。 内存访问成本 内存访问成本是影响模型效率的一个重要因素。ShuffleNetV2 通过优化特征图的传递和处理减少内存带宽的占用。 并行度 设计上考虑了硬件的并行计算能力确保模型在并行处理器上的高效运行。 核心模块 Channel Split通道分割 输入特征图被分成两部分一部分直接传递到下一层另一部分经过复杂的卷积操作。这种设计减少了每一层的计算量同时保留了原始信息。 Channel Shuffle通道打乱 在通道级别打乱特征图。通过这种操作确保在网络的后续层中各个通道之间的信息能够充分混合提高特征的表达能力。 Pointwise Group Convolution逐点分组卷积 使用逐点分组卷积1x1 卷积来减少特征图通道数同时分组卷积进一步降低计算量。 Depthwise Convolution深度可分离卷积 深度可分离卷积将标准卷积分解为深度卷积和逐点卷积两部分从而减少计算量。 Element-wise Add元素级加法 使用元素级加法而非拼接操作将原始输入与处理后的特征图结合这样不仅减少了特征图的数量还避免了高计算复杂度。 ShuffleNetV2 的性能优化 降低内存访问成本 通过减少特征图的传递和拼接操作减少了内存访问成本。这一点对资源受限的移动设备尤为重要。 提升计算效率 通过优化卷积操作和特征图处理方式ShuffleNetV2 能够在计算资源有限的情况下保持高效的计算性能。 增加并行度 ShuffleNetV2 的设计充分考虑了硬件的并行计算能力通过优化计算操作和数据流提高了模型的并行计算效率。 总结 ShuffleNetV2 通过优化计算复杂度、内存访问成本和并行度提供了一种高效的卷积神经网络架构。其设计理念和核心模块如 Channel Split、Channel Shuffle 和 Depthwise Convolution 等不仅降低了计算和内存开销还提高了模型的性能和效率。这使得 ShuffleNetV2 成为一种非常适合在资源受限设备上部署的深度学习模型。 2. ShuffleNetv2的代码实现 2.1 将ShuffleNetv2添加到YOLOv5中 关键步骤一: 将下面代码粘贴到/projects/yolov5-6.1/models/common.py文件中 def channel_shuffle(x, groups):batchsize, num_channels, height, width x.data.size()channels_per_group num_channels // groups# reshapex x.view(batchsize, groups,channels_per_group, height, width)x torch.transpose(x, 1, 2).contiguous()# flattenx x.view(batchsize, -1, height, width)return xclass conv_bn_relu_maxpool(nn.Module):def __init__(self, c1, c2): # ch_in, ch_outsuper(conv_bn_relu_maxpool, self).__init__()self.conv nn.Sequential(nn.Conv2d(c1, c2, kernel_size3, stride2, padding1, biasFalse),nn.BatchNorm2d(c2),nn.ReLU(inplaceTrue),)self.maxpool nn.MaxPool2d(kernel_size3, stride2, padding1, dilation1, ceil_modeFalse)def forward(self, x):return self.maxpool(self.conv(x))class Shuffle_Block(nn.Module):def __init__(self, inp, oup, stride):super(Shuffle_Block, self).__init__()if not (1 stride 3):raise ValueError(illegal stride value)self.stride stridebranch_features oup // 2assert (self.stride ! 1) or (inp branch_features 1)if self.stride 1:self.branch1 nn.Sequential(self.depthwise_conv(inp, inp, kernel_size3, strideself.stride, padding1),nn.BatchNorm2d(inp),nn.Conv2d(inp, branch_features, kernel_size1, stride1, padding0, biasFalse),nn.BatchNorm2d(branch_features),nn.ReLU(inplaceTrue),)self.branch2 nn.Sequential(nn.Conv2d(inp if (self.stride 1) else branch_features,branch_features, kernel_size1, stride1, padding0, biasFalse),nn.BatchNorm2d(branch_features),nn.ReLU(inplaceTrue),self.depthwise_conv(branch_features, branch_features, kernel_size3, strideself.stride, padding1),nn.BatchNorm2d(branch_features),nn.Conv2d(branch_features, branch_features, kernel_size1, stride1, padding0, biasFalse),nn.BatchNorm2d(branch_features),nn.ReLU(inplaceTrue),)staticmethoddef depthwise_conv(i, o, kernel_size, stride1, padding0, biasFalse):return nn.Conv2d(i, o, kernel_size, stride, padding, biasbias, groupsi)def forward(self, x):if self.stride 1:x1, x2 x.chunk(2, dim1) # 按照维度1进行splitout torch.cat((x1, self.branch2(x2)), dim1)else:out torch.cat((self.branch1(x), self.branch2(x)), dim1)out channel_shuffle(out, 2)return out ShuffleNet 的主要流程涉及一系列精心设计的操作以最大限度地提高计算效率同时确保模型的表达能力。以下是 ShuffleNet 的主要流程 1. 初始卷积层 输入处理 输入图像首先通过一个标准的卷积层进行处理这个卷积层的作用是提取初始特征。 特征图大小和通道数调整 初始卷积层通常会调整特征图的大小和通道数以便于后续层的处理。 2. 分组卷积Grouped Convolution 特征图分组 特征图在通道维度上分成多个组。分组卷积将特征图分为若干小组并对每一小组单独进行卷积操作。这种方式可以大幅减少计算量。 1x1 卷积Pointwise Convolution 使用 1x1 卷积调整每一组特征图的通道数。1x1 卷积主要用于减少通道数以减小计算量。 3. 通道打乱Channel Shuffle 通道打乱操作 为了确保不同组之间的信息可以相互交流使用通道打乱操作。具体来说将特征图的通道重新排列以便在下一次分组卷积时不同组之间的信息能够充分混合。 4. 深度可分离卷积Depthwise Separable Convolution 深度卷积Depthwise Convolution 在深度卷积中每个卷积核只在单个通道上进行卷积操作不改变通道数。这样可以显著减少计算量。 逐点卷积Pointwise Convolution 在深度卷积之后使用逐点卷积1x1 卷积来调整通道数。这一步结合了所有通道的信息。 5. 残差连接Residual Connection 特征图合并 将原始输入特征图与经过上述处理后的特征图通过元素级加法或拼接操作合并。这一步类似于残差网络ResNet中的残差连接帮助梯度在网络中更好地传播。 6. 通道分割Channel Split 特征图分割 在某些版本中如 ShuffleNetV2特征图被分成两部分一部分直接传递到下一层另一部分经过复杂操作后再与第一部分合并。这种设计进一步减少了计算量。 7. 多次重复上述模块 模块重复 上述操作模块会被重复多次以构建深层网络。这些模块的重复次数和具体配置会根据网络的设计需求而定。 8. 最终卷积层和分类层 全局池化Global Pooling 在网络的最后通常会使用全局平均池化层将特征图的空间维度压缩到单个数值。 全连接层 最后通过一个全连接层或完全卷积层将特征映射到分类标签空间以完成分类任务。 2.2 新增yaml文件 关键步骤二在下/projects/yolov5-6.1/models下新建文件 yolov5-shufflenetv2.yaml并将下面代码复制进去 # YOLOv5 by Ultralytics, GPL-3.0 license# Parameters nc: 80 # number of classes depth_multiple: 1.0 # model depth multiple width_multiple: 1.0 # 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]# Shuffle_Block: [out, stride][[ -1, 1, conv_bn_relu_maxpool, [ 32 ] ], # 0-P2/4[ -1, 1, Shuffle_Block, [ 128, 2 ] ], # 1-P3/8[ -1, 3, Shuffle_Block, [ 128, 1 ] ], # 2[ -1, 1, Shuffle_Block, [ 256, 2 ] ], # 3-P4/16[ -1, 7, Shuffle_Block, [ 256, 1 ] ], # 4[ -1, 1, Shuffle_Block, [ 512, 2 ] ], # 5-P5/32[ -1, 3, Shuffle_Block, [ 512, 1 ] ], # 6]# YOLOv5 v6.0 head head:[[-1, 1, Conv, [256, 1, 1]],[-1, 1, nn.Upsample, [None, 2, nearest]],[[-1, 4], 1, Concat, [1]], # cat backbone P4[-1, 1, C3, [256, False]], # 10[-1, 1, Conv, [128, 1, 1]],[-1, 1, nn.Upsample, [None, 2, nearest]],[[-1, 2], 1, Concat, [1]], # cat backbone P3[-1, 1, C3, [128, False]], # 14 (P3/8-small)[-1, 1, Conv, [128, 3, 2]],[[-1, 11], 1, Concat, [1]], # cat head P4[-1, 1, C3, [256, False]], # 17 (P4/16-medium)[-1, 1, Conv, [256, 3, 2]],[[-1, 7], 1, Concat, [1]], # cat head P5[-1, 1, C3, [512, False]], # 20 (P5/32-large)[[14, 17, 20], 1, Detect, [nc, anchors]], # Detect(P3, P4, P5)] 温馨提示本文只是对yolov5l基础上添加swin模块如果要对yolov8n/l/m/x进行添加则只需要指定对应的depth_multiple 和 width_multiple。 # YOLOv5n depth_multiple: 0.33 # model depth multiple width_multiple: 0.25 # layer channel multiple# YOLOv5s depth_multiple: 0.33 # model depth multiple width_multiple: 0.50 # layer channel multiple# YOLOv5l depth_multiple: 1.0 # model depth multiple width_multiple: 1.0 # layer channel multiple# YOLOv5m depth_multiple: 0.67 # model depth multiple width_multiple: 0.75 # layer channel multiple# YOLOv5x depth_multiple: 1.33 # model depth multiple width_multiple: 1.25 # layer channel multiple 2.3 注册模块 关键步骤三在yolo.py中注册, 大概在260行左右分别添加 ‘ conv_bn_relu_maxpool, Shuffle_Block’ 2.4 执行程序 在train.py中将cfg的参数路径设置为yolov5-ShuffleNetv2.yaml的路径 建议大家写绝对路径确保一定能找到 运行程序如果出现下面的内容则说明添加成功 3. 完整代码分享 https://pan.baidu.com/s/1EKQQOCdwIUWrR3LcFaCk8A?pwdaaus 提取码: aaus  4. GFLOPs 关于GFLOPs的计算方式可以查看百面算法工程师 | 卷积基础知识——Convolution 未改进的GFLOPs 改进后的GFLOPs 5.总结 ShuffleNet的设计理念主要集中在提高计算效率和减少参数量同时保持较高的准确性。为了实现这一目标ShuffleNet引入了两个关键的操作点卷积Pointwise Convolution和通道洗牌Channel Shuffle。首先ShuffleNet采用了一种被称为深度可分离卷积Depthwise Separable Convolution的操作。这种操作将标准卷积分解为两个更简单的操作深度卷积Depthwise Convolution和点卷积Pointwise Convolution。深度卷积在每个输入通道上独立执行卷积操作而点卷积则用于将这些独立处理后的通道进行线性组合。通过这种分解方式计算量和参数量都得到了大幅度的减少。在此基础上ShuffleNet进一步引入了通道洗牌的概念。在常规的卷积操作中不同通道之间的信息交流是有限的。为了增强通道间的信息交流ShuffleNet将通道划分为若干组并在每一组内进行卷积操作后将通道重新排列洗牌使得下一组操作能够接收到来自不同组的通道信息。这样通过多层的叠加和洗牌操作网络能够更有效地捕捉不同通道之间的关联特征从而提升模型的表现力。此外ShuffleNet采用了分组卷积Grouped Convolution的策略即将通道划分为多个组每组独立进行卷积操作。结合通道洗牌这种策略进一步降低了计算复杂度和参数量适合在移动设备等资源受限的环境中应用。总的来说ShuffleNet通过巧妙地设计卷积操作和通道处理方式显著提升了计算效率和模型的轻量化程度使得其在保持较高准确率的同时能够在计算资源有限的设备上高效运行。这种创新的架构设计不仅为移动设备上的实时图像处理提供了可能也为其他需要高效视觉处理的应用场景提供了有力支持。
文章转载自:
http://www.morning.lsgsn.cn.gov.cn.lsgsn.cn
http://www.morning.fmrrr.cn.gov.cn.fmrrr.cn
http://www.morning.flfdm.cn.gov.cn.flfdm.cn
http://www.morning.flzqq.cn.gov.cn.flzqq.cn
http://www.morning.kwrzg.cn.gov.cn.kwrzg.cn
http://www.morning.bfjtp.cn.gov.cn.bfjtp.cn
http://www.morning.nkwgy.cn.gov.cn.nkwgy.cn
http://www.morning.bpzw.cn.gov.cn.bpzw.cn
http://www.morning.gnbtp.cn.gov.cn.gnbtp.cn
http://www.morning.dzdtj.cn.gov.cn.dzdtj.cn
http://www.morning.dkfrd.cn.gov.cn.dkfrd.cn
http://www.morning.nfnxp.cn.gov.cn.nfnxp.cn
http://www.morning.bkcnq.cn.gov.cn.bkcnq.cn
http://www.morning.rftk.cn.gov.cn.rftk.cn
http://www.morning.lctrz.cn.gov.cn.lctrz.cn
http://www.morning.gkmwx.cn.gov.cn.gkmwx.cn
http://www.morning.jfxth.cn.gov.cn.jfxth.cn
http://www.morning.jxwhr.cn.gov.cn.jxwhr.cn
http://www.morning.rpsjh.cn.gov.cn.rpsjh.cn
http://www.morning.bbtn.cn.gov.cn.bbtn.cn
http://www.morning.thpzn.cn.gov.cn.thpzn.cn
http://www.morning.tzzkm.cn.gov.cn.tzzkm.cn
http://www.morning.bbgn.cn.gov.cn.bbgn.cn
http://www.morning.drkk.cn.gov.cn.drkk.cn
http://www.morning.rfqkx.cn.gov.cn.rfqkx.cn
http://www.morning.hqwxm.cn.gov.cn.hqwxm.cn
http://www.morning.rfhm.cn.gov.cn.rfhm.cn
http://www.morning.zdtfr.cn.gov.cn.zdtfr.cn
http://www.morning.zryf.cn.gov.cn.zryf.cn
http://www.morning.tndxg.cn.gov.cn.tndxg.cn
http://www.morning.mflhr.cn.gov.cn.mflhr.cn
http://www.morning.gkgr.cn.gov.cn.gkgr.cn
http://www.morning.hrpmt.cn.gov.cn.hrpmt.cn
http://www.morning.mngyb.cn.gov.cn.mngyb.cn
http://www.morning.trsmb.cn.gov.cn.trsmb.cn
http://www.morning.cbnxq.cn.gov.cn.cbnxq.cn
http://www.morning.fsqbx.cn.gov.cn.fsqbx.cn
http://www.morning.tfqfm.cn.gov.cn.tfqfm.cn
http://www.morning.ffrys.cn.gov.cn.ffrys.cn
http://www.morning.hhxwr.cn.gov.cn.hhxwr.cn
http://www.morning.rxfjg.cn.gov.cn.rxfjg.cn
http://www.morning.qrsm.cn.gov.cn.qrsm.cn
http://www.morning.qjlkp.cn.gov.cn.qjlkp.cn
http://www.morning.nrpp.cn.gov.cn.nrpp.cn
http://www.morning.nrbcx.cn.gov.cn.nrbcx.cn
http://www.morning.rjkfj.cn.gov.cn.rjkfj.cn
http://www.morning.whclz.cn.gov.cn.whclz.cn
http://www.morning.zwwhq.cn.gov.cn.zwwhq.cn
http://www.morning.tjcgl.cn.gov.cn.tjcgl.cn
http://www.morning.haibuli.com.gov.cn.haibuli.com
http://www.morning.ljhnn.cn.gov.cn.ljhnn.cn
http://www.morning.smsjx.cn.gov.cn.smsjx.cn
http://www.morning.yrnrr.cn.gov.cn.yrnrr.cn
http://www.morning.jbfzx.cn.gov.cn.jbfzx.cn
http://www.morning.hsksm.cn.gov.cn.hsksm.cn
http://www.morning.skbkq.cn.gov.cn.skbkq.cn
http://www.morning.lssfd.cn.gov.cn.lssfd.cn
http://www.morning.jpzcq.cn.gov.cn.jpzcq.cn
http://www.morning.mhnb.cn.gov.cn.mhnb.cn
http://www.morning.qdcpn.cn.gov.cn.qdcpn.cn
http://www.morning.mpscg.cn.gov.cn.mpscg.cn
http://www.morning.xhgxd.cn.gov.cn.xhgxd.cn
http://www.morning.kybjr.cn.gov.cn.kybjr.cn
http://www.morning.ctfh.cn.gov.cn.ctfh.cn
http://www.morning.nxstj.cn.gov.cn.nxstj.cn
http://www.morning.jzkqg.cn.gov.cn.jzkqg.cn
http://www.morning.nwjd.cn.gov.cn.nwjd.cn
http://www.morning.kfcfq.cn.gov.cn.kfcfq.cn
http://www.morning.rpfpx.cn.gov.cn.rpfpx.cn
http://www.morning.ljzss.cn.gov.cn.ljzss.cn
http://www.morning.ldpjm.cn.gov.cn.ldpjm.cn
http://www.morning.wxlzr.cn.gov.cn.wxlzr.cn
http://www.morning.nkpls.cn.gov.cn.nkpls.cn
http://www.morning.gqryh.cn.gov.cn.gqryh.cn
http://www.morning.xqwq.cn.gov.cn.xqwq.cn
http://www.morning.dfygx.cn.gov.cn.dfygx.cn
http://www.morning.wjhqd.cn.gov.cn.wjhqd.cn
http://www.morning.mzhh.cn.gov.cn.mzhh.cn
http://www.morning.rdsst.cn.gov.cn.rdsst.cn
http://www.morning.dndjx.cn.gov.cn.dndjx.cn
http://www.tj-hxxt.cn/news/278305.html

相关文章:

  • 网站360全景图怎么做长沙互联网企业排名
  • 购物帮做特惠的网站惠城中山网站建设
  • 企业互联网营销推广方案郑州网站排名优化
  • 白酒营销网站厦门网站制作开发收费
  • 生物公司网站建设大良网站设计价格
  • 网站设计的流程简答题云南省建筑信息平台
  • 企业信用公示网上查询平台seo整站优化公司持续监控
  • 用pc做网站服务器为什么不如云主机鹤壁市网站建设
  • 做网站常见问题模板纳米加工平台
  • 为什么网站建设需要每年续费软件跟网站开发的区别
  • 苏州建设网站制作wordpress发不了博文
  • django 网站开发教程企业邮箱号是什么样的格式
  • 免费网站设计素材西安的电商网站设计
  • 北京活动策划网站新媒体营销策略有哪些
  • 海拉尔做网站多少钱天天新品网做网站
  • 优礼品网站模板郑州网站建设douyanet
  • 网站建设 标书wordpress 建站五分钟
  • 买服饰网站建设网件r6300v2
  • vue做网站对seowordpress 卡
  • 太原网站建设公司招聘不定期更新域名
  • 电子商务 网站设计建筑工程网格化管理
  • 物流网站开发项目书制作app多少钱一个
  • 校园门户网站建设公司wordpress 广告代码
  • dz后台网站地图南宁哪里有做开通网站的
  • 做ssp用什么建网站宁夏银川做网站的公司有哪些
  • 东风地区网站建设价格手机网站制作套餐
  • 网站建设策划基本流程图wordpress+有广告
  • 能打开各种网站的浏览器app推广深圳
  • 手机投资app平台汕头seo网站优化
  • wordpress跳转站点运营策划怎么做