CSWin Transformer预训练权重怎么选:Tiny/Small/Base/Large六种模型参数与FLOPs全对比(附选型建议)
CSWin Transformer预训练权重怎么选:Tiny/Small/Base/Large六种模型参数与FLOPs全对比(附选型建议)
【免费下载链接】CSWin-TransformerCSWin Transformer: A General Vision Transformer Backbone with Cross-Shaped, CVPR 2022项目地址: https://gitcode.com/gh_mirrors/cs/CSWin-Transformer
CSWin Transformer 是 CVPR 2022 提出的通用视觉 Transformer 骨干网络,官方仓库提供了Tiny / Small / Base / Large 共 6 个预训练权重(224 与 384 两种分辨率)。面对"精度、参数量、计算量"三个维度,到底该选哪个?本文用一张全对比表 + 场景化选型建议,帮你 1 分钟完成CSWin Transformer 预训练模型选型。
一、CSWin Transformer 是什么?一句话讲清
CSWin 的核心创新是交叉形窗口自注意力(Cross-Shaped Window Self-Attention):把窗口内的特征切成水平、垂直两个"条带"分别计算注意力,再拼接融合。这样用有限的计算量就能逼近全局注意力效果,同时保持层级式结构(Stage 1~4 逐级下采样),天然适配分类、检测、分割等下游任务。
它的模型结构定义在 models/cswin.py 中,6 种规格通过embed_dim、depth、num_heads、split_size四个超参数组合而来,例如:
| 规格 | 定义函数(见 models/cswin.py) | embed_dim | depth |
|---|---|---|---|
| Tiny | CSWin_64_12211_tiny_224 | 64 | [1,2,21,1] |
| Small | CSWin_64_24322_small_224 | 64 | [2,4,32,2] |
| Base | CSWin_96_24322_base_224 | 96 | [2,4,32,2] |
| Large | CSWin_144_24322_large_224 | 144 | [2,4,32,2] |
💡 规律很简单:Tiny 和 Small 宽度相同(64),区别在深度;Base / Large 加深加宽。所以"小→大"的精度提升是平滑的,可以放心按预算往上选。
二、六种预训练权重全对比表(ImageNet 分类)
以下数据来自官方 README 的 ImageNet 主结果表:
| 模型 | 预训练数据 | 分辨率 | Top-1 精度 | 参数量 | FLOPs |
|---|---|---|---|---|---|
| 🥉 CSWin-T | ImageNet-1K | 224×224 | 82.8% | 23M | 4.3G |
| CSWin-S | ImageNet-1K | 224×224 | 83.6% | 35M | 6.9G |
| CSWin-B | ImageNet-1K | 224×224 | 84.2% | 78M | 15.0G |
| CSWin-B | ImageNet-1K | 384×384 | 85.5% | 78M | 47.0G |
| CSWin-L | ImageNet-22K | 224×224 | 86.5% | 173M | 31.5G |
| 🏆 CSWin-L | ImageNet-22K | 384×384 | 87.5% | 173M | 96.8G |
从表中可以读出 3 个关键结论:
- 从 T 到 S,性价比最高:仅多 12M 参数,精度 +0.8%;
- 384 分辨率是"免费的午餐":Base 224→384 精度 +1.3%,Large 224→384 精度 +1.0%,代价只是推理算力翻倍左右;
- Large 必须用 22K 预训练:官方 Large 权重均基于 ImageNet-22K 预训练,表征能力更强。
三、下游任务实测:分割与检测里谁更强?
预训练权重的价值最终要落到下游任务上。官方在 ADE20K 语义分割(UPerNet)和 COCO 检测(Mask R-CNN)上的结果:
ADE20K 语义分割(mIoU)
| 骨干 | 分割头 | mIoU | 总参数 | FLOPs |
|---|---|---|---|---|
| CSWin-T | UPerNet | 49.3 | 60M | 959G |
| CSWin-S | UPerNet | 50.4 | 65M | 1027G |
| CSWin-B | UPerNet | 51.1 | 109M | 1222G |
| CSWin-B(22K) | UPerNet 640 | 51.8 | 109M | 1941G |
| CSWin-L(22K) | UPerNet 640 | 53.4(测试时增强 55.7) | 208M | 2745G |
COCO 目标检测(Mask R-CNN,box mAP / mask mAP)
| 骨干 | box mAP | mask mAP | 总 FLOPs |
|---|---|---|---|
| CSWin-T | 49.0 | 43.6 | 279G |
| CSWin-S | 50.0 | 44.5 | 342G |
| CSWin-B | 50.8 | 44.9 | 526G |
📊 结论:Tiny 与 Large 在分割任务上相差 4+ mIoU,但参数量差 3 倍以上——你的业务对精度敏感度决定了选型。
四、按场景选型:3 个典型场景直接抄作业
1️⃣ 轻量部署 / 边缘设备 / 大批量在线推理 → 选 CSWin-Tiny
- 23M 参数、4.3G FLOPs,6 个模型中唯一"轻到飞起"的选项;
- 82.8% 的 ImageNet 精度对工业质检、图片打标等场景已足够;
- 搭配 Mask R-CNN 时总 FLOPs 仅 279G,是 6 个方案里最省显存的。
2️⃣ 精度与速度平衡 → 选 CSWin-Small 或 CSWin-Base(224)
- Small(35M / 6.9G):适合"资源有限但想要更好精度"的通用场景,是检测任务里性价比之王;
- Base 224(78M / 15G):适合 GPU 训练预算充足、希望直接用中等模型出效果的团队,分割 mIoU 达 51.1。
3️⃣ 冲 SOTA / 高价值离线推理 → 选 CSWin-Large(384)
- 87.5% ImageNet 精度、分割 55.7 mIoU(测试时增强),是榜单级选择;
- 96.8G FLOPs 意味着需要 A100 级别算力才跑得舒服,只建议离线/高价值场景使用。
五、预训练策略指南:1K 与 22K 权重怎么用?
选对模型后,还要用对"训练策略",仓库中 train.sh 与 finetune.sh 已给出官方配方:
| 策略 | 适用模型 | 说明 |
|---|---|---|
| 从头训练 | Tiny / Small / Base(224) | 8 卡 A100 级别,train.sh直接跑,drop-path 随模型增大而调高(0.2→0.5) |
| 两阶段微调(224→384) | Base 384 / Large 384 | 先用 224 预训练权重,再以 384 分辨率finetune.sh精调 20~30 epoch |
| 22K 大预训练 | Large 224 / Large 384 | 官方 Large 权重即 22K 预训练 + 1K 精调而来,普通团队不建议自训,直接下载官方权重即可 |
✅ 实用建议:大多数用户无需自己预训练,直接用官方 1K 或 22K 预训练权重做下游微调,是时间与精度的最优解。
六、下游微调快速上手
语义分割部分基于 mmsegmentation,官方提供 Tiny/Small/Base 三套 UPerNet 配置:
- Tiny 配置:
segmentation/configs/cswin/upernet_cswin_tiny.py - Small 配置:
segmentation/configs/cswin/upernet_cswin_small.py - Base 配置:
segmentation/configs/cswin/upernet_cswin_base.py - 分割骨干实现:
segmentation/backbone/cswin_transformer.py
微调时只需在训练命令中通过model.pretrained=<预训练权重路径>指定你选好的 CSWin 权重即可,具体流程见 segmentation/README.md。分类任务的 ImageNet 标签文件位于dataset/ILSVRC2012_name_train.txt与dataset/ILSVRC2012_name_val.txt。
代码获取方式:
git clone https://gitcode.com/gh_mirrors/cs/CSWin-Transformer七、选型速查表(收藏版)
| 你的场景 | 推荐权重 | 参数量 | FLOPs | 预期表现 |
|---|---|---|---|---|
| 边缘设备 / 低延迟 | CSWin-T 224 | 23M | 4.3G | 82.8% top-1 |
| 资源受限的通用任务 | CSWin-S 224 | 35M | 6.9G | 83.6% top-1 |
| 中等算力、追求稳定 | CSWin-B 224 | 78M | 15G | 84.2% top-1 |
| GPU 充足、精度优先 | CSWin-B 384 | 78M | 47G | 85.5% top-1 |
| 离线高价值、冲精度 | CSWin-L 384(22K) | 173M | 96.8G | 87.5% top-1 |
一句话总结:资源紧张选 Tiny,预算适中选 Small/Base,算力充足直接上 Large 384——先跑 Tiny 验证 pipeline,再逐级升配,是 CSWin Transformer 最省心的使用路径。🚀
【免费下载链接】CSWin-TransformerCSWin Transformer: A General Vision Transformer Backbone with Cross-Shaped, CVPR 2022项目地址: https://gitcode.com/gh_mirrors/cs/CSWin-Transformer
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
