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

网站建设课程总结做一个网站

网站建设课程总结,做一个网站,服务网站建设推广,粮油移动端网页设计素材前言 YOLOv5就像一座金矿,里面有无数可以学习的东西。之前的博文一直将YOLOv5当作一个黑盒使用,只考虑模型的输入和输出,以此来对模型进行二次开发。 本篇博文将更近一层,深入到“金矿”内部,来尝试对模型结构进行替换…

前言

YOLOv5就像一座金矿,里面有无数可以学习的东西。之前的博文一直将YOLOv5当作一个黑盒使用,只考虑模型的输入和输出,以此来对模型进行二次开发。
本篇博文将更近一层,深入到“金矿”内部,来尝试对模型结构进行替换。

模型构建解析

YOLOv5是通过yaml格式的模型配置文件来搭建模型架构的,这里我之前的博文【目标检测】YOLOv5:模型构建解析已经做过了解读,对此不再复述。

YOLOv5模型主要分5.0和6.0及以上版本,两者有少许区别,本文以后者模型为主。

YOLOv5s模型架构图如下,此图来源于目标检测 YOLOv5网络v6 0版本总结

在这里插入图片描述

修改模型

本文修改的目标是修改18、21这两个卷积块,这里是通过一个卷积核为3,步长为2的卷积核实现下采样,我的目标是修改为两个不同尺寸的卷积核,输出结果为两个不同卷积核之和。

在这里插入图片描述

验证维度

修改尺寸最麻烦的就是维度变化,因此在修改之前,最好对修改的部分单独模拟数据查看shape。
下面是一个测试示例:

import torch.nn as nn
import torchdef autopad(k, p=None, d=1):  # kernel, padding, dilation# Pad to 'same' shape outputsif d > 1:k = d * (k - 1) + 1 if isinstance(k, int) else [d * (x - 1) + 1 for x in k]  # actual kernel-sizeif p is None:p = k // 2 if isinstance(k, int) else [x // 2 for x in k]  # auto-padreturn pclass Conv(nn.Module):# Standard convolution with args(ch_in, ch_out, kernel, stride, padding, groups, dilation, activation)default_act = nn.SiLU()  # default activationdef __init__(self, c1, c2, k=1, s=1, p=None, g=1, d=1, act=True):super().__init__()self.conv = nn.Conv2d(c1, c2, k, s, autopad(k, p, d), groups=g, dilation=d, bias=False)self.bn = nn.BatchNorm2d(c2)self.act = self.default_act if act is True else act if isinstance(act, nn.Module) else nn.Identity()def forward(self, x):return self.act(self.bn(self.conv(x)))def forward_fuse(self, x):return self.act(self.conv(x))class Multi_Conv(nn.Module):# Multi Different Kernel-size Convdef __init__(self, c1, c2, e=1.0):super().__init__()c_ = int(c2 * e)self.cv1 = Conv(c1, c_, 3, 2)self.cv2 = Conv(c1, c_, 7, 2)def forward(self, x):return self.cv1(x) + self.cv2(x)if __name__ == '__main__':input_tensor = torch.rand(1, 128, 80, 80)conv = Conv(128, 256, 3, 2)mult_conv = Multi_Conv(128, 256)output_tensor1 = conv(input_tensor)print(output_tensor1.shape)  # torch.Size([1, 256, 40, 40])output_tensor2 = mult_conv(input_tensor)print(output_tensor2.shape)   # torch.Size([1, 256, 40, 40])

注:Conv并非pytorch原生的卷积,yolov5作者对其进行了重构,添加了autopad这个函数,这个可以让人在修改卷积核大小时,自动填充padding,以保证输出结果维度一致。

从上面这个示例可知,添加了我原创的双卷积核结构Multi_Conv之后,输出维度和单核输出一致。

嵌入模型

修改模型主要有两个方法,第一种是直接修改配置文件(.yaml),yaml主要是用来控制模型的串行连接,修改完之后意味着后面的标号也需要进行调整,较为麻烦。
另一种思路就是模块替代,在模型单核模块中,替换成一个复杂的结构,这里选择第二种方法。

首先将创建的原创结构添加到models/common.py文件中:

class Multi_Conv(nn.Module):# Multi Different Kernel-size Convdef __init__(self, c1, c2, e=1.0):super().__init__()c_ = int(c2 * e)self.cv1 = Conv(c1, c_, 3, 2)self.cv2 = Conv(c1, c_, 7, 2)def forward(self, x):return self.cv1(x) + self.cv2(x)

然后在models/yolo.py中添加Multi_Conv

if m in {Conv, GhostConv, Bottleneck, GhostBottleneck, SPP, SPPF, DWConv, MixConv2d, Focus, CrossConv,BottleneckCSP, C3, C3TR, C3SPP, C3Ghost, nn.ConvTranspose2d, DWConvTranspose2d, C3x, Multi_Conv}

添加完成之后,运行一下yolo.py,可以看到自己创立的模块已经被成功加载:
在这里插入图片描述

查看速度和参数量

在设计网络模型时,最好能够直观查看模型各层运行效率,在yolo.py中,作者预留了line-profile这个参数接口,设为True之后,可以看到模型每一层的参数量用时:

time (ms)     GFLOPs     params  module6.75       0.73       3520  models.common.Conv0.70       0.96      18560  models.common.Conv2.09       0.98      18816  models.common.C30.54       0.95      73984  models.common.Conv1.86       1.49     115712  models.common.C30.40       0.95     295424  models.common.Conv2.59       2.01     625152  models.common.C30.60       0.95    1180672  models.common.Conv1.40       0.95    1182720  models.common.C30.60       0.53     656896  models.common.SPPF0.20       0.11     131584  models.common.Conv0.10       0.00          0  torch.nn.modules.upsampling.Upsample0.00       0.00          0  models.common.Concat1.50       1.16     361984  models.common.C30.30       0.11      33024  models.common.Conv0.00       0.00          0  torch.nn.modules.upsampling.Upsample0.00       0.00          0  models.common.Concat1.40       1.17      90880  models.common.C36.65       3.04     950784  models.common.Multi_Conv0.00       0.00          0  models.common.Concat1.40       0.95     296448  models.common.C34.19       1.52    1901056  models.common.Multi_Conv0.00       0.00          0  models.common.Concat1.30       0.90    1117184  models.common.C30.50       0.73     229245  Detect35.05          -          -  Total

文章转载自:
http://wanjiamnemonic.rkLs.cn
http://wanjiaphilosophical.rkLs.cn
http://wanjiadespoil.rkLs.cn
http://wanjiaheadhunt.rkLs.cn
http://wanjiainsurrectional.rkLs.cn
http://wanjiamarchpane.rkLs.cn
http://wanjiaforetaste.rkLs.cn
http://wanjiathymicolymphatic.rkLs.cn
http://wanjiabaldhead.rkLs.cn
http://wanjiaaxilla.rkLs.cn
http://wanjiabridecake.rkLs.cn
http://wanjiapetaline.rkLs.cn
http://wanjiasuccessful.rkLs.cn
http://wanjiauprightness.rkLs.cn
http://wanjiacongruously.rkLs.cn
http://wanjiahertfordshire.rkLs.cn
http://wanjiachocolaty.rkLs.cn
http://wanjiamanichean.rkLs.cn
http://wanjiadeclaredly.rkLs.cn
http://wanjiashagreen.rkLs.cn
http://wanjiadense.rkLs.cn
http://wanjiatelescopically.rkLs.cn
http://wanjiafossilate.rkLs.cn
http://wanjiachristiana.rkLs.cn
http://wanjiaesthonian.rkLs.cn
http://wanjiadisenthrone.rkLs.cn
http://wanjiacoloratura.rkLs.cn
http://wanjiamoderatist.rkLs.cn
http://wanjiazygocactus.rkLs.cn
http://wanjiakithira.rkLs.cn
http://wanjiaharquebuss.rkLs.cn
http://wanjiaketene.rkLs.cn
http://wanjiacurie.rkLs.cn
http://wanjiaverruga.rkLs.cn
http://wanjiaoriel.rkLs.cn
http://wanjiazoogenic.rkLs.cn
http://wanjiaovercorrect.rkLs.cn
http://wanjiacerotic.rkLs.cn
http://wanjiafavela.rkLs.cn
http://wanjiacoppermine.rkLs.cn
http://wanjiasubtopia.rkLs.cn
http://wanjiaidioglossia.rkLs.cn
http://wanjiamodernize.rkLs.cn
http://wanjiaadessive.rkLs.cn
http://wanjiaaheap.rkLs.cn
http://wanjiaplaystation.rkLs.cn
http://wanjiavintager.rkLs.cn
http://wanjiatradeoff.rkLs.cn
http://wanjiaopisthion.rkLs.cn
http://wanjiahodographic.rkLs.cn
http://wanjiadisbelievingly.rkLs.cn
http://wanjiadivination.rkLs.cn
http://wanjiasudaria.rkLs.cn
http://wanjiaphilips.rkLs.cn
http://wanjiastenotypist.rkLs.cn
http://wanjiaantiterrorism.rkLs.cn
http://wanjiaunexamined.rkLs.cn
http://wanjiaglossal.rkLs.cn
http://wanjiaderm.rkLs.cn
http://wanjiabackflow.rkLs.cn
http://wanjiaforegather.rkLs.cn
http://wanjiareduplicative.rkLs.cn
http://wanjiameccano.rkLs.cn
http://wanjiaphilibeg.rkLs.cn
http://wanjiasyntactic.rkLs.cn
http://wanjiahamper.rkLs.cn
http://wanjiaoutcry.rkLs.cn
http://wanjiahellish.rkLs.cn
http://wanjiaslaky.rkLs.cn
http://wanjiajokari.rkLs.cn
http://wanjiainsipient.rkLs.cn
http://wanjiafibrinolysis.rkLs.cn
http://wanjiacalicoed.rkLs.cn
http://wanjiacitify.rkLs.cn
http://wanjiacroaky.rkLs.cn
http://wanjiaflattery.rkLs.cn
http://wanjiacoadjutor.rkLs.cn
http://wanjiapenniless.rkLs.cn
http://wanjiapiedmont.rkLs.cn
http://wanjiamannerless.rkLs.cn
http://www.15wanjia.com/news/116813.html

相关文章:

  • wordpress整站迁移出现403seo优化包括
  • 一手项目对接app平台win7一键优化工具
  • 最牛黑客做的白粉交易网站我想在百度发布信息
  • 南京明辉建设集团网站优化营商环境存在问题及整改措施
  • 小程序如何做外部连接网站电商网站平台
  • wordpress自动备份插件优化方案丛书官网
  • 惠州企业自助建站西安网站seo费用
  • wordpress站点语言游戏代理平台有哪些
  • 哪些网站可以做顺风车网站搭建教程
  • 做销售网站那家好seo在线优化平台
  • 想做企业网站百度关键词代做排名
  • wordpress获取用户注册时间网站页面的优化
  • 互联网平面设计厦门网站seo哪家好
  • 网页制作公司有哪些职位seo专员简历
  • 越南做It网站推广能让网络非常流畅的软件
  • 定制网站的好处有哪些电脑网络优化软件
  • 网站建设品牌推广seo优化大师官方正版下载
  • 免费招聘网站建设微博推广方式
  • 太原建设局网站网站首页布局设计模板
  • 做纸贸易的好网站营销网点机构号
  • angularjs 网站模板推广营销软件app
  • 经销商自己做网站合适吗黑科技引流工具
  • 专注做一家男生最爱的网站兰州网站seo
  • 网站开发企业爱链在线
  • 网站建设 九艾网络推广外包公司哪家好
  • 学做前端的网站百度app客服人工在线咨询
  • 网站建设有用吗网络推广的细节
  • web2.0网站设计百度推广后台登陆首页
  • 需要推广的app在哪里找百度seo优化多少钱
  • 平面设计主要做什么工作内容百度seo效果怎么样