MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications

Intro

MobileNet 我已经使用过tensorflow的api在实际场景中取得了很实时的识别效果,其论文的贡献是利用depth-wise卷积和point-wise卷积对一般的卷积核进行优化,使得网络模型的卷积计算量大大减小。这一贡献使得Mobile-Net能够在移动设备上顺利运行,并且取得不错的速度和精度。

Depthwise Separable Convolution

对于标准的卷积而言,假设输入的是DF*DF*M的feature map F,并且生成DG*DG*N的feature map G,使用N个DK*DK*M的kernel去卷积,其对应关系为(步长为1):

total 计算量如下:

举例子说明标准的卷积过程和计算量:

取输入为7*7*3的feature map,卷积核3*3*3,那么需要不考虑padding的情况下滑动的次数就是5*5次,最后三个通道的对应数据加和压缩到一个通道,即完成卷积过程。我们假设有128个卷积核卷积输入图像(即输出通道数是128),那么我们的乘法计算量就是如图所示的86400次。

depth-wise和point-wise卷积的方式是先只用一个3*3的卷积核去卷积原图像,然后再用1*1*3的卷积核去卷积第一次卷积的结果,这样将原来的128次3*3的卷积拆分成了两次卷积,即两次卷积的加和,很明显这个加法比前面的直接相乘的计算量大大减小,这也是mobile-net计算量大大减小的原因。

同样上面的例子,用Depthwise Separable Convolution之后的过程如下图所示,计算量仅仅10275,为标准卷积的12%!

Network Structure and Training

下图是标准卷积和depth-wise卷积的对应关系。

mobile-net的网络结构和参数情况如下图:

dw是depth-wise卷积的简称。

之后作者又提出模型可以再减少计算量,通过引入参数α,即减少dw过程中参与计算的输入通道数量和输出通道数量,引入之后计算量如图所示。

然后,又加了一个超参ρ,作用也是减少计算量,作用在输入feature map的size上。

Conclusion

mobile-net提出的Depthwise Separable Convolution使得深度模型的计算量大大减小,但其减少计算量的同时其实也失去了一定的精度,比如,对于较小模型而言,如果采用这种计算,那么模型的能力可能会下降,这样得到的模型肯定不是最好的,减少了模型的参数数量,很可能使得模型得不到最好的拟合效果。

[论文理解] MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications的更多相关文章

  1. 论文笔记——MobileNets(Efficient Convolutional Neural Networks for Mobile Vision Applications)

    论文地址:MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications MobileNet由Go ...

  2. [论文阅读] MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications (MobileNet)

    论文地址:MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications 本文提出的模型叫Mobi ...

  3. 【论文翻译】MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications

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

  4. 深度学习论文翻译解析(十七):MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications

    论文标题:MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications 论文作者:Andrew ...

  5. 【网络结构】MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications论文解析

    目录 0. Paper link 1. Overview 2. Depthwise Separable Convolution 2.1 architecture 2.2 computational c ...

  6. Paper | MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications

    目录 1. 故事 2. MobileNet 2.1 深度可分离卷积 2.2 网络结构 2.3 引入两个超参数 3. 实验 本文提出了一种轻量级结构MobileNets.其基础是深度可分离卷积操作. M ...

  7. MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications

    1. 摘要 作者提出了一系列应用于移动和嵌入式视觉的称之为 MobileNets 的高效模型,这些模型采用深度可分离卷积来构建轻量级网络. 作者还引入了两个简单的全局超参数来有效地权衡时延和准确率,以 ...

  8. 【MobileNet-V1】-2017-CVPR-MobileNets Efficient Convolutional Neural Networks for Mobile Vision Applications-论文阅读

    2017-CVPR-MobileNets Efficient Convolutional Neural Networks for Mobile Vision Applications Andrew H ...

  9. 深度学习论文翻译解析(六):MobileNets:Efficient Convolutional Neural Networks for Mobile Vision Appliications

    论文标题:MobileNets:Efficient Convolutional Neural Networks for Mobile Vision Appliications 论文作者:Andrew ...

随机推荐

  1. 自己在项目中写的一个Jquery插件和Jquery tab 功能

    后台查询结果 PDFSearchResult实体类: [DataContract(Name = "PDFSearchResult")] public class PDFSearch ...

  2. 写守护进程时碰到open函数的参数,没记住

    今天写一个最简单的守护进程, 要成为一个守护进程,其实很简单了.主要步骤就4步: 1,创建进程. 2,父进程退出. 3,成为会话的头领进程. 4,将工作目录改成根目录,并把标准输入输出重定向到空设备. ...

  3. Invalidate()这个函数有什么用?

    c++中的这个函数,一会是刷新窗口的作用,一会是使区域无效.我搞不懂这个函数究竟是有什么作用?谢谢赐教. void Invalidate( BOOL bErase = TRUE ); 该函数的作用是使 ...

  4. GitHub上最火爆!码代码不得不知的所有定律法则

    目录 介绍 定律 阿姆达尔定律 (Amdahl's Law) 布鲁克斯法则 (Brooks's Law) 康威定律 (Conway's Law) 侯世达定律 (Hofstadter's Law) 技术 ...

  5. JavaScript巩固篇(一)——数据类型与全局变量、局部变量、垃圾回收机制、存储方式、生命周期

    知识要点 数据类型 存储方式 全局变量与局部变量 变量的生命周期 垃圾回收机制 知识概览 数据类型 JavaScript的数据类型分为:基本类型.引用类型 本质区别: 基本数据类型的变量实际值存储在栈 ...

  6. bzoj 2632: [neerc2011]Gcd guessing game【贪心】

    这个告诉gcd的操作实际上就是告诉一个因数是否选,最坏情况是1,判断掉所有因数才能选 然后肯定是用猜不重复质数积比较划算,问题就变成若干个质数,分成数量尽量小每组乘积<=n的若干组 从大质数开始 ...

  7. js实现考试随机选题

    考试的时候经常用到,发在这里记录一下 基本信息包括: 学号.姓名.题号.题目名称 实现原理:给每一个题目添加一个编号,JS生成随机数,遍历每一个学生,把题目根据生成的随机数作为题目编号放入学生信息中 ...

  8. maven分层架构搭建

    1.准备工作: 1.创建数据源 CREATE TABLE `users` ( `id` int(10) NOT NULL AUTO_INCREMENT, `name` varchar(20) DEFA ...

  9. Mac下磁盘无法抹除问题解决

    安装CentOS到扩容卡,每次安装都会造成bootcamp分区的windows出问题,遂安装ubantu,结果扩容卡有问题-->无法读取您的磁盘,打开磁盘工具无法抹除,由于无法读取在window ...

  10. Kaggle 数据挖掘比赛经验分享

    文章发布于公号[数智物语] (ID:decision_engine),关注公号不错过每一篇干货. 来源 | 腾讯广告算法大赛 作者 | 陈成龙 Kaggle 于 2010 年创立,专注数据科学,机器学 ...