Swin学习笔记

# 从头开始读代码,学习论文中描述的点是如何用代码实现的。

Swin Transformer训练设置:

1. Regular ImageNet-1K training

optimizer: AdamW for 300 epochs

from torch import optim as optim

optimizer = optim.AdamW(parameters, eps=config.TRAIN.OPTIMIZER.EPS, betas=config.TRAIN.OPTIMIZER.BETAS, lr=config.TRAIN.BASE_LR, weight_decay=config.TRAIN.WEIGHT_DECAY)

cosine decay learning rate scheduler and 20 epochs of linear warm-up.

A batch size of 1024, an initial learning rate of 0.001, and a weight decay of 0.05 are used.

2. Pretraining on ImageNet-22K and fine-tuning on ImageNet-1K.

消融实验因素:

1. 相对位置偏差(B)

\[{\rm{Attention}}(Q,K,V) = {\rm{SoftMax}}(\frac{{Q{K^T}}}{{\sqrt {{d_k}} }} + B)V\]

2. shifted windows

下采样结构(downsampling在前三个阶段的最后为PatchMerging,最后一个阶段为None)

(类似于YOLO中的focus结构,下图为YOLO中的结构)

Swin学习笔记_第1张图片Swin学习笔记_第2张图片

 (为什么这么做呢?以下回答参考文章(7条消息) yolov5中的Focus模块的理解_那年当上博士前的博客-CSDN博客)

 Focus的作用: 1.使图片在下采样的过程中,不带来信息丢失的情况下,将W、H的信息集中到通道上,再使用3 × 3的卷积对其进行特征提取,使得特征提取得更加的充分。2. 相比起直接卷积下采样操作,虽然增加了一点点的计算量,但是为后续的特征提取保留了更完整的图片下采样信息。

Swin学习笔记_第3张图片

 PatchMerging 结构

这个链接下的内容很详细!(2条消息) 对Swin-Transformer的理解_菜根檀的博客-CSDN博客

关于Drop_path与Dropout的解释:DropPath - 巴蜀秀才 - 博客园 (cnblogs.com)

慢慢更新中...

你可能感兴趣的:(python)