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

云空间的网站如何做win7 添加asp网站

云空间的网站如何做,win7 添加asp网站,儿童网站设计模板,中国建筑网登录入口目录 1.简介 2.YOLOv5改进 2.1增加以下yolov5s_botnet.yaml文件 2.2common.py配置 2.3 yolo.py配置修改 1.简介 论文地址 Paper 本文提出的BoTNet是一种简单高效的网络#xff0c;有效的将SA应用到多种视觉任务#xff0c;如图像识别、目标检测、实例分割任务。通过将R…  目录 1.简介 2.YOLOv5改进 2.1增加以下yolov5s_botnet.yaml文件 2.2common.py配置 2.3 yolo.py配置修改 1.简介 论文地址 Paper 本文提出的BoTNet是一种简单高效的网络有效的将SA应用到多种视觉任务如图像识别、目标检测、实例分割任务。通过将ResNet50中最后三个bottleneck模块的空间卷积替换为全局的SA操作有效提升了基线模型在签署任务上的性能。 Section I 常用的CNN大多采用3x3的卷积核鉴于卷积操作可以有效的不糊哦局部信息但是对于一些视觉任务如目标检测、实例分割、关键点检测还需要建立长程依赖关系。比如实例分割中需要收集场景相关的信息才能学习物体之间的关系那么为了吧局部信息聚合就需要堆叠多个卷积层。但基于non-local操作可以更有效也不需要堆叠那么多层。
而建模长程依赖对NLP任务也十分重要Self-Attention可以有效学习每一对实体之间的关联基于SA组成的Transformer已经成为NLP的主流如GPT和BERT。
 SA应用于视觉的一种简便方法及时将卷积层替换为MHSA层参见Fig 1。按照这种思路有两种改进方向一是将Resnet中的卷积层替换为各种SA操作比如SASA,AACN,SANet二是将图像切分成互补重叠的patch然后送入堆叠的Transformer模块。 虽然看起来是两种不同类型的体系结构但是事实并非如此。本文提出ResNet 模块中使用MHSA层可以看做是一种带有瓶颈结构的Transformer模块只不过有细微的变化比如残差连接、归一化层的选择上。因此本文将带有MHSA层的ResNet模块称之为BoT模块具体结构参见Fig3. 将注意力应用到视觉领域有以下挑战 1图像一般比用于分类的图像更大分类一般224,224就够了用于目标检测和实例分割的图像分辨率更高。
 2SA的计算是输入分辨率的平方项因此对内存和算力有要求
 为了克服以上挑战本文进行以下设计
 1使用卷积来高效学习低分辨率、抽象的特征
 2使用SA来处理、聚合卷积提取到的特征
 这种混合设计可以有效利用卷积和SA的优点同通过卷积进行下采样可以有效处理较高分辨率的输入图像。 
因此本文的提出一种简单的设计方案将ResNet最后三个block替换为BoT模块其余不做任何改动。再说明白点只将ResNet最后三个3x3卷积替换为MHSA层。 

只做这一小小的改动就将COCO上目标检测精度提升了1.2%并且BoTNet在结构上并没什么新颖之处因此本文相信这种简洁性使其可以作为一个值得进一步研究的backbone。
使用BoTNet做实例分割效果也有显著提升尤其对小物体有显著提升。
 

最后本文还对BoTNet进行了放缩发现BoTNet在更小数据集上没有什么实质性提升但在ImageNet上达到了84.7%的top-1精度在TPU-V3硬件测试上比目前流行的EfficientNet块1.64倍。基于BoTNet展现的结果本文希望SA未来可以在视觉任务中广泛使用。 Section II Related Work Fig 2总结了计算机视觉任务中的注意力本节主要关注: 
1Transformer vs BoTNet
 
2DETR vs BoTNet 
 
(3)Bon-Local vs BoTNet Fig 3中左侧是Transformer 中间是本文定义的BoT模块右侧就是ResNet Block中将卷积层替换为MHSA后的结果
 
Connection to the Transformer 

正如标题提到的本文的关键是将ResNet中的block替换为MHSA层但BoT的架构设计并不是本文的贡献本文只是指出MHSA ResNet Bottleneck与Transformer之间的关系从而能够提升对计算机视觉中SA的理解和设计。 


除了在Fig 3中恒看出的区别如残差连接还有一些区别如 


 1归一化 Transformer使用的是LN而ResNet使用的是BN
 2非线性 Transforemr在FFN层引入非线性ResNet则在BoT中使用了3个非线性变换
 3输出映射 Transformer中的MHSA包含一个输出投影而BoT中没有
 4一般视觉任务常使用SGD Optimizer而Transformer通常使用Adam Optimizer 
Connection to DETR 

DETR是基于Transformer的目标检测框架DETR和BoTNet都尝试使用SA来提升目标检测和实例分割的性能不同之处在于DETR是在主干之外使用了SA模块主要目的是为了避免使用RP和非极大值抑制 

BoTNet目的是为了提出一个主干框架直接进行目标检测和实例分割。实验结果显示BoTNet对小物体的检测提升效果明显相信在未来可以解决DETR对小物体检测不佳的问题。 


Connection to Non-Local Neural Nets
 


Non-Local Nets主要是将Transformer与非局部算法结合比如在ResNet最后的1-2个stage中引入非局部模块来提升实例分割、视频分类的效果BoT是一种混合设计同时使用了卷积核SA。 



Fig 4展示了Non-Local层和SA层的区别
 



1MHSA中包含多个头来进行Q,K,V的映射
 



2NL Block中通常包含一个通道缩放因子对通道进行缩放因子通常设置为2而MHSA中设置为4
 



3NL Block是作为一个额外的模块插入到ResNet Block中 但是BoTNet是直接替换 Section III Method BoTNet的设计很简单将ResNet的最后三个3x3卷积替换为MHSA这样就实现了featuremap的全局计算。通常ResNet包含4个stage[c2,c3,c4,c5]每一个stage中堆叠不同的block并且使用残差连接。
 


 
本文的目标就是使用将SA用于高分辨率的实例分割因此最简单的方法就是在主干网路低分辨率特征图中加入注意力即c5阶段c5一般包含3个残差快因此将这3个残差快替换为MHSA模块就组成了BoTNet。 Table 1展示了BoTNet的网络结构Fig 4展示了MHSA的结构。涉及到步长卷积的操作在本文都替换为了池化操作。
 


 
Relative Position Encodings
 


 
近期研究表明相对位置编码更有效因为考虑了不同位置特征之间的相对距离从而能够有效的将不同内容之间的相对距离考虑进来因此BoTNet使用的是2D相对位置编码。 2.YOLOv5改进 2.1增加以下yolov5s_botnet.yaml文件 # parameters nc: 80 # number of classes depth_multiple: 0.33 # model depth multiple width_multiple: 0.50 # layer channel multipleanchors:- [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 backbone backbone:# [from, number, module, args] # [cchannels,module,kernlsize,strides][[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2 [c3,64*0.532,3][-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, 1, SPPF, [1024,5]],[-1, 3, BoT3, [1024]], # 9]# YOLOv5 head head:[[-1, 1, Conv, [512, 1, 1]], [-1, 1, nn.Upsample, [None, 2, nearest]],[[-1, 5], 1, Concat, [1]], # cat backbone P4[-1, 3, C3, [512, False]], # 13[-1, 1, Conv, [256, 1, 1]],[-1, 1, nn.Upsample, [None, 2, nearest]],[[-1, 3], 1, Concat, [1]], # cat backbone P3[-1, 3, C3, [256, False]], # 17 (P3/8-small)[-1, 1, Conv, [256, 3, 2]],[[-1, 14], 1, Concat, [1]], # cat head P4[-1, 3, C3, [512, False]], # 20 (P4/16-medium) [256, 256, 1, False] [-1, 1, Conv, [512, 3, 2]], #[256, 256, 3, 2] [[-1, 10], 1, Concat, [1]], # cat head P5[-1, 3, C3, [1024, False]], # 23 (P5/32-large) [512, 512, 1, False][[17, 20, 23], 1, Detect, [nc, anchors]], # Detect(P3, P4, P5)]2.2common.py配置 class MHSA(nn.Module):def __init__(self, n_dims, width14, height14, heads4,pos_embFalse):super(MHSA, self).__init__()self.heads headsself.query nn.Conv2d(n_dims, n_dims, kernel_size1)self.key nn.Conv2d(n_dims, n_dims, kernel_size1)self.value nn.Conv2d(n_dims, n_dims, kernel_size1)self.pospos_embif self.pos :self.rel_h_weight nn.Parameter(torch.randn([1, heads, (n_dims ) // heads, 1, int(height)]), requires_gradTrue)self.rel_w_weight nn.Parameter(torch.randn([1, heads, (n_dims )// heads, int(width), 1]), requires_gradTrue)self.softmax nn.Softmax(dim-1)def forward(self, x):n_batch, C, width, height x.size() q self.query(x).view(n_batch, self.heads, C // self.heads, -1)k self.key(x).view(n_batch, self.heads, C // self.heads, -1)v self.value(x).view(n_batch, self.heads, C // self.heads, -1)#print(q shape:{},k shape:{},v shape:{}.format(q.shape,k.shape,v.shape)) #1,4,64,256content_content torch.matmul(q.permute(0,1,3,2), k) #1,C,h*w,h*w# print(qkT,content_content.shape)c1,c2,c3,c4content_content.size()if self.pos:# print(old content_content shape,content_content.shape) #1,4,256,256content_position (self.rel_h_weight self.rel_w_weight).view(1, self.heads, C // self.heads, -1).permute(0,1,3,2) #1,4,1024,64content_position torch.matmul(content_position, q)# ([1, 4, 1024, 256])content_positioncontent_position if(content_content.shapecontent_position.shape)else content_position[:,: , :c3,]assert(content_content.shapecontent_position.shape)#print(new pos222- shape:,content_position.shape)# print(new content222- shape:,content_content.shape)energy content_content content_positionelse:energycontent_contentattention self.softmax(energy)out torch.matmul(v, attention.permute(0,1,3,2)) #1,4,256,64out out.view(n_batch, C, width, height)return out class BottleneckTransformer(nn.Module):# Transformer bottleneck#expansion 1def __init__(self, c1, c2, stride1, heads4, mhsaTrue, resolutionNone,expansion1):super(BottleneckTransformer, self).__init__()c_int(c2*expansion)self.cv1 Conv(c1, c_, 1,1)#self.bn1 nn.BatchNorm2d(c2)if not mhsa:self.cv2 Conv(c_,c2, 3, 1)else:self.cv2 nn.ModuleList()self.cv2.append(MHSA(c2, widthint(resolution[0]), heightint(resolution[1]), headsheads))if stride 2:self.cv2.append(nn.AvgPool2d(2, 2))self.cv2 nn.Sequential(*self.cv2)self.shortcut c1c2 if stride ! 1 or c1 ! expansion*c2:self.shortcut nn.Sequential(nn.Conv2d(c1, expansion*c2, kernel_size1, stridestride),nn.BatchNorm2d(expansion*c2))self.fc1 nn.Linear(c2, c2) def forward(self, x):outx self.cv2(self.cv1(x)) if self.shortcut else self.cv2(self.cv1(x))return outclass BoT3(nn.Module):# CSP Bottleneck with 3 convolutionsdef __init__(self, c1, c2, n1,e0.5,e21,w20,h20): # ch_in, ch_out, number, , expansion,w,hsuper(BoT3, self).__init__()c_ int(c2*e) # hidden channelsself.cv1 Conv(c1, c_, 1, 1)self.cv2 Conv(c1, c_, 1, 1)self.cv3 Conv(2 * c_, c2, 1) # actFReLU(c2)self.m nn.Sequential(*[BottleneckTransformer(c_ ,c_, stride1, heads4,mhsaTrue,resolution(w,h),expansione2) for _ in range(n)])# self.m nn.Sequential(*[CrossConv(c_, c_, 3, 1, g, 1.0, shortcut) for _ in range(n)])def forward(self, x):return self.cv3(torch.cat((self.m(self.cv1(x)), self.cv2(x)), dim1)) 2.3 yolo.py配置修改 然后找到./models/yolo.py文件下里的parse_model函数将加入的模块名BoT3加入进去 在 models/yolo.py文件夹下
http://www.zqtcl.cn/news/520546/

相关文章:

  • 2017年网站建设工作总结dhru商城网站建设
  • 建设网站需要申请深圳的网站建设的公司
  • 教育类的网站案例门户网站建设推广
  • 网站建设公司哪家比较好外贸网站建设公司价格
  • 做网站大概价格网站备案填写
  • 网站建设容易出现的问题网站建设学习网公司有哪些
  • 做网站的准备什么com域名
  • 百度资料怎么做网站赣州有没有做网站的
  • 网站上地图怎么做的福建省晋江市建设局网站
  • 休闲咖啡厅网站开发目标站内推广的方法和工具
  • 东莞做营销型网站怎样利用网站做引流
  • 国际1688网站网络平台宣传费用
  • 免费网站自助建站18款禁游戏黄app入口
  • 网站建设要经历哪些步骤?wordpress主题king
  • 个人定制网站外贸免费网站建设
  • ASP网站建设实训报告总结宜昌本地网站建设
  • 甘肃省建设厅官方网站张睿建立网站服务器
  • 有没有做博物馆的3d网站网页美工设计岗前培训
  • 如何防止网站被盗长沙知名网站建设
  • 汕尾住房和建设局网站山西招标网
  • 网站建设那好山西建设厅网站
  • 2免费做网站外贸公司注册需要多少钱
  • 莘县网站定制安卓软件开发培训机构
  • 织梦视频网站源码有没有专门做名片的网站
  • 济南本地网站自己做的网站怎么置顶
  • wordpress能做多大的站好用的网站后台
  • 想自己做网站流程国家住建网查企业资质
  • 英文网站怎么设计google浏览器入口
  • 重庆网站建设公司魁网个人备案网站名
  • 怀柔营销型网站建设wordpress菜单定制