ULSAM: Ultra-Lightweight Subspace Attention Module for Compact Convolutional Neural Networks
论文地址

作者提出了一种新的用于紧凑网络神经网络的注意力块(ULSAM),它可以学习每个特征子空间的个体注意力映射,并能够在多尺度、多频率特征学习的同时高效地学习跨信道信息。

主要思想:将提取的特征分成g组,对每组的子特征(论文中称问subspace)进行空间上的重新校准,最后,把g组特征concatenate到一起。具体做法看下面代码。首先用1×1 depthwise conv对每组特征提取channel为nin的新特征,然后maxpool,再pointwise conv成channel为1的attention map,最后利用softmax对attention map在H维缩放,确保attention map的权重和为1。

class SubSpace(nn.Module):"""Subspace class....Attributes----------nin : intnumber of input feature volume.Methods-------__init__(nin)initialize method.forward(x)forward pass."""def __init__(self, nin):super(SubSpace, self).__init__()self.conv_dws = nn.Conv2d(nin, nin, kernel_size=1, stride=1, padding=0, groups=nin)self.bn_dws = nn.BatchNorm2d(nin, momentum=0.9)self.relu_dws = nn.ReLU(inplace=False)self.maxpool = nn.MaxPool2d(kernel_size=3, stride=1, padding=1)self.conv_point = nn.Conv2d(nin, 1, kernel_size=1, stride=1, padding=0, groups=1)self.bn_point = nn.BatchNorm2d(1, momentum=0.9)self.relu_point = nn.ReLU(inplace=False)self.softmax = nn.Softmax(dim=2)def forward(self, x):out = self.conv_dws(x)out = self.bn_dws(out)out = self.relu_dws(out)out = self.maxpool(out)out = self.conv_point(out)out = self.bn_point(out)out = self.relu_point(out)m, n, p, q = out.shapeout = self.softmax(out.view(m, n, -1))out = out.view(m, n, p, q)out = out.expand(x.shape[0], x.shape[1], x.shape[2], x.shape[3])out = torch.mul(out, x)out = out + xreturn out

分析一下整个attention map的计算复杂度,主要就是dw conv中的nin×h×w×1×1跟pw conv中nin×h×w×1,同时考虑到原始特征由分组而来,计算量缺失很小。


从上图结果来看,(POS11:1表示在第11个layer后在使用ULSAM),分组数g=4时可以获得较好的结果。虽然,整体增益不大,但考虑在整体计算复杂度基本不变,此方法确实有些意思。但有个问题,该方法增加了add,mul等elment-wise操作,这也会增加计算负担,并且在flops和param中无法体现。

轻量型注意力模块:ULSAM相关推荐

  1. 目标检测算法——YOLOv5/YOLOv7改进结合轻量型Ghost模块

    >>>深度学习Tricks,第一时间送达<<< 论文题目:<GhostNet:More Features from Cheap Operations> ...

  2. 【移动端最强架构】LCNet吊打现有主流轻量型网络(附代码实现)

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要5分钟 Follow小博主,每天更新前沿干货 [导读]之前详细介绍了轻量级网络架构的开源项目,详情请看深度学习中的轻量级网络架构总结与代码实现 ...

  3. 轻量型模型比肩千亿大模型,新一代中文语言模型孟子,刷新CLUE纪录!

    转自:机器之心 近日,澜舟科技 - 创新工场团队与上海交通大学.北京理工大学等单位联合研发的中文语言模型-孟子轻量型模型,超越腾讯.搜狗等公司,在中文语言理解评测 CLUE 榜单上登顶第一,刷新业界记 ...

  4. 【深度学习】Transformer 向轻量型迈进!微软与中科院提出两路并行的 Mobile-Former...

    作者丨happy 编辑丨极市平台 导读 本文创造性的将MobileNet与Transformer进行了两路并行设计,穿插着全局与特征的双向融合,同时利用卷积与Transformer两者的优势达到&qu ...

  5. 百度:YOLOX和NanoDet都没我优秀!轻量型实时目标检测模型PP-PicoDet开源

    作者丨happy    编辑丨极市平台 导读 百度提出新型移动端实时检测模型PP-PicoDet.本文对anchor-free策略在轻量型检测器中的应用进行了探索:对骨干结构进行了增强并设计了一种轻量 ...

  6. 轻量型「孟子」模型比肩千亿大模型!AI大牛周明率队刷新CLUE新纪录

    AI 科技评论报道 编辑 | 陈大鑫 近日,澜舟科技-创新工场团队与上海交通大学.北京理工大学等单位联合研发的中文语言模型-孟子轻量型模型,超越腾讯.搜狗等公司,在中文语言理解评测CLUE榜单上登顶第 ...

  7. 【深度学习】百度:YOLOX和NanoDet都没我优秀!轻量型实时目标检测模型PP-PicoDet开源...

    作者丨happy 编辑丨极市平台 导读 百度提出新型移动端实时检测模型PP-PicoDet.本文对anchor-free策略在轻量型检测器中的应用进行了探索:对骨干结构进行了增强并设计了一种轻量Nec ...

  8. Transformer 向轻量型迈进,微软与中科院提出两路并行的 Mobile-Former

    作者丨happy 编辑丨极市平台 本文原创首发于极市平台,转载请获得授权并标明出处. VisionTransformer向轻量型迈进,微软与中科大提出两路并行的Mobile-Former 已有的Tra ...

  9. 基于轻量型Web服务器Raspkate的RESTful API的实现

    在上一篇文章<Raspkate - 基于.NET的可运行于树莓派的轻量型Web服务器>中,我们已经了解了Raspkate这一轻量型Web服务器,今天,我们再一起了解下如何基于Raspkat ...

最新文章

  1. Opencv 数学基础--范数(17)
  2. 数字孪生技术,让酷炫的智慧城市不再遥不可及
  3. MongoDB学习(五)使用Java驱动程序3.3操作MongoDB快速入门
  4. Linux下的LED子系统
  5. xp关无线配置服务器,xp系统怎么关闭无线功能
  6. django中的反向解析的好处
  7. 软件定义网络文章列表
  8. JAVA学习-JAVA实现对象描述(java面向对象特性)
  9. 利用TestDriven.net和NUnit进行单元测试(转)
  10. 五一单片机将歌谱转换为c语言,51单片机蜂鸣器音乐简谱转换工具
  11. 自己不优秀,认识谁都没用
  12. 行走的Linux——将ubuntu装入移动硬盘
  13. 7.2_gd-sgd
  14. vue+element-ui 动态加载本地图片
  15. 如何更新/升级 python 库?
  16. LTE,NR中的基本时间单位
  17. C语言常见问题(五)——字符串
  18. coda创建虚拟环境后无法切换到原环境
  19. 《焦元溥古典音乐入门指南》学习笔记————第一章 为什么我们还在听古典音乐?
  20. Typora的下载和安装

热门文章

  1. 筋膜枪功能方案+PCBA
  2. Java-day12(面向对象中2 Debug 调试 方法的重写 多态性)
  3. ros通过moveit控制真实机械臂
  4. 2022-2027年中国绵羊毛行业市场全景评估及发展战略规划报告
  5. QT 程序异常结束 exe crashed
  6. XATwo/Three-Phase-Commit
  7. macbook此位置没有服务器,macbook找不到指定服务器的主机
  8. 利用CSS伪元素写三角形
  9. 【openEuler系列】配置本地yum源
  10. 关于JSP的学习笔记整理