swin transformer具体参数
时间: 2025-01-15 11:08:35 浏览: 50
### Swin Transformer 参数详解
#### 架构概述
Swin Transformer 的架构设计旨在解决将 Transformer 应用于计算机视觉任务中的挑战[^2]。该模型通过分层的方式处理图像数据,在不同尺度下提取特征。
#### 超参数设置
##### 输入尺寸与 Patch 划分
输入图片通常会被划分为固定大小的小方块(patches),例如对于分辨率为 \(H \times W\) 的图像,会将其分割成多个 \(P \times P\) 大小的 patch。每个 patch 都被视为一个 token 进行后续处理[^3]。
##### 嵌入维度 (Embedding Dimension)
为了将二维的空间信息转换为适合 Transformer 模型的一维序列形式,会对每一个 patch 执行线性映射操作得到对应的 embedding 向量。假设初始嵌入维度设为 C,则经过此过程后的向量长度即为 C。
##### 层级结构
整个网络由若干个 stage 组成,每经历一次 stage 就意味着空间分辨率减半而通道数加倍。具体来说:
- **Stage 1**: 使用标准的窗口多头自注意力机制(Window-based Multi-head Self Attention, W-MSA) 和 MLP 来构建基础模块;
- **Patch Merging Layer**: 在相邻 stages 之间加入特殊的降采样层——patch merging layer,它能够有效地减少一半的高度和宽度的同时增加两倍的通道数目;
- **Stages 2~4**: 类似于 Stage 1 的设计模式继续堆叠更多层次,不过随着深度加深,window size 或者 shift window strategy 可能会发生变化以适应不同的感受野需求;
##### 注意力窗口配置
在各阶段内部采用滑动窗口策略来定义局部区域内的相互作用范围。比如 Window Size 设置为7×7像素,这意味着只允许当前 patch 内部以及周围六个邻居之间的交互发生在同一个 attention map 上面。当进入下一个 block 时则切换至 shifted windows 方式以便覆盖更广泛的关系[^4]。
##### Dropout Rate & Other Regularization Techniques
为了避免过拟合现象的发生,除了常规使用的 dropout 技术外,还可以考虑其他正则化手段如 label smoothing、mixup 等方法进一步提升泛化能力。
```python
class Config(object):
img_size = 224 # 图像尺寸
patch_size = 4 # 单个patch边长
in_chans = 3 # 输入通道数(彩色图像是RGB三个颜色通道)
embed_dim = 96 # 嵌入维度C
depths=[2, 2, 6, 2] # 各stage层数列表
num_heads=[3, 6, 12, 24]# 各stage头部数量列表
window_size=7 # 注意力窗口大小
mlp_ratio=4.0 # MLP隐藏层扩展比例因子
qkv_bias=True # 是否开启QKV偏置项
drop_rate=0. # 整体dropout率
attn_drop_rate=0. # 自注意力层内dropout率
drop_path_rate=0.1 # Stochastic Depth概率衰减速率
```
阅读全文
相关推荐


















