模型加速之轻量化网络

当前物体检测结构大都依赖使用卷积网络进行特征提取,即 Backbone,通常使用 VGGNet、ResNet 等优秀的基础网络,但是这些网络往往计算量巨大,依赖这些基础网络的检测算法很难达到实时运行的要求,尤其是在 ARM、FPGA以及 ASIC 等计算力有限的移动端硬件平台。因此如何将物体检测算法加速到满足工业应用要求,一直是关键性问题。

  1. 轻量化设计: 从模型设计时采用一些轻量化的思想,例如采用深度可分离卷积、分组卷积等轻量卷积方式、减少卷积过程的计算量,此外采用全局池化来取代全连接层、利用 1 x 1 卷积实现特征的通道降维,也可以降低模型的计算量,这两点在众多网络中得到应用。
    2 .BN 层合并: 在训练检测模型时,BN 层可以有效的加速收敛,并在一定程度上防止模型过拟合,但在前向测试时,BN 层的存在也增加了多余的计算量。由于测试时 BN 层的参数已经固定,因此可以在测试时将 BN层的计算合并到卷积层,从而减少计算量,实现模型加速。
  2. 网络剪枝: 在卷积网络成千上万的权重中,存在着大量接近 0 的参数,这些属于冗余的参数,去掉后模型也可以基本达到相同的表达能力,因此众多众多研究者从此为出发点,搜索网络中的冗余卷积核、将网络稀疏化,称之为网络裁剪。具体讲,网络剪枝有训练中稀疏与训练后剪枝两种。
  3. 权重量化:是指将网络模型中高精度的参数量化为低精度的参数,从而加速计算的方法。高精度的模型参数拥有更大的动态变化范围,能够表达更丰富的参数空间,因此训练中通常使用 32 位浮点数 (单精度) 作为网络参数模型。训练完后成为了减小模型大小,通常将 32 未浮点数量化为 16 位浮点数的半精度,甚至 int8的整型,0 与 1 的 二值类型。
  4. 张量分解: 由原始网络参数中存在大量冗余,除了剪枝的方法外,我们还可以利用 SVD 分解和 PQ 分解,将原始张量分解为低秩的若干张量,以减少卷积的计算,提升前向速度。
  5. 知识蒸馏:大的模型拥有更强的拟合能力和泛化能力,而小的模型拟合能力较弱,且容易造成过拟合,使用大模型指导小模型训练保留大模型的有效信息,实现知识蒸馏。

目前主流的轻量网络 SequeezeNet、MobileNet 以及 ShuffleNet, 后续会一一介绍。

模型加速之轻量化网络相关推荐

  1. 轻量化网络MobileNet解析

    论文题目:MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications 论文链接:https:/ ...

  2. 轻量化网络:ShuffleNet V2

    Guideline 1-4: ShuffleNet V2 疑问: ShuffleNet V2: Practical Guidelines for Efficient CNN Architecture ...

  3. 轻量化网络—ShuffleNet V1 V2理解

    轻量化网络-ShuffleNetV2理解 ShuffleNetV2原始论文:https://openaccess.thecvf.com/content_ECCV_2018/html/Ningning_ ...

  4. 经典网络结构 (八):轻量化网络 (SqueezeNet, MobileNet, ShuffleNet)

    目录 SqueezeNet Fire Module: Squeeze and Expand SqueezeNet SqueezeNet 总结 MobileNet 深度可分离卷积 (Depthwise ...

  5. 轻量化网络-SqueezeNet(2016)

    A.为什么需要轻量化网络? 小模型有更高效的分布式训练效率.通信开销一直是分布式CNN训练的制约因素,在数据并行训练中,通信开销与模型参数是成比例的,模型越小,通信开销就越小. 推送一个新模型到客户端 ...

  6. 实时互动下视频 QoE 端到端轻量化网络建模

    在实时视频互动中,影响观众对视频体验的有较多且复杂的因素,包括:画质.流畅度以及与其耦合的观看设备等.传统客观算法会利用网络传输或编解码参数拟合接收端人的感知体验,或者使用图像质量结合其他相关参数拟合 ...

  7. 深度学习机器学习面试题汇——模型优化,轻量化,模型压缩

    深度学习机器学习面试题汇--模型优化,轻量化,模型压缩 提示:互联网大厂可能考的面试题 若CNN网络很庞大,在手机上运行效率不高,对应模型压缩方法有了解吗 介绍一下模型压缩常用的方法?为什么用知识蒸馏 ...

  8. 深度学习之轻量化网络

    人工智能大力发展的趋势下,移动端和嵌入式设备上部署是迫切需求,由于现如今模型越来越深,越来越大,所以轻量化是有必要的. 轻量化网络要做什么呢?在尽量保持精度的前提下,从体积和速度两方面对网络进行轻量化 ...

  9. 旷世轻量化网络ShuffulNetV2学习笔记

    旷世轻量化网络ShuffulNetV2学习笔记 ShuffleNet V2: Practical Guidelines for Efficient CNN Architecture Design Ab ...

最新文章

  1. Vsftpd 服务器 问题大全
  2. 什么时候用转发什么时候用重定向_玉米控旺药什么时候用?买哪些药?该如何用?...
  3. 从前到后的CAN总线(一)
  4. 【Android 系统开发】使用 Source InSight 阅读 Android 源码
  5. C语言之计算大数阶乘,如计算100!和1000!等~~~
  6. docker Harbor
  7. 翻转字符串里的单词—leetcode151
  8. 循序渐进DB2.DBA系统管理、运维与应用案例pdf
  9. android listpreference 自定义,android ListPreference 不显示内容 设置默认值
  10. 将Matting结果转化为二分割结果
  11. 如何提高NLP模型鲁棒性和泛化能力?对抗训练论文串讲
  12. Java常量不能二次赋值与常量不能修改值意思一样吗?
  13. 白事碰上红事,徐渭应景吟诗
  14. MCGS7.7嵌入版软件安装方法
  15. 企业私有云技术设计方案
  16. 好用的数据建模工具,探索中完善
  17. python 饼图代码_Python中使用Matplotlib画出饼图的代码实例
  18. Python练习题:快递价格计算器
  19. 大型web系统数据缓存设计
  20. 米狗族 Android平台Qt开发入门教程

热门文章

  1. [原创][NOIP2005]篝火晚会(超详细题解,3种思路)
  2. Super-Resolution Mapping of Impervious Surfaces from Remotely Sensed Imagery with Points-of-Interest
  3. element-ui 表格吸底固定最后一行
  4. 在python中import什么意思_python的import是什么意思
  5. 数据技术之Hadoop(HFDS文件系统)
  6. 为什么百度查到的ip和ipconfig查到的不一样?
  7. c语言rgb数值颜色渐变算法,颜色渐变算法
  8. 搭建xamppWeb服务器和TestLink、Mantis环境
  9. MATLAB 绘制时钟(同步当前时间)
  10. 食饵捕食者模matlab,食饵捕食者模型