点击上方,选择星标置顶,不定期资源大放送

阅读大概需要5分钟

Follow小博主,每天更新前沿干货

【导读】之前详细介绍了轻量级网络架构的开源项目,详情请看深度学习中的轻量级网络架构总结与代码实现,本项目主要提供一个移动端网络架构的基础性工具,避免大家重复造轮子,后续我们将针对具体视觉任务集成更多的移动端网络架构。希望本项目既能让深度学习初学者快速入门,又能更好地服务科研学术和工业研发社区。后续将持续更新模型轻量化处理的一系列方法,包括:剪枝,量化,知识蒸馏等等,欢迎大家Star和Follow.  

Github地址:https://github.com/murufeng/awesome_lightweight_networks

本文将主要介绍一个CPU端的最强轻量型架构,LCNet在CPU上简直飞起,精度提升比MobileNetV3快3倍!详细介绍如下:

PP-LCNet: A Lightweight CPU Convolutional Neural Network

  • 论文地址:https://arxiv.org/pdf/2109.15099.pdf

  • 代码地址:https://github.com/murufeng/awesome_lightweight_networks/blob/main/light_cnns/mobile_cpu_network/lcnet.py

Motivation:

近年来,随着特征提取模型能力的提高,很多轻量级的网络架构应运而生,而其中利用NAS进行搜索的网络架构也层出不穷。典型的就是Facebook的FBNet系列。但很多移动端轻量级算法的优化都脱离了产业最常用的Intel CPU设备环境,模型加速缓慢。因此,在本文中,作者重新思考了在Intel-CPU上设计网络的轻量级模型元素。作者特别考虑以下三个基本问题。

  • 如何在不增加延迟的情况下促进网络学习到更强的表征能力?

  • 目前有哪些要素可以在CPU上提高轻量级模型精度?

  • 如何有效结合不同的策略(激活函数、注意力模块、各模块间的位置顺序等等)在CPU上设计出轻量级模型?

本文综合上述三个问题,总结了一系列在不增加推理时间的情况下提高精度的方法,以及如何将这些策略有效地结合起来以获得更好的精度和速度之间的平衡。最终提出了一种结合Intel-CPU端侧推理特性而设计的轻量高性能网络PP-LCNet,所提架构取得了比ShuffleNetV2、MobileNetV2、MobileNetV3以及GhostNet更优的延迟-精度均衡。具体网络架构如下:

主要解决方案:

  1. 采用H-Swish作为激活函数,性能大幅提升,而推理速度几乎不变。

  2. 在网络合适的位置添加少量的SE模块可以进一步提升模型性能;实验表明:当把SE置于模型的尾部时,它具有更好的效果。因此,我们仅将SE模块添加到接近网络尾部的模块即可, 这种处理方式具有更好的精度-速度平衡。

  3. 根据MixNet的实验论证结果:在一定范围内大的卷积核可以提升模型的性能,但是超过这个范围会有损模型的性能。本文通过实验总结了一些更大的卷积核在不同位置的作用,类似SE模块的位置,更大的卷积核在网络的中后部作用更明显。比如5x5卷积。

  4. GAP后使用更大的1x1卷积层;在GoogLeNet之后,GAP(Global-Average-Pooling)后往往直接接分类层,但是在轻量级网络中,这样会导致GAP后提取的特征没有得到进一步的融合和加工。如果在此后使用一个更大的1x1卷积层(等同于FC层),GAP后的特征便不会直接经过分类层,而是先进行了融合,并将融合的特征进行分类。这样可以在不影响模型推理速度的同时大大提升准确率。

  5. 使用dropout技术可以进一步提升模型的精度。

代码实现如下:

import torch
from light_cnns import lcnet_baseline
model = lcnet_baseline()
model.eval()
print(model)
input = torch.randn(1, 3, 224, 224)
y = model(input)
print(y.size())

实验结果展示

精彩内容待更新

欢迎大家follow和star该项目地址,我们会持续跟踪前沿论文工作,若项目在复现和整理过程中有任何问题,欢迎大家在issue中提出!

Github地址:https://github.com/murufeng/awesome_lightweight_networks

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

  1. 轻量型互联网应用架构方式

    点击上方 Java后端,选择 设为星标 优质文章,及时送达 作者 | 天如 链接 | http://suo.im/4qRPkj 一.前言 说到互联网应用架构,就绕不开微服务,当下(2019)最热门的微 ...

  2. YOLOv5/v8改进主干GhostNetV2系列:首发结合最新NIPS2022华为诺亚的GhostNetV2 架构:引入长距离注意力机制增强廉价操作,构建更强端侧轻量型骨干,打造高效轻量级检测器

  3. 端游、手游服务端游戏服务器架构 介绍

    端游.手游服务端常用的架构是什么样的? http://www.zhihu.com/question/29779732 根据知乎问答文章整理而成. 作者:韦易笑 谢邀,手游页游和端游的服务端本质上没区别 ...

  4. 端游及手游服务端的常用架构

    这篇文章还是讲的不错的: http://www.cocoachina.com/game/20150924/13545.html <开发者详解:端游及手游服务端的常用架构> 整理自知乎,文/ ...

  5. MobileViT: 一种更小,更快,高精度的轻量级Transformer端侧网络架构(附代码实现)...

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

  6. 超越谷歌MobileNet!华为提出端侧神经网络架构GhostNet|已开源

    2020-02-29 12:23:43 乾明 编辑整理 量子位 报道 | 公众号 QbitAI 同样精度,速度和计算量均少于此前SOTA算法.这就是华为诺亚方舟实验室提出的新型端侧神经网络架构Ghos ...

  7. WCF服务端运行时架构体系详解[下篇]

    作为WCF中一个核心概念,终结点在不同的语境中实际上指代不同的对象.站在服务描述的角度,我们所说的终结点实际上是指ServiceEndpoint对象.如果站在WCF服务端运行时框架来说,终结点实际上指 ...

  8. 单文件组件的组件传值_移动端组件化架构(下)

    我的组件化方案 对于项目架构来说,一定要建立于业务之上来设计架构.不同的项目业务不同,组件化方案的设计也会不同,应该设计最适合公司业务的架构. 架构设计 以我之前公司项目为例,项目是一个地图导航应用, ...

  9. 闪存联盟启动“百强架构师”行动 迎接认知时代架构挑战

    近日,以"从领先到顶尖,从局限到无限"为主题的2016 IBM全闪存时代峰会暨闪存联盟第六季在京盛大召开.IBM携手中国闪存联盟及两百余位企业和合作伙伴,共论认知时代下闪存解决方案 ...

最新文章

  1. html css样式div属性,div css
  2. 文件和目录权限chmod、更改所有者和所属组chown、umask、隐藏权限lsattr/chattr
  3. [luogu4128][shoi2006]有色图
  4. 前端学习(3078):vue+element今日头条管理-分页总页码的实现
  5. 修改Yarn的全局安装和缓存位置
  6. php html页面获取session,怎么在html中获取session变量
  7. 中国女性补体面膜市场趋势报告、技术动态创新及市场预测
  8. 使用递归方法 删除文件夹及文件夹内文件
  9. oracle 返回hashmap,解决:oracle+myBatis ResultMap 类型为 map 时返回结果中存在 timestamp 时使用 jackson 转 json 报错...
  10. 基于XML操作辅助类
  11. swift学习第四章
  12. Linux中yum使用教程,linux中关于yum使用
  13. Skyline软件二次开发初级——1如何在web页面中添加控件和加载三维地图数据
  14. iOS逆向:破解 APP防止dyld注入 的方法
  15. 基于matlab的基带gmsk调制解调,基于MATLAB的GMSK调制解调实验
  16. 百度网盘加速|火狐插件global speed挂了?不用担心有新方法
  17. [Python] 必应搜索主页的背景图片爬虫
  18. 面试中单例模式有几种写法?
  19. winform 窗体的单例模式
  20. Excel隔行求和计算公式

热门文章

  1. JS --正则表达式
  2. yii权限rbac验证三张表字段说明
  3. 对面向接口编程、按分层建项目的反思和新的分层结构思路
  4. Lazy Line Painter – 很有趣的 jQuery 路径动画插件
  5. centos的ssh配置
  6. 计算机机房建设监理,机房工程建设监理工作要点讲解
  7. 2021-05-27Series(三):Series和ndarray对比学习 转
  8. python正则表达式re.sub用法
  9. 亿级流量电商系统JVM性能调优实战
  10. Runtime.getRuntime().addShutdownHook(new Thread()