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

辽宁品牌建设促进会 网站猎头公司怎么样

辽宁品牌建设促进会 网站,猎头公司怎么样,专门做衣服的网站有哪些,深圳企业网站制作论文名称#xff1a;《On the Integration of Self-Attention and Convolution》 论文地址#xff1a;2111.14556 (arxiv.org) 卷积和自注意力是两种强大的表示学习技术#xff0c;通常被认为是两种截然不同的并列方法。在本文中#xff0c;我们展示了它们之间存在一种强烈… 论文名称《On the Integration of Self-Attention and Convolution》 论文地址2111.14556 (arxiv.org) 卷积和自注意力是两种强大的表示学习技术通常被认为是两种截然不同的并列方法。在本文中我们展示了它们之间存在一种强烈的潜在关系从计算角度来看这两个范式的大部分计算实际上是使用相同的操作完成的。具体而言我们首先表明传统的卷积操作具有 k × k k×k k×k 的核大小可以被分解为 k² 个独立的 1 × 1 1×1 1×1 卷积然后是移位和求和操作。然后我们将自注意力模块中查询、键和值的投影解释为多个 1 × 1 1×1 1×1 卷积然后计算注意力权重并聚合这些值。因此这两个模块的第一阶段包含了相似的操作。更重要的是相较于第二阶段第一阶段在计算复杂性上占据主要地位频道大小的平方。这一发现自然引出了这两个看似截然不同的范式的巧妙结合即一个混合模型它既享受自注意力和卷积的好处同时比纯卷积或纯自注意力模型具有最小的计算开销。大量实验表明我们的模型在图像识别和下游任务上持续取得比竞争基准更好的结果。 问题背景 论文讨论了深度学习中的两大主要方法卷积和自注意力。在计算机视觉领域卷积神经网络CNN通常是默认的选择而自注意力则在自然语言处理NLP中更常见。该论文的背景在于这些两种技术的不同设计范式以及它们在计算机视觉任务中的应用。这引发了一个问题这两者是否可以通过某种方式结合以实现更好的性能和效率。 核心概念 该论文提出了一种名为ACmix的新方法将卷积和自注意力结合在一起。核心概念在于发现这两种技术在计算上有共同点。传统的卷积可以分解为一系列的 1 × 1 1×1 1×1 卷积而自注意力的投影过程也类似。这种相似性为将这两种方法结合在一起提供了机会从而形成一种混合模型既具有卷积的局部特性又具备自注意力的灵活性。 模块的操作步骤 展示了 ACmix 的概念草图。我们探索了卷积和自注意力之间的密切关系这种关系在于共享相同的计算负载1×1 卷积并结合其余的轻量级聚合操作。我们展示了每个模块相对于特征通道的计算复杂性。 在ACmix中操作步骤分为两个阶段 阶段一将输入特征映射通过 1 × 1 1×1 1×1 卷积进行投影形成中间特征。阶段二根据不同的范式分别应用卷积和自注意力的操作。在卷积路径上利用Shift和Summation操作实现卷积过程。在自注意力路径上计算查询、键和值然后应用传统的自注意力方法。 文章贡献 揭示了卷积和自注意力之间的强关联性提供了一种理解这两者之间关系的新方式。提出了ACmix一种将卷积和自注意力优雅地结合在一起的模型。它能够在没有额外计算负担的情况下享受这两种方法的优势。 实验结果与应用 ACmix在ImageNet分类、语义分割和目标检测等任务中进行了验证。实验结果表明与传统的卷积或自注意力模型相比ACmix在准确性、计算开销和参数数量上具有优势。在ImageNet分类任务中ACmix的模型在相同的FLOPs或参数数量下表现出色并且在与竞争对手的基准比较中取得了持续的改进。此外ACmix在ADE20K语义分割任务和COCO目标检测任务中也显示出明显的改进进一步验证了该模型的有效性。 对未来工作的启示 该论文提出了ACmix这一混合模型为计算机视觉领域提供了一种新的方向。它揭示了卷积和自注意力之间的关系为设计新的学习范式提供了灵感。未来的工作可以在以下几个方面继续探索 在其他自注意力模块中应用ACmix并进一步验证其有效性。研究如何在更大的模型中更好地整合卷积和自注意力从而在更复杂的任务中实现性能提升。考虑在实际应用中进一步优化ACmix的计算效率以确保其在生产环境中的可用性。 代码 import torch import torch.nn as nn import torch.nn.functional as Fdef position(H, W, is_cudaTrue):if is_cuda:loc_w torch.linspace(-1.0, 1.0, W).cuda().unsqueeze(0).repeat(H, 1)loc_h torch.linspace(-1.0, 1.0, H).cuda().unsqueeze(1).repeat(1, W)else:loc_w torch.linspace(-1.0, 1.0, W).unsqueeze(0).repeat(H, 1)loc_h torch.linspace(-1.0, 1.0, H).unsqueeze(1).repeat(1, W)loc torch.cat([loc_w.unsqueeze(0), loc_h.unsqueeze(0)], 0).unsqueeze(0)return locdef stride(x, stride):b, c, h, w x.shapereturn x[:, :, ::stride, ::stride]def init_rate_half(tensor):if tensor is not None:tensor.data.fill_(0.5)def init_rate_0(tensor):if tensor is not None:tensor.data.fill_(0.0)class ACmix(nn.Module):def __init__(self,in_planes,out_planes,kernel_att7,head4,kernel_conv3,stride1,dilation1,):super(ACmix, self).__init__()self.in_planes in_planesself.out_planes out_planesself.head headself.kernel_att kernel_attself.kernel_conv kernel_convself.stride strideself.dilation dilationself.rate1 torch.nn.Parameter(torch.Tensor(1))self.rate2 torch.nn.Parameter(torch.Tensor(1))self.head_dim self.out_planes // self.headself.conv1 nn.Conv2d(in_planes, out_planes, kernel_size1)self.conv2 nn.Conv2d(in_planes, out_planes, kernel_size1)self.conv3 nn.Conv2d(in_planes, out_planes, kernel_size1)self.conv_p nn.Conv2d(2, self.head_dim, kernel_size1)self.padding_att (self.dilation * (self.kernel_att - 1) 1) // 2self.pad_att torch.nn.ReflectionPad2d(self.padding_att)self.unfold nn.Unfold(kernel_sizeself.kernel_att, padding0, strideself.stride)self.softmax torch.nn.Softmax(dim1)self.fc nn.Conv2d(3 * self.head,self.kernel_conv * self.kernel_conv,kernel_size1,biasFalse,)self.dep_conv nn.Conv2d(self.kernel_conv * self.kernel_conv * self.head_dim,out_planes,kernel_sizeself.kernel_conv,biasTrue,groupsself.head_dim,padding1,stridestride,)self.reset_parameters()def reset_parameters(self):init_rate_half(self.rate1)init_rate_half(self.rate2)kernel torch.zeros(self.kernel_conv * self.kernel_conv, self.kernel_conv, self.kernel_conv)for i in range(self.kernel_conv * self.kernel_conv):kernel[i, i // self.kernel_conv, i % self.kernel_conv] 1.0kernel kernel.squeeze(0).repeat(self.out_planes, 1, 1, 1)self.dep_conv.weight nn.Parameter(datakernel, requires_gradTrue)self.dep_conv.bias init_rate_0(self.dep_conv.bias)def forward(self, x):q, k, v self.conv1(x), self.conv2(x), self.conv3(x)scaling float(self.head_dim) ** -0.5b, c, h, w q.shapeh_out, w_out h // self.stride, w // self.stridepe self.conv_p(position(h, w, x.is_cuda))q_att q.view(b * self.head, self.head_dim, h, w) * scalingk_att k.view(b * self.head, self.head_dim, h, w)v_att v.view(b * self.head, self.head_dim, h, w)if self.stride 1:q_att stride(q_att, self.stride)q_pe stride(pe, self.stride)else:q_pe peunfold_k self.unfold(self.pad_att(k_att)).view(b * self.head,self.head_dim,self.kernel_att * self.kernel_att,h_out,w_out,) # b*head, head_dim, k_att^2, h_out, w_outunfold_rpe self.unfold(self.pad_att(pe)).view(1, self.head_dim, self.kernel_att * self.kernel_att, h_out, w_out) # 1, head_dim, k_att^2, h_out, w_outatt (q_att.unsqueeze(2) * (unfold_k q_pe.unsqueeze(2) - unfold_rpe)).sum(1) # (b*head, head_dim, 1, h_out, w_out) * (b*head, head_dim, k_att^2, h_out, w_out) - (b*head, k_att^2, h_out, w_out)att self.softmax(att)out_att self.unfold(self.pad_att(v_att)).view(b * self.head,self.head_dim,self.kernel_att * self.kernel_att,h_out,w_out,)out_att ((att.unsqueeze(1) * out_att).sum(2).view(b, self.out_planes, h_out, w_out))f_all self.fc(torch.cat([q.view(b, self.head, self.head_dim, h * w),k.view(b, self.head, self.head_dim, h * w),v.view(b, self.head, self.head_dim, h * w),],1,))f_conv f_all.permute(0, 2, 1, 3).reshape(x.shape[0], -1, x.shape[-2], x.shape[-1])out_conv self.dep_conv(f_conv)return self.rate1 * out_att self.rate2 * out_convif __name__ __main__:input torch.randn(64, 256, 8, 8)model ACmix(in_planes256, out_planes256)output model(input)print(output.shape)
http://www.zqtcl.cn/news/69797/

相关文章:

  • 许昌市住房建设局网站吉安百度seo
  • 哪里有网站建站公司深圳商业网站建设
  • 如何侵入网站服务器自媒体网站建设
  • 建设网站方法有哪些内容项目资源整合网
  • 建立网站需要多少钱费用个人养老缴费明细查询
  • 制作自己的网站学校订阅号怎么制作
  • 装饰网站建设套餐报价网站导航设计技巧
  • 手机网站注意哪些问题吗上海网站建设报价方案
  • 做网站一定要代码吗明港网站建设
  • nas做网站需要备案吗怎么建设营销型网站
  • 济南网站地址jetpack wordpress
  • wordpress开启会员注册优化关键词的作用
  • 织梦园模板网站搭建交流平台
  • 怎么做网站后台中国建设银行官方网站手机银行
  • 怎样查询网站的备案号西安旅游攻略必去景点推荐
  • 发软文提高网站权重北京网络安全大会
  • 怎样查看别人网站流量适合网络推广的项目
  • 给卖假性药的做网站一般要判多久深圳动画营销推广的原因
  • 做网站高校视频wordpress上传html文件上传
  • 好的网站或网页常德做网站多少钱
  • 大网站建设怎么做百度网页推广
  • 义乌好品质自适应网站建设wordpress作品集插件
  • 随州网站建设价格企业咨询公司收费标准
  • 高端网站开发哪家强辽宁建设执业信息网站
  • wordpress做网站卡吗北京市建设监理协会网站
  • 做网站能赚多少怎么做一个购物平台
  • 手机网站前端设计wordpress占用资源大
  • 可信网站标志个人网页代码html个人网页完整代码
  • 营销网站建设都是专业技术人员吗确认已有81人感染
  • 企业网站模板演示在线做ppt的网站源代码