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

长春做网站团队seo外链推广工具

长春做网站团队,seo外链推广工具,如何用h5做网站,文章做模板 wordpress从代码实现理解Vision Permutator:WeightedPermuteMLP模型解析 随着人工智能的快速发展,视觉识别任务变得越来越重要。最近提出的Vision Permutator架构为这一领域带来了新的思路,它通过可学习的排列操作重新定义了特征交互的方式。 今天我…

从代码实现理解Vision Permutator:WeightedPermuteMLP模型解析

随着人工智能的快速发展,视觉识别任务变得越来越重要。最近提出的Vision Permutator架构为这一领域带来了新的思路,它通过可学习的排列操作重新定义了特征交互的方式。

今天我们将深入解析Vision Permutator的核心组件——WeightedPermuteMLP模块,并通过代码实现来理解它的设计思想和工作原理。

Vision Permutator概述

传统的视觉模型大多基于CNN或Transformer架构。Vision Permutator提出了一种全新的网络结构,通过可学习的排列操作替代了传统模型中的池化和卷积操作。这种创新的设计显著提升了模型性能,同时降低了计算复杂度。

在论文《Vision Permutator: A Permutable MLP-Like Architecture for Visual Recognition》中,研究者提出了基于MLP的 Vision Transformer 替代方案——Permute MLP。该架构通过参数化排列实现了全局特征交互,从而达到了与Transformer相当或更优的效果。

WeightedPermuteMLP代码解析

让我们先来看一下WeightedPermuteMLP类的具体实现:

class WeightedPermuteMLP(nn.Module):def __init__(self,dim,seg_dim=8, qkv_bias=False, proj_drop=0.):super().__init__()self.seg_dim=seg_dimself.mlp_c=nn.Linear(dim,dim,bias=qkv_bias)self.mlp_h=nn.Linear(dim,dim,bias=qkv_bias)self.mlp_w=nn.Linear(dim(dim,dim,bias=qkv_bias)self.reweighting=MLP(dim,dim//4,dim*3)self.proj=nn.Linear(dim,dim)self.proj_drop=nn.Dropout(proj_drop)def forward(self,x) :B,H,W,C=x.shapec_embed=self.mlp_c(x)S=C//self.seg_dimh_embed=x.reshape(B,H,W,self.seg_dim,S).permute(0,3,2,1,4).reshape(B,self.seg_dim,W,H*S)h_embed=self.mlp_h(h_embed).reshape(B,self.seg_dim,W,H,S).permute(0,3,2,1,4).reshape(B,H,W,C)w_embed=x.reshape(B,H,W,self.seg_dim,S).permute(0,3,1,2,4).reshape(B,self.seg_dim,H,W*S)w_embed=self.mlp_w(w_embed).reshape(B,self.seg_dim,H,W,S).permute(0,2,3,1,4).reshape(B,H,W,C)weight=(c_embed+h_embed+w_embed).permute(0,3,1,2).flatten(2).mean(2)weight=self.reweighting(weight).reshape(B,C,3).permute(2,0,1).softmax(0).unsqueeze(2).unsqueeze(2)x=c_embed*weight[0]+w_embed*weight[1]+h_embed*weight[2]x=self.proj_drop(self.proj(x))return x

模块初始化

__init__方法中:

  • mlp_c, mlp_h, mlp_w分别对应channel、height、width方向的MLP层。
  • reweighting模块用于对不同方向的特征进行重新加权。
  • 最后通过一个投影层和Dropout完成最终的输出计算。

前向传播过程

  1. 特征提取

    • 通过三个不同的MLP分别提取channel、height、width方向的特征。
  2. 权重计算

    • 将不同方向的特征进行叠加,经过flatten和平均池化操作后输入到reweighting模块,得到每个通道的三组权重。
    • 使用softmax对权重进行归一化处理。
  3. 加权合并

    • 根据计算出的三个权重值,将channel、width、height方向的特征按比例相加,融合得到最终的输出特征。
  4. 投影输出

    • 通过线性变换将特征维度恢复到原始维度,并应用Dropout防止过拟合。

实验验证

我们可以通过以下代码进行简单的实验验证:

if __name__ == '__main__':input=torch.randn(64,8,8,512)seg_dim=8block=WeightedPermuteMLP(512,seg_dim)out=block(input)print(out.shape)  # 输出: torch.Size([64, 8, 8, 512])

从实验输出可以看到,模型成功保持了输入的尺寸不变,即在不改变特征图尺寸的情况下实现了特征的非线性变换和全局交互。

总结与展望

WeightedPermuteMLP模块通过创新性的思路,将特征交互的方式从简单的通道加法转变为基于权重的自适应融合。这种设计思想既降低了计算复杂度,又提升了模型性能。

对于未来的研究,我们可以关注以下几个方向:

  1. 多尺度特征融合:尝试在不同尺度上应用类似的设计思想。
  2. 动态权重调整:研究如何进一步提升权重的自适应能力。
  3. 轻量化设计:探索减少计算量的方法,使模型能够部署到更多场景。

Vision Permutator给我们展示了一种全新的思考方式,在特征交互和网络架构设计方面提供了新的视角。相信随着研究的深入,还会有更多的创新和突破涌现出来。

http://www.dtcms.com/wzjs/261258.html

相关文章:

  • 网页qq登录手机版西安网站优化公司
  • 公司经营范围网站开发及运营优秀软文范例100字
  • 老板说做个网站我要怎么做海外seo是什么
  • 四川工程信息网官网seo策略
  • 旅游网站建设费用搜索引擎优化方案案例
  • gif表情包制作网站站长工具关键词查询
  • 上海网站建设海淘科技英雄联盟更新公告最新
  • 学校网站建设开发商自助建站系统开发
  • rss 网站插件百度关键词热度
  • 网站建设营销的技巧哪个好用?
  • 为什么要进行网站备案晚上国网app
  • icp网站建设网站关键词排名外包
  • 网站编辑器是怎么做的如何创建一个网页
  • 建站软件西安网站关键词优化费用
  • 做网站纸箱关键词个人外包接单平台
  • 兴国县城乡规划建设局网站世界球队最新排名
  • 邯郸网站制作找谁廊坊关键词排名首页
  • 做网站的销售话术google浏览器官网入口
  • 南通影楼网站建设省委副书记
  • 大企业网站建设哪里好投放广告怎么投放
  • 福州公司网站建设如何自己创建网站
  • 请问有没有做网站app开发自学教程
  • wordpress不能加人购物车搜索引擎优化师
  • 工程建设承包合同seo系统教程
  • 手机网站建设电话咨询谷歌浏览器网址
  • 建大型网站费用关键词排名优化营销推广
  • 小榄网站建设百度seo入驻
  • 金融软件网站建设公司世界搜索引擎大全
  • 如何做响应式网站广州广告公司
  • 微网站设计与开发竞赛排名优化