swin transformer网络结构 每个部分的详解
时间: 2023-10-18 13:29:04 浏览: 110
Swin Transformer 是一种新型的 Transformer 网络结构,它采用了 Hierarchical Transformer 的思想,将传统 Transformer 的全局自注意力机制改为了局部自注意力机制,从而在保持模型精度的同时,大大降低了计算和存储成本。下面是 Swin Transformer 的网络结构详解。
1. Patch Partition
Swin Transformer 将输入的图像划分成若干个大小相等的图像块,称为 patch。这个过程可以使用一个简单的卷积层来实现。这样做的好处是可以将大的图像切分成小的块,从而减少计算量和存储量。
2. Shifted Window
为了增加局部自注意力机制,Swin Transformer 还引入了 Shifted Window 机制。具体来说,对于每一个 patch,我们将其周围的相邻 patch 看作它的邻居,然后在这个邻居集合中进行自注意力计算。但为了避免邻居之间的信息重复,我们将邻居集合进行轮廓位移,使得相邻 patch 的邻居并不完全相同。
3. Hierarchical Transformer
Swin Transformer 还引入了 Hierarchical Transformer 的思想,将模型分成多个阶段,每个阶段都包含多个 Transformer Block。在每个阶段中,模型首先对 patch 进行局部自注意力计算,然后再使用全局自注意力计算,从而获得不同尺度的特征表示。这样做的好处是可以提高模型的感受野,同时减少计算量和存储量。
4. MLP Mixer
除了传统的 Transformer Block,Swin Transformer 还引入了 MLP Mixer Block。MLP Mixer Block 采用了 Multi-Layer Perceptron(MLP)来替代传统的自注意力计算,从而在一定程度上减少了计算量和存储量。具体来说,MLP Mixer Block 由两个 MLP 层组成,一个用于通道维度的混合,另一个用于位置维度的混合。
总之,Swin Transformer 是一种新型的 Transformer 网络结构,它采用了 Hierarchical Transformer、Shifted Window 和 MLP Mixer 等技术,从而在保持模型精度的同时,大大降低了计算和存储成本。
阅读全文