[论文理解] MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
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的更多相关文章
- 论文笔记——MobileNets(Efficient Convolutional Neural Networks for Mobile Vision Applications)
论文地址:MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications MobileNet由Go ...
- [论文阅读] MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications (MobileNet)
论文地址:MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications 本文提出的模型叫Mobi ...
- 【论文翻译】MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications 论文链接:https://arxi ...
- 深度学习论文翻译解析(十七):MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
论文标题:MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications 论文作者:Andrew ...
- 【网络结构】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 ...
- Paper | MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
目录 1. 故事 2. MobileNet 2.1 深度可分离卷积 2.2 网络结构 2.3 引入两个超参数 3. 实验 本文提出了一种轻量级结构MobileNets.其基础是深度可分离卷积操作. M ...
- MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
1. 摘要 作者提出了一系列应用于移动和嵌入式视觉的称之为 MobileNets 的高效模型,这些模型采用深度可分离卷积来构建轻量级网络. 作者还引入了两个简单的全局超参数来有效地权衡时延和准确率,以 ...
- 【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 ...
- 深度学习论文翻译解析(六):MobileNets:Efficient Convolutional Neural Networks for Mobile Vision Appliications
论文标题:MobileNets:Efficient Convolutional Neural Networks for Mobile Vision Appliications 论文作者:Andrew ...
随机推荐
- C++ 无边框的拖动窗口代码
按下鼠标时,记录下鼠标在窗体上的坐标, 同时用一个BOOL变量记录下鼠标左键按下的状态 弹起左键,则记录状态的布尔变量为FALSE. 处理鼠标移动事件,如果左键同时按下,则为鼠标拖动窗体运动,设置窗体 ...
- 2018ACM山东省赛 Games(dp取数)
Games Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Problem Description Alice and Bob ...
- apply的使用技巧
1.什么是apply?他和call有什么区别? apply:方法能劫持另外一个对象的方法,继承另外一个对象的属性. Function.apply(obj,args)方法能接收两个参数 obj:这个对象 ...
- python列表逆序三种方法
栗子: # 题目:将一个数组逆序输出. # # 程序分析:用第一个与最后一个交换. import random list =[random.randint(0,100) for _ in range( ...
- c语言中的switch case语句
switch--case语句中,switch后面跟一个变量,这个变量不可以是字符数组,字符指针,字符串数组,浮点型(实型).它可以是整型,字符型(在本质上也是整型).所以这导致case后面的常量表达式 ...
- 十、正则表达式和JSON
一.什么是正则表达式 正则表达式是一个特殊字符序列,一个字符串是否与我们所设定的这样的字符序列相匹配. 应用:快速检索文本.实现一些替换文本的操作 1.检查一串数字是否是电话号码 2.检查一个字符串是 ...
- 如何使用Xshell连接VMware上的Linux虚拟机
前序:最近开始研究Hadoop平台的搭建,故在本机上安装了VMware workstation pro,并创建了Linux虚拟机(centos系统),为了方便本机和虚拟机间的切换,准备使用Xshell ...
- SpringBoot2.0 基础案例(11):配置AOP切面编程,解决日志记录业务
本文源码 GitHub地址:知了一笑 https://github.com/cicadasmile/spring-boot-base 一.AOP切面编程 1.什么是AOP编程 在软件业,AOP为Asp ...
- 【实验吧】该题不简单——writeup
题目地址:http://ctf5.shiyanbar.com/crack/3/ 一定要注意读题: 要求找出用户名为hello的注册码,这八成就是 要写注册机啊! ——————————————————— ...
- docker 使用数据库mysql
1. docker pull mysql 获取mysql镜像 2. docker images 查看镜像列表 3. docker run -itd -P mysql bash :启动mysql镜像 ...