Rotate to Attend: Convolutional Triplet Attention Module
PDF:https://arxiv.org/pdf/2010.03045.pdf PyTorch: https://github.com/shanglianlm0525/PyTorch-Networks
1 概述
Triplet Attention和SE,CBAM,GC的结构对比
跟其他注意力模块比起来,参数要少很多(参数少了,但是Flops并没有少。。。)
2 Triplet Attention
对于输入张量,triplet attention通过旋转操作,然后使用残差变换建立维度间的依存关系,并以可忽略的计算开销对通道间和空间信息进行编码。
具体的网络结构如上图所示:
- 第一个分支:通道注意力计算分支,输入特征经过Z-Pool,再接着7 x 7卷积,最后Sigmoid激活函数生成通道注意力权重
- 第二个分支:通道C和空间W维度交互捕获分支,输入特征先经过permute,变为H X C X W维度特征,接着在H维度上进行Z-Pool,后面操作类似。最后需要经过permuter变为C X H X W维度特征,方便进行element-wise相加
- 第三个分支:通道C和空间H维度交互捕获分支,输入特征先经过permute,变为W X H X C维度特征,接着在W维度上进行Z-Pool,后面操作类似。最后需要经过permuter变为C X H X W维度特征,方便进行element-wise相加
最后对3个分支输出特征进行相加求Avg
3 Experiments
3-1 ImageNet
3-2 COCO