- Attention的基本流程是,查询q与键值k相乘获得权重a,a与值v相乘获得注意力值。这篇博客讲的很清晰。
- TopFormer使用多头注意力机制
- 查询qq的每个头中特征图的每个元素有key_dim个特征
- 键值kk和qq维度相同,为了相乘进行了转置
- 值vv和LeViT一致,扩大了每个元素的维度,特征更多
class Attention(torch.nn.Module):
def __init__(self, dim, key_dim, num_heads,
attn_ratio=4,
activation=None,
norm_cfg=dict(type='BN', requires_grad=True),):
super().__init__()
self.num_heads