https://arxiv.org/pdf/1807.06514.pdf
ChannelGate模块,首先使用自适应平均池化将输入特征图的空间维度压缩到1x1,然后通过一个多层感知机(MLP)来学习通道之间的依赖关系。MLP包含两个线性层,中间使用ReLU激活函数。学习到的权重向量再经过批量归一化后,被重新整形为与输入特征图相同的空间维度(通过广播机制),以便后续与输入特征图进行逐通道相乘或其他操作。这种通道注意力机制可以让模型更加关注重要的通道,并抑制不重要的通道。注意,这里的代码只计算了权重向量,并没有显示地与输入特征图进行相乘操作,这通常是在更大的网络结构中完成的。
SpatialGate模块,首先通过第一个卷积层对输入特征图进行压缩。然后通过一个包含两个全连接层的序列来学习空间依赖关系,中间使用了批标准化和ReLU激活函数。最后通过第三个卷积层和批标准化层得到权重向量,并将其形状扩展为与输入特征图相同,以便后续与输入特征图进行逐元素相乘或其他操作。这种空间注意力机制可以让模型更加关注重要的空间位置,并抑制不重要的区域。