18 lines
894 B
Python
18 lines
894 B
Python
|
"""
|
|||
|
BAM: Bottleneck Attention Module---BMCV2018
|
|||
|
|
|||
|
论文地址:https://arxiv.org/pdf/1807.06514.pdf
|
|||
|
|
|||
|
这是CBAM同作者同时期的工作,工作与CBAM非常相似,也是双重Attention,不同的是CBAM是将两个attention的结果串联;而BAM是直接将两个attention矩阵进行相加。
|
|||
|
|
|||
|
Channel Attention方面,与SE的结构基本一样。Spatial Attention方面,还是在通道维度进行pool,然后用了两次3x3的空洞卷积,最后将用一次1x1的卷积得到Spatial Attention的矩阵。
|
|||
|
|
|||
|
最后Channel Attention和Spatial Attention矩阵进行相加(这里用到了广播机制),并进行归一化,这样一来,就得到了空间和通道结合的attention矩阵。
|
|||
|
"""
|
|||
|
from attention.BAM import BAMBlock
|
|||
|
import torch
|
|||
|
|
|||
|
input = torch.randn(50, 512, 7, 7)
|
|||
|
bam = BAMBlock(channel=512, reduction=16, dia_val=2)
|
|||
|
output = bam(input)
|
|||
|
print(output.shape)
|