- 各模块简介:
CBAM 是一个轻量级的通用模块,其中包含了空间注意力和通道注意力。
通道注意力是先对空间进行全局平均或最大池化后,在通道层面求得注意力。
空间注意力是先对通道进行全局平均或最大池化后,在空间层面求得注意力。
2.CBAM:
3.代码
空间注意力pytorch代码:
class SpatialAttention(nn.Module):
def __init__(self, kernel_size=7):
super(SpatialAttention, self).__init__()
assert kernel_size in (3, 7), 'kernel size must be 3 or 7'
padding = 3 if kernel_size == 7 else 1
self.conv1 = nn.Conv2d(2, 1, kernel_size, padding=padding, bias=False)
self.sigmoid = nn.Sigmoid()
def forward(self, x): # x.size() 30,40,50,30
avg_out = torch.mean(x, dim=1, keepdim=True)
max_out, _ = torch.max(x, dim=1, keepdim=True) # 30,1,50,30
x = torch.cat([avg_out, max_out], dim=1)
x = self.conv1(x) # 30,1,50,30
return self.sigmoid(x) # 30,1,50,30
参考:
注意力机制BAM和CBAM详细解析(附代码)_小小谢先生的博客-CSDN博客_空间注意力机制代码论文题目①:BAM: Bottleneck Attention Module论文题目②:CBAM:CBAM: Convolutional Block Attention ModuleBottlenet attention Module(BAM)依据人看东西时不可能把注意力放在所有的图像上,会把焦点目光聚集在图像的重要物体上。因此,作者提出了BAM注意力机制,仿照人的眼睛聚焦在图像几个重…https://blog.csdn.net/xiewenrui1996/article/details/105760359?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control&dist_request_id=&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control ; 通道注意力,空间注意力,像素注意力 – 知乎
Original: https://blog.csdn.net/dream_to_dream/article/details/123736578
Author: 菜鸟学习成长er
Title: CBAM、通道注意力、空间注意力学习
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/708457/
转载文章受原作者版权保护。转载请注明原作者出处!