网络中使用的transformer不是普通的transformer,修改了transformer的multi-head self attention (MSA)层为一个基于shifted windows的方法,因此称为swin transformer。该module的思想是:现有的transformer无论是在NLP还是在CV中都是提供了一个全局的注意力,也就是每个patch都对所有其它的patch都计算注意力,因此
h
×
w
h\times w
h×w个patch就要计算
(
h
×
w
)
2
(h\times w)^2
(h×w)2个注意力。然而图片的像素数量太大,全局注意力
O
(
n
2
)
O(n^2)
O(n2)的计算复杂度,是无法接受的。
因此swin transformer只对由M x M个patch组成的windows内部计算attention,这样以来计算复杂度变为了
O
(
h
×
w
)
O(h\times w)
O(h×w)