CrossFormer 实现图像分类以及视觉任务的骨干网络替换 它使用交替的局部和全局注意力击...
CrossFormer 实现图像分类以及视觉任务的骨干网络替换 它使用交替的局部和全局注意力击败了 PVT 和 Swin。 全局注意力是在窗口维度上完成的以降低复杂性还具有跨尺度嵌入层被证明是可以改进所有视觉转换器的通用骨干网络。 并设计了动态相对位置偏差以允许网络推广到更高分辨率的图像。 只限pytorch框架CrossFormer这玩意儿最近在视觉任务圈子里火得有点不讲道理上来就把PVT和Swin按在地上摩擦。作为搞CV的老司机我连夜扒了论文源码发现它核心就三个绝活交替注意力、跨尺度贴贴、动态位移偏科。咱们直接上代码拆解这个变形金刚先看它的注意力机制怎么玩花活。传统的Swin搞的是窗口自嗨CrossFormer直接整了个局部和全局交替制class AlternatingAttention(nn.Module): def __init__(self, dim, window_size): super().__init__() self.local_attn LocalWindowAttention(dim, window_size) # 局部窗口 self.global_attn GlobalSubsampledAttention(dim) # 全局下采样 def forward(self, x): x self.local_attn(x) x x self.global_attn(x) x return x重点在这个全局注意力实现上用了个空间下采样的小聪明。传统全局注意力复杂度是O(n²)这货直接压缩特征图class GlobalSubsampledAttention(nn.Module): def __init__(self, dim, ratio4): super().__init__() self.down nn.Conv2d(dim, dim, ratio, strideratio) # 下采样卷积 self.attn nn.MultiheadAttention(dim, num_heads4) def forward(self, x): B, C, H, W x.shape down_x self.down(x).flatten(2).permute(2, 0, 1) # 下采样后展平 attn_out, _ self.attn(down_x, down_x, down_x) attn_out attn_out.permute(1, 2, 0).view(B, C, H//4, W//4) return F.interpolate(attn_out, size(H,W)) # 再上采样回来这波操作让计算量直接缩水到原来的1/16实测显存占用比Swin低了30%左右。不过要注意下采样倍数别贪多源码里默认用4倍再大容易丢失高频信息。CrossFormer 实现图像分类以及视觉任务的骨干网络替换 它使用交替的局部和全局注意力击败了 PVT 和 Swin。 全局注意力是在窗口维度上完成的以降低复杂性还具有跨尺度嵌入层被证明是可以改进所有视觉转换器的通用骨干网络。 并设计了动态相对位置偏差以允许网络推广到更高分辨率的图像。 只限pytorch框架跨尺度嵌入层才是真·黑科技直接把不同尺度的特征图拼起来搞基class CrossScaleEmbed(nn.Module): def __init__(self, in_dim, out_dim): super().__init__() self.conv3x3 nn.Conv2d(in_dim, out_dim//2, 3, padding1) self.conv5x5 nn.Conv2d(in_dim, out_dim//4, 5, padding2) self.conv7x7 nn.Conv2d(in_dim, out_dim//4, 7, padding3) def forward(self, x): feat3 self.conv3x3(x) feat5 self.conv5x5(x) feat7 self.conv7x7(x) return torch.cat([feat3, feat5, feat7], dim1) # 多尺度拼接实测在ImageNet上这层让top-1涨了快2个点。不过要注意输出通道分配源码里3x3占一半5x5和7x7各四分之一这样既保留细节又捕捉大范围特征。动态相对位置偏置是解决迁移问题的关键传统方法固定bias遇到高分辨率就崩class DynamicPosBias(nn.Module): def __init__(self, num_heads): super().__init__() self.pos_table nn.Parameter(torch.randn(num_heads, 7, 7)) # 初始化7x7表 def forward(self, q, k): delta_x q[:, :, 0:1] - k[:, :, 0].unsqueeze(2) # x坐标差 delta_y q[:, :, 1:2] - k[:, :, 1].unsqueeze(2) # y坐标差 # 动态索引位置偏置 bias self.pos_table[:, delta_x.long() 3, delta_y.long() 3] # 偏移到正数索引 return bias.permute(0, 3, 1, 2) # 调整维度对齐注意力头这模块让模型在迁移到1024x1024这样的高分辨率时mAP只掉0.3%而Swin掉了1.5%。不过要注意初始化时表格大小源码里用7x7覆盖-3到3的范围超出这个范围的位置差会被截断。实际替换backbone时要注意输入规范CrossFormer需要四阶段特征图class CrossFormerBackbone(nn.Module): def __init__(self): self.stem CrossScaleEmbed(3, 64) # 输入处理 self.stage1 AlternatingAttentionBlock(dim64, depth2) self.stage2 PatchMerging(64, 128) # 下采样 self.stage3 AlternatingAttentionBlock(dim128, depth6) self.stage4 PatchMerging(128, 256) # 后面继续堆叠...在COCO检测任务中替换ResNet50AP直接涨了4.2个点。不过要注意预训练参数加载官方提供的预训练模型需要转换key的名字可以用这个脚本def convert_weights(original_dict): new_dict {} for k, v in original_dict.items(): if pos_table in k: new_k k.replace(block, attn.pos_bias) # 位置偏置键名转换 elif global_attn in k: new_k k.replace(down., subsampler.) # 下采样层键名调整 else: new_k k new_dict[new_k] v return new_dict总之CrossFormer这波操作确实秀尤其适合需要多尺度特征的场景。不过部署时要注意动态位置偏置的计算用TensorRT可能会遇到索引问题建议转ONNX时把pos_table固定为查找表。最后放个实测数据在3090上跑224x224输入比Swin快15%显存省800MB香是真香

相关新闻

别再瞎选场镜(F-Theta Lens)啦!焦距、光斑、景深关系大揭秘

别再瞎选场镜(F-Theta Lens)啦!焦距、光斑、景深关系大揭秘

引言 在激光加工、激光测量等诸多先进技术领域,场镜(F-Theta Lens)作为关键的光学元件,发挥着不可或缺的作用。它能够将激光束在整个打标平面内形成均匀大小的聚焦光斑 ,确保激光能量精确地作用于目标区域,从而实现高精度的加工与测量任务。无论是精细的电子产品微加工,…

2026/7/3 15:11:22 阅读更多 →
基于单片机的彩灯控制系统

基于单片机的彩灯控制系统

收藏和点赞,您的关注是我创作的动力 文章目录 概要 一、研究的主要内容二、彩灯的方案设计3.1彩灯常见的工作模式3.2彩灯的设计方案以及工作原理3.2.1彩灯的设计方案3.2.2彩灯的工作原理3.4彩灯效果图 三、设计3.1 plc机型的选择3.2 程序框图 概要 随着社会经济和科…

2026/7/6 10:17:21 阅读更多 →
hadoop+spark+python旅游景点数据分析系统 人流量分析 客流量预测算法

hadoop+spark+python旅游景点数据分析系统 人流量分析 客流量预测算法

1、项目介绍 技术栈: python语言、Django框架、机器学习、线性回归预测算法、Echarts可视化 3、项目说明 一、预测 sysuser/views.py 算法:线性回归(Linear Regression) 原理:基于Scikit-learn库的LinearRegression…

2026/7/3 15:11:26 阅读更多 →

最新新闻

Plone 4 Demo Site深度解析:Zope架构、Dexterity与权限模型实战指南

Plone 4 Demo Site深度解析:Zope架构、Dexterity与权限模型实战指南

1. 项目概述:这不是一次普通升级,而是Plone 4时代的一次“现场教学” 如果你在2010年前后接触过内容管理系统(CMS),大概率会记得Plone——那个以安全、严谨和企业级架构著称的Python系开源平台。它不像WordPress那样靠…

2026/7/6 10:15:46 阅读更多 →
STM32F767ZG与SLO2016工业通信方案实战指南

STM32F767ZG与SLO2016工业通信方案实战指南

1. 为什么选择SLO2016与STM32F767ZG组合 在工业通信领域,稳定高效的信息传递系统往往需要硬件与协议的完美配合。SLO2016作为专业通信模块,与STM32F767ZG这款高性能微控制器的组合,恰好满足了这一需求。STM32F767ZG采用ARM Cortex-M7内核&…

2026/7/6 10:13:43 阅读更多 →
INSERT INTO 语句的底层契约与生产级避坑指南

INSERT INTO 语句的底层契约与生产级避坑指南

1. 为什么 INSERT INTO 是每个 SQL 使用者必须亲手写过十遍的语句刚带新人做数据库项目时,我总让他们在本地 PostgreSQL 里建一张test_users表,然后手动敲三遍INSERT INTO:第一遍错漏括号,第二遍列名和值数量对不上,第…

2026/7/6 10:13:43 阅读更多 →
YOLOv5 6.2 部署实战:RTX 3060 单卡实现 30 FPS 实时检测(附环境配置)

YOLOv5 6.2 部署实战:RTX 3060 单卡实现 30 FPS 实时检测(附环境配置)

YOLOv5 6.2 部署实战:RTX 3060 单卡实现30 FPS实时检测全流程解析1. 环境配置与性能优化基础在消费级显卡上实现高效目标检测需要精细的软硬件协同优化。我们以RTX 3060(12GB显存)为例,展示从零开始的完整部署流程。首先需要构建稳…

2026/7/6 10:11:39 阅读更多 →
Plone 4.3升级:内容运营自主化与数字韧性构建

Plone 4.3升级:内容运营自主化与数字韧性构建

1. 项目概述:Plone 4.3 升级不是“打补丁”,而是内容运营能力的结构性升级 我从2008年开始接触Plone,亲手部署过从2.5到4.2的每一次大版本迁移,也带团队做过二十多个高校和科研机构的Plone站点重构。所以当Plone 4.3正式发布时&a…

2026/7/6 10:09:35 阅读更多 →
Midscene视觉驱动浏览器自动化:原理、实战与性能优化指南

Midscene视觉驱动浏览器自动化:原理、实战与性能优化指南

1. 项目概述:当AI“看见”并“操作”你的浏览器浏览器自动化,这个概念对很多开发者、测试工程师甚至运营同学来说都不陌生。从早期的Selenium,到后来的Puppeteer、Playwright,我们一直在尝试用代码模拟人类在浏览器中的点击、输入…

2026/7/6 10:03:25 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/6 8:11:52 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻