论文地址:  百度飞桨https://arxiv.org/abs/2109.15099https://arxiv.org/abs/2109.15099

本文提出了一种基于MKLDNN加速策略的轻量级CPU网络,称为PP-LCNet。它提高了轻量级模型在多个任务上的性能。本文列出了在延迟几乎恒定的情况下提高网络精度的技术。通过这些改进,PP-LCNet的精度在相同的推理时间,可以大大超过以前的网络结构。 

由图1可以看出,PP-LCNet 精度提升且比MobileNetV3快3倍!

现有问题:随着模型特征提取能力的增加以及模型参数和FLOPs数量的增加,在基于移动设备的ARM架构的基础上或基于CPU设备的架构上实现快速推理速度变得困难。在这种情况下,已经提出了许多优秀的移动网络,但由于MKLDNN的限制,这些网络的速度在启用了MKLDNN的IntelCPU上并不理想。

在本文中,作者重新考虑了在intel-cpu上设计的网络的轻量级模型元素。特别是,考虑以下三个基本问题:

  1. 如何在不增加延迟的情况下促进网络学习更强的特征表示。
  2. 提高CPU上轻量级模型精度的要素是什么。
  3. 如何有效地结合不同的策略,在CPU上设计轻量级的模型。

主要贡献是总结了一系列在不增加推理时间的情况下提高精度的方法,以及如何将这些方法结合起来,以获得更好的精度和速度的平衡。在此基础上,我们提出了设计轻量级CNN的一般规则,并为其他研究人员在CPU设备上构建CNN提供了新的思路。此外,它还可以为神经架构搜索研究人员在构建搜索空间时提供新的思路,从而更快地获得更好的模型。

网络整体结构:

 具体细节: 

如图2所示,使用MobileNetV1提到的DepthSepConv作为基本模块。这个块没有额外的连接和逐元素相加等额外的操作,这些操作不仅会降低模型的推理速度,而且不会提高小模型的精度。此外,这个块已经被英特尔CPU加速库深入优化,推理速度可以超过其他轻量级块。

Better activation function
使用HSwish 激活函数。
众所周知,激活函数的质量往往决定着网络的性能。由于网络的激活函数由Sigmoid变为ReLU,网络的性能得到了很大的提高。近年来,出现了越来越多超越ReLU的激活函数。当EfficientNet使用Swish激活函数表现出更好的性能后,MobileNetV3的作者将其升级为HSwish,从而避免了大量的指数运算。从那时起,许多轻量级网络也使用这个激活函数。作者还将BaseNet中的激活函数从ReLU替换为HSwish,性能有了很大的提高,而推理时间几乎没有改变。

import torch
import torch.nn as nnimport torch.nn.functional as F
import mathclass Hswish(nn.Module):def forward(self, x):out = x * F.relu6(x + 3, inplace=True) / 6return out

SE modules at appropriate positions

SE模块自被提出以来已被大量的网络使用。该模块还帮助SENet赢得了2017年ImageNet级比赛。它可以很好地加权网络通道以获得更好的功能,它的速度改进版本也可以用于许多轻量级网络,如MobileNetV3。然而,在Intel cpu上,SE模块增加了推理时间,因此我们不能将其用于整个网络。事实上,我们已经做了很多实验,并观察到当SE模块位于网络的末端时,它可以发挥更好的作用。所以我们只将SE模块添加到网络末端的块中。这导致了一个更好的精度-速度平衡。

Larger convolution kernels
卷积核的大小往往会影响网络的最终性能。在MixNet中,作者分析了不同大小的卷积核对网络性能的影响,并最终在网络的同一层中混合了不同大小的卷积核。然而,这样的混合降低了模型的推理速度,所以我们尝试在单层中只使用一种大小的卷积核,并确保在低延迟和精度高的情况下使用一个大的卷积核。实验发现,类似于SE模块的位置,取代3x3卷积内核只有5x5卷积内核的末端网络将实现替换的影响几乎所有层的网络,所以只在网络的末端做了这个替换操作。
Larger dimensional 1 × 1 conv layer after GAP
在PP-LCNet中,GAP后的网络输出维数很小。直接附加最后的分类层将失去特性的组合。为了给网络一个更强的拟合能力,我们在最后的GAP层之后添加了一个1280维尺寸的1×1conv(相当于FC层),这将允许更多的模型存储,而很少增加推理时间。

消融实验:

图像分类对比:

目标检测对比:

语义分割对比:

SE模块在不同位置效果:

large-kernel 在不同位置的影响

不同技术策略的对比:

PP-LCNet 一个轻量级的CPU卷积神经网络相关推荐

  1. IEEE:基于轻量级特征增强卷积神经网络的低空小目标检测

    论文下载:https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=9574645 Abstract 无人机(UAV)被称为" ...

  2. atm取款机的简单程序代码_LeNet:一个简单的卷积神经网络PyTorch实现

    前两篇文章分别介绍了卷积层和池化层,卷积和池化是卷积神经网络必备的两大基础.本文我们将介绍一个早期用来识别手写数字图像的卷积神经网络:LeNet[1].LeNet名字来源于论文的第一作者Yann Le ...

  3. 卷积神经网络超详细介绍

    文章目录 1.卷积神经网络的概念 2. 发展过程 3.如何利用CNN实现图像识别的任务 4.CNN的特征 5.CNN的求解 6.卷积神经网络注意事项 7.CNN发展综合介绍 8.LeNet-5结构分析 ...

  4. 卷积神经网络超详细介绍(转载)

    卷积神经网络超详细介绍 文章目录 1.卷积神经网络的概念 2. 发展过程 3.如何利用CNN实现图像识别的任务 4.CNN的特征 5.CNN的求解 6.卷积神经网络注意事项 7.CNN发展综合介绍 8 ...

  5. 独家 | 一文带你上手卷积神经网络实战(附数据集学习资料)

    原文标题:Understanding deep Convolutional Neural Networks with a practical use-case in Tensorflow and Ke ...

  6. 论文解析:人脸检测中级联卷积神经网络的联合训练

    论文解析:人脸检测中级联卷积神经网络的联合训练 商汤科技解析CVPR2016论文:人脸检测中级联卷积神经网络的联合训练 width="250" height="250&q ...

  7. 深度学习与计算机视觉系列(10)_细说卷积神经网络

    转载自: 深度学习与计算机视觉系列(10)_细说卷积神经网络 - 龙心尘 - 博客频道 - CSDN.NET http://blog.csdn.net/longxinchen_ml/article/d ...

  8. 卷积神经网络(CNN)超详细介绍

    文章转自:https://blog.csdn.net/jiaoyangwm/article/details/80011656 文章目录 1.卷积神经网络的概念 2. 发展过程 3.如何利用CNN实现图 ...

  9. 卷积神经网络超详细介绍1

    1.卷积神经网络的概念 2. 发展过程 3.如何利用CNN实现图像识别的任务 4.CNN的特征 5.CNN的求解 6.卷积神经网络注意事项 7.CNN发展综合介绍 8.LeNet-5结构分析 9.Al ...

最新文章

  1. pandas使用groupby函数计算dataframe数据中每个分组的N个数值的滚动最大值(rolling max)、例如,计算某公司的多个店铺每N天(5天)的滚动销售额最大值
  2. 也议MySQL中隐式转换
  3. java字符串 大括号_string.format格式化字符串中转义大括号“{}”
  4. 中班区域活动设计思路_【年段教研】“小游戏大学问 巧建构促发展” ——石狮实幼中班段年段教研主题建构游戏的组织与开展...
  5. php odbc连接数据库命名实例,一个用mysql_odbc和php写的serach数据库程序_php实例
  6. 微软电脑适合什么人用_#微软surface pro使用心得# 大学生挑电脑参考/平板与电脑二合一到底买的是什么...
  7. 办公自动化-使用python-docx生成文档-0223
  8. MongoDB 查询 (转) 仅限于C++开发
  9. CodeForces 980 E The Number Games
  10. javaweb php异步处理,Spring-MVC异步请求之Servlet异步处理
  11. java计算机毕业设计高校贫困生信息管理系统源码+mysql数据库+系统+lw文档+部署
  12. HAL库 配置的 MAX262 程控滤波器F4 F103C8T6
  13. 抽奖小程序可以用html写吗,jquery 抽奖小程序实现代码
  14. Flutter技术在会展云中大显身手
  15. 一个简洁美观的静态网页登陆页面(css+html)
  16. Qt中使用httpServer框架
  17. 二代旅游CMS网站管理系统使用手册(一)--系统介绍
  18. Kepserver EX6配置opc ua服务端 以及客户端
  19. 单片机——C51实验含Proteus仿真(独立键盘,矩阵键盘)
  20. MFC 控件PictureControl 清除显示

热门文章

  1. phoenix 优势
  2. 大数据离线---网站日志流量分析系统(1)---简介及框架
  3. 中小型企业网络组网与配置
  4. K3S和 K8S 有何不同?
  5. ERP-非财务人员的财务培训教(二)------如何评价公司/部门经营业绩收藏
  6. hadoop常见问题总结
  7. C# 通过百度地图API,获取访问IP详细地址(上网IP的大致位置信息,一般为城市级别)
  8. tizi服务器系统,供应TiZi霆智硬件-ERP*服务器
  9. iOS逆向小知识: Cycript Tricks Powerful private methods
  10. [年度极品 普7风暴]《中关村GHOST WIN7纯净自选旗舰年度珍藏版2010V12》