本文内容:在不同位置添加SpatialGroupEnhance
论文简介
卷积神经网络(Convolutional Neural Networks, cnn)通过收集分层的、不同部分的语义子特征来生成复杂对象的特征表示。这些子特征通常以分组的形式分布在每一层的特征向量中[43,32],代表各种语义实体。然而,这些子特征的激活往往受到相似模式和噪声背景的空间影响,导致错误的定位和识别。我们提出了一个空间群智能增强(SGE)模块,该模块可以通过为每个语义组中的每个空间位置生成注意因子来调整每个子特征的重要性,从而使每个个体组能够自主增强其学习到的表达并抑制可能的噪声。注意因子仅由每组内全局和局部特征描述符之间的相似性来引导,因此SGE模块的设计非常轻量,几乎没有额外的参数和计算。尽管只接受了类别监督的训练,但SGE组件在突出具有各种高阶语义的多个活动区域(例如狗的眼睛,鼻子等)方面非常有效。当与流行的CNN骨干网集成时,SGE可以显著提高图像识别任务的性能。具体来说,基于ResNet50主干网,SGE在ImageNet基准上实现了1.2%的Top-1精度提高,在各种检测器(Faster/Mask/Cascade RCNN和RetinaNet)的COCO基准上实现了1.0 ~ 2.0%的AP增益。
1.步骤一
新建blocks/SpatiaGroupEnhance.py文件,添加如下代码:
import torch
from torch import nn
class SpatialGrou