MobilNnet
一、参数数量和理论计算量
1、定义
- 参数数量(params):关系到模型大小,单位通常为M,通常参数用 float32 表示,也就是每个参数占4个字节,所以
模型大小是参数数量的 4 倍
- 理论计算量(FLOPs):
- 是 floating point operations 的缩写(注意 s 小写),可以用来
衡量算法/模型的复杂度
,这关系到算法速度,大模型的单位通常为 G,小模型单位通常为 M 通常只考虑乘加操作(Multi-Adds)的数量,而且只考虑 CONV 和 FC 等参数层的计算量,忽略 BN 和PReLU 等等。一般情况,CONV 和 FC 层也会忽略仅纯加操作 的计算量,如 bias 偏置加和 shotcut 残差加等,目前技术有 BN 的 CNN 可以不加 bias
- 是 floating point operations 的缩写(注意 s 小写),可以用来
2、计算公式
假设卷积核大小为 Kh × Kw,输入通道数为 Cin x Cout,输出特征图的宽 W 和高 H,忽略偏置。
- CONV 标准卷积层:
- 参数量就是kernel*kernel*channel_input*channel_output,卷积核的大小x通道数量x卷积核的个数
- ,输入通道数等于一个卷积核的通道数,输出通道数=卷积核的个数
- 计算量:kernel*kernel*next_featuremap_height*next_featuremap_wight*channel_input*channel_output
- 参数量等于计算量,因为输入输出都不能使二维平面,而是向量
- ,C相当于一个一张图片展成一条线上的所有点,也就是所有的像素点
FC 全连接层(相当于 k=1,输入输出都不是二维图像,都是单个点):
参数量取决于显存大小,计算量要求芯片的floaps(gpu的运算能力)
二、MobileNetV1: Efficient Convolutional Neural Networks for Mobile Vision Applications
1、能够减少参数数量和计算量的原理
深度可分离卷积的使用
- 在进行 depthwise 卷积时只使用了
一种
维度为in_channels
的卷积核进行特征提取(没有进行特征组合) 在进行 pointwise 卷积时只使用了output_channels 种维度为in_channels 1*1 的卷积核进行特征组合,普通卷积不同 depth 层的权重是按照 1:1:1…:1的比例进行相加的,而在这里不同 depth 层的权重是按照**不同比例(可学习的参数)**进行相加的
- 参数数量由原来的 --》p2 = F*F*in_channels*1 + 1*1*in_channels*output_channels参数量减小为原来的p2/p1,当F=3的时候,大概为1/9
- 深度卷积参数量=卷积核尺寸 x 卷积核通道数1 x 卷积核个数(就是输入通道数);
- 点卷积(普通卷积)参数量=卷积核尺寸1x1 x 卷积核通道数就是输入通道数 x 卷积核的个数(即输出通道数)
- Note: 原论文中对第一层没有用此卷积,深度可分离卷积中的每一个后面都跟 BN 和 RELU
- Global Average Pooling 的使用:这一层没有参数,计算量可以忽略不计
- 用
CONV/s2
(步进2的卷积)代替MaxPool+CONV
:使得参数数量不变,计算量变为原来的 1/4 左右,且省去了MaxPool 的计算量 Note:采用 depth-wise convolution 会有一个问题,就是导致 信息流通不畅 ,即输出的 feature map 仅包含输入的 feature map 的一部分,在这里,MobileNet 采用了 point-wise(1*1) convolution 帮助信息在通道之间流通
2、MobileNetV1 中引入的两个超参数
Width Multiplier(α \alphaα): Thinner Models
Resolution Multiplier(ρ \rhoρ): Reduced Representation
3、标准卷积和深度可分离卷积的区别
三、MobileNetV2:Inverted Residuals and Linear Bottlenecks
1、主要改进点
- 引入残差结构,先升维(先1x1卷积,输出特征图的通道数增加)再降维(再3x3和1x1),增强梯度的传播,显著减少推理期间所需的内存占用(
Inverted Residuals
) - 去掉 Narrow layer(low dimension or depth) 后的 ReLU,保留特征多样性,增强网络的表达能力(
Linear Bottlenecks
) - 网络为
全卷积
的,使得模型可以适应不同尺寸的图像;使用RELU6(最高输出为 6)
激活函数,使得模型在低精度计算下具有更强的鲁棒性
MobileNetV2 building block 如下所示,若需要下采样,可在 DWise 时采用步长为 2 的卷积;小网络使用小的扩张系数(expansion factor),大网络使用大一点的扩张系数(expansion factor),推荐是5~10,论文中 t=6 t = 6t=6
2、和 MobileNetV1 的区别
3、和 ResNet 的区别
MobilNnet的更多相关文章
随机推荐
- JS 马托货物
大马驮2石粮食,中马驮1石粮食,两头小马驮一石粮食,要用100匹马,驮100石粮食,该如何调配? <!DOCTYPE html> <html> <head> < ...
- node——模块化
之前写的新闻部分几乎所有操作都写在了一起,这次开始进行模块化. 为什么要模块化: 1.提高开发效率,所有操作在一个文件内,不方便团队操作,模块化可多人同时操作 2.当程序出错,可以分模块寻找错误 3. ...
- java.util.Date日期类通过java语句转换成Sql(这里测试用的是oracle)语句可直接插入(如:insert into)的日期类型
public void add(Emp emp) throws Exception{ QueryRunner runner = new QueryRunner(JdbcUtil.getDataSour ...
- wamp的安装配置
WAMP是指在Windows服务器上使用Apache.MySQL和PHP的集成安装环境,可以快速安装配置Web服务器. 一.下载安装包 进入官网下载:http://www.wampserver.com ...
- 《Exception》第八次团队作业:Alpha冲刺
一.项目基本介绍 项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 作业链接地址 团队名称 Exception 作业学习目标 1.掌握软件测试基础技术.2.学习迭代式增量软 ...
- Bonjour/Zeroconf with Arduino
转自:http://gkaindl.com/software/arduino-ethernet/bonjour Bonjour/Zeroconf with Arduino DownloadVersio ...
- HDU-1695 GCD(求一个区间内与一个数互质的个数)
题意: 给你一个T,是样例的个数,接下来是五个数l1,r1,l2,r2,k 前四个数代表两个区间(l1,r1),(l2,r2)这个题l1=1,l2=1; 取x1属于(1,r1),x2属于(1,r2) ...
- alg--分治法
分治--分而治之, 把大的问题分成n个小的问题,分别处理,然后汇总小问题的结果. 具体介绍可以参考这位大哥的blog: https://www.cnblogs.com/steven_oyj/archi ...
- 《你又怎么了我错了行了吧》【Alpha】Scrum meeting 5
第五天 日期:2019/6/18 前言: 第5次会议在女生宿舍召开 冲刺第5天,对所有工作做了总结.继续完善编码工作. 1.1 今日完成任务情况以及明天任务安排 姓名 当前阶段任务 下一阶段任务 刘 ...
- 2019年北航OO第四单元(UML任务)及学期总结
第四单元两次作业总结 第十三次作业 需求分析 本次作业需要完成一个UML类图解析器,所需要解析的只有符合UML标准和能够在Java 8中复现的UML类图.查询指令存在两种:仅与所查对象有关的指令,以及 ...