Swin-Transformer中MSA和W-MSA模块计算复杂度推导(非常详细,最新)

news/2024/11/8 5:41:07/

在Swin-Transformer一文中,有这样两个公式,分别为:

1. Transformer中提出的Multi-head Self-Attention模块(MSA)
2. Swin-Transformer中提出的Window Multi-head Self-Attention模块(W-MSA)

两者计算量即计算复杂度分别为:

Ω ( M S A ) = 4 h w C 2 + 2 ( h w ) 2 C Ω(MSA) = 4hwC^2 + 2(hw)^2C (MSA)=4hwC2+2(hw)2C
Ω ( W − M S A ) = 4 h w C 2 + 2 M 2 h w C Ω(W-MSA) = 4hwC^2 + 2M^2hwC (WMSA)=4hwC2+2M2hwC

一、MSA模块计算量

Transformer中提出的多头自注意力模块运算公式为
A t t e n t i o n ( Q , K , V ) = S o f t m a x ( Q K T d k ) V Attention(Q,K,V)=Softmax(\frac {QK^T} {\sqrt{d_k} \quad})V Attention(Q,K,V)=Softmax(dk QKT)V
运算过程以及计算量如下图
(注:图中黑色字体为矩阵维度,橙色字体为计算量)
在这里插入图片描述 1. 首先,一张维度为H * W * C的图片,分别通过乘上一个CC的变换矩阵,分别变成QKV矩阵,维度仍为H * W * C。这样三个变换用到的计算量都为:HW * C^2,加起来为: 3 H W ∗ C 2 3HW*C^2 3HWC2
2. 然后做Q
K的转置,(HW * C) * (C * HW),得到的矩阵维度为HW * HW,计算量为: ( H W ) 2 ∗ C (HW)^2*C (HW)2C
3. 忽略根号dk和softmax的计算量,2中得到的 A矩阵 × V矩阵 ,结果的维度为HW * C,计算量为: ( H W ) 2 ∗ C (HW)^2*C (HW)2C
4. 因为是多头自注意力,所以在做完矩阵乘法后,需要矩阵拼接融合,做一个Proj映射,得到输出矩阵,维度和输入一样为HW * C,计算量为: H W ∗ C 2 HW*C^2 HWC2
5. 最后计算量加起来,为: Ω ( M S A ) = 4 h w C 2 + 2 ( h w ) 2 C Ω(MSA) = 4hwC^2 + 2(hw)^2C (MSA)=4hwC2+2(hw)2C

二、W-MSA模块计算量

W-MSA与MSA总体的计算过程是一致的,区别在于:W-MSA的长宽不再是H和W,而是 窗 口 : M ∗ M 窗口: M*M :MM并且有 H M ∗ W M 个 窗 口 需 要 计 算 \frac{H}{M}*\frac{W}{M}个窗口需要计算 MHMW
在这里插入图片描述
所以它的计算量为:
( h M ∗ w M ) ∗ ( 4 M 2 C 2 + 2 M 4 C ) = 4 h w C 2 + 2 M 2 h w C (\frac{h}{M}*\frac{w}{M})*(4M^2C^2+2M^4C)=4hwC^2+2M^2hwC (MhMw)(4M2C2+2M4C)=4hwC2+2M2hwC

分析

从他们公式可以看出区别主要在于两个公式的后半部分
带一点数进去就可以看出W-MSA在计算量上比MSA少很多,比如以原文中的一些参数设定为例:HW都为56,C为96,M为7
在这里插入图片描述
前者MSA为: 2 ∗ ( 56 ∗ 56 ) 2 ∗ 96 = 1888223232 2*(56*56)^2*96=1888223232 2(5656)296=1888223232
后者为W-MSA为: 2 ∗ 7 2 ∗ 56 ∗ 56 ∗ 96 = 29503488 2*7^2*56*56*96=29503488 272565696=29503488
二者相差了64倍。

论文名称:Swin Transformer: Hierarchical Vision Transformer using Shifted Windows
原论文地址: https://arxiv.org/abs/2103.14030


http://www.ppmy.cn/news/764496.html

相关文章

什么是主服务协议MSA - Master Service Agreement

整理一些零散的合同相关知识: 主服务协议(MSA - Master Service Agreement)可以简单理解为“框架合同”,它负责定义合同所涉及的两方或多方当前以及后续长期的共识性条款,其中规定的合同条目可以作为所有后续具体服务…

SOA架构和MSA架构之间的关系

目录 一、传统架构:简单单体模式 二、分布式架构:面向服务架构(SOA) 1、服务与SOA 2、SOA战略 3、SOA的两大基石:RPC和MQ 三、分布式架构:微服务架构(MSA) 什么是微服务 微服…

架构设计---soa与msa的概念

1. 前言 随着现在互联网行业的发展,越来越多的框架、中间件、容器等开源技术不断地涌现,更好地来服务于业务,实现业务并解决问题。然而面对众多的技术选择,我们要如何甄别出适合自己团队业务的技术呢?对于人来说&#…

SOA 与 MSA(微服务架构)

http://bbs.chinaunix.net/thread-4255092-2-1.html 1. 你了解微服务吗?SOA和微服务有何差异? 微服务架构被认为是目前最适合开发高可扩展性应用的架构风格,微服务架构致力于解决大型、复杂的应用的各种问题。它是一种基于服务的架构&#xf…

mt-misc-1

unzip 打开题目解压压缩包是文件夹名字是0-0A-Za-Z的结构个别里面有带数字的txt 这个题的思路就是按照文件对应的数字顺序排列然后base64解密 a [i, S, L, 9, G, D, 1, j, 2, N, J, 8, 3, F, c, B, R, x, p, Y, U, 0, 6, s, K, Z, P, E, h, 7, t, H, a, Q, l, n, 5, z, m, …

MSA配置参考

配置手册地址(英文) : http://bizsupport2.austin.hp.com/bc/docs/support/SupportManual/c01565941/c01565941.pdf Msa2000默认控制器IP Management Port IP Address: 10.0.0.2 (controller A), 10.0.0.3 (controller B) IP Subnet Mask: 255.255.255.0 Gateway IP Addres…

Android OAID 获取 基于MSA oaid_sdk_1.0.25.zip

目录 简介SDK下载支持版本开始使用可能遇到的问题替代方案APK下载写在最后 简介 本文链接: https://blog.csdn.net/qq_40460042/article/details/112966136 根据“移动智能终端补充设备标识体系”技术要求,华为、小米、OPPO、vivo、中兴、努比亚、魅族、联想、三星等…

MSAA的理解(个人向)

1. 大致流程 这里直接给出流程 首先,深度/模板缓冲,颜色缓冲都是4x于原本的缓冲区。 除了深度/模板缓冲,颜色缓冲,还有个Coverage Mask 的纹理,它的大小应该是等于原缓冲区,它的R G B A通道分别对应4个子…