轻量级网络之mobilenet_v1详解

前言:学习网络结构有一段时间了,记录下mobilenet_v1的结构
论文地址:https://arxiv.org/pdf/1704.04861.pdf

一、mobilenet_v1 研究背景

1.随着Alexnet 获得2012年的 ILSVRC 2012的挑战冠军,通常的趋势是通过搭建更深的和更复杂的网络来获得更高的准确率。这些进步虽然可以提高精度,但在推理速度和模型大小却不一定是高效的。
2.考虑在有限算力的平台上需要实时获得识别任务, 提出在移动端或者嵌入式中的轻量级神经网络。

二、如何实现轻量级神经网络

1.将标准的卷积核改成深度可分离卷积。

1.1 标准卷积(以3*3 为例子)

标准卷积计算量 = H * W * Dk * Dk * M * N

1.2 深度可分离卷积对比

参数计算量:包括深度卷积和逐点卷积
其中深度卷积计算量 = H * W * Dk * Dk * M
逐点卷积计算量 = M * N * 1 * 1 * H * W

1.3 标准卷积与深度可分离卷积计算量之比

倍率 = (H * W * Dk * Dk * M + M * N * 1 * 1 * H * W ) / (H * W * Dk * Dk * M * N )
= 1/N +1/( Dk * Dk)

1.4结论
深度可分离卷积的计算量是标准卷积 的 1/N +1/( Dk * Dk)倍。通常情况下,N (输出通道)远大于卷积核尺寸,故1/N +1/( Dk * Dk) 近似等于 1/( Dk * Dk)。当卷积核的大小为Dk =3 时,深度可分离卷积的计算量约为标准卷积的1/9倍。

2.提供宽度因子和图像分辨率因子来控制模型的大小及输入图片的大小。

2.1宽度因子
在有些应用场景中,可能需要更小的模型。因此引入了一个称为宽度因子的非常简单的参数α。宽度因子α的作用是在每层均匀地缩小网络。对于给定的层并且宽度乘法器α,那么输入通道M的数量变为αm,输出通道n的数量变为αn。α的取值范围通常为(0,1],当然大于1也可以。在速度、大小和精度上做权衡。

2.2图像分辨率因子
减少计算的第二个超参数,分辨率因子ρ。通过减少图片的输入尺寸来减少计算量。
原来图像大小为H * W,加入分辨率因子后图像大小为 ρH * ρW。通常取值范围为(0,1]

2.3 宽度因子和分辨率因子结合,深度可分离卷积的计算量如下所示

计算量 = DK · DK · αM · ρDF · ρDF + αM · αN · ρDF · ρDF。

三、网络结构介绍

1.mobilenet_v1 网络结构如下:

2.参数量如图所示

四、网络模块介绍

1.Conv (标准卷积)

2. Depthwise Conv + Pointwise Conv (深度可分离卷积)

3.Avg Pool (平均池化)
平均池化:计算图像区域的平均值作为该区域池化后的值。常规的平均池化计算过程如下图所示

注意:mobilenet_v1中平均池化采用的步长(stride =1)、卷积核尺寸为7*7。步长为1,平均池化后输入的特征图大小不变,依然为7 * 7 * 1024。

4.FC(全连接层)

全连接层将前面平均池化层的特征图拉成一维的向量:7 * 7 * 1024 ——> 1 * 1 * 50176
将一维向量 1 * 1 * 50176 乘以 权重,然后加上偏置,获得 1 * 1 * 1024 的向量。

5.SoftMax
将全连接层的一维向量 通过公式 获得每一类的分数,公式如下:

其中,Zi为第i个节点的输出值,C为输出节点的个数。通过以e为底数的Zi 次方,将第i 个节点的输出值(实数)映射到0到正无穷;通过归一化的方法,将映射的值转换成0-1的概率值,也就是类别的分数值。

轻量级网络之mobilenet_v1详解相关推荐

  1. 【轻量级网络】MobileNet-v2详解

    论文:<Inverted Residuals and Linear Bottlenecks: Mobile Networks for Classification, Detection and ...

  2. 【轻量级网络】MobileNet-v1详解

    论文:<MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications> 论文链接:h ...

  3. 科普:5G网络关键技术详解

    不久前,中国华为公司主推的Polar Code(极化码)方案,成为5G控制信道eMBB场景编码方案.消息一出,在网络上就炸开了锅,甚至有媒体用"华为碾压高通,拿下5G时代"来形容这 ...

  4. openstack架构详解图_英特尔顶级技术专家合力缔造精品:Linux开源网络全栈详解...

    日常水开篇 自1991年诞生起,Linux已经走过了接近三十年.Linux早已没有了问世时的稚气,正在各个领域展示自己成熟的魅力. 以Linux为基础,也衍生出了各种开源生态,例如网络和存储.而生态离 ...

  5. 2020中级计算机工程师,2020年上半年中级网络工程师报考详解

    原标题:2020年上半年中级网络工程师报考详解 软考全称叫做"全国计算机技术与软件专业技术资格(水平)考试"已经开展了十多年了,所受到的欢迎程度也是越来越高,据统计累计参加软考的人 ...

  6. iOS开发——使用Charles进行https网络抓包详解

    我在前面两篇博客中<网络抓包工具Charles的介绍与使用><iOS开发--使用Charles进行http网络抓包详解>对Charles的http抓包进行了详细的讲解.今天我们 ...

  7. Incremental-Network-Quantization增量网络量化论文详解

    Incremental-Network-Quantization增量网络量化论文详解 笔者将从以下几个方面分析该论文的原理及其实现,由于笔者能力有限,如有错误望诸公指正. 论文作者代码:https:/ ...

  8. linux网络服务详解,Linux网络服务器配置基础详解 (3)

    Linux网络服务器配置基础详解 (3) Linux网络服务器配置基础详解 (3) 第三步:编辑"inetd.conf"文件(vi /etc/inetd.conf),禁止所有不需要 ...

  9. 看完之后保证你对socket编程步骤胸有成竹。 C++ Socket网络编程基础详解(TCP)

    C++ Socket网络编程基础详解(TCP版) ​    网络编程,就是编写程序使得两台计算机交换数据,其实从本质上来讲,网络编程最终所实现的功能,和我们文件的输入输出很相似,只是文件输入输出的对象 ...

最新文章

  1. Eclipse-常用插件
  2. 远程连接MySQL慢的原因及解决
  3. android启动第三方应用
  4. bottle模板 template/jinja2_template
  5. oracle的rman备份保留天数,RMAN 基于时间的备份保留策略调整
  6. html怎么改变一块区域颜色,更改HTML中所选区域的背景颜色/不透明度
  7. 编写DLL所学所思(1)——导出函数
  8. 基于代价函数小波脊相位的MFSK信号符号速率估计MATLAB仿真及代码(2020.12.14更新)
  9. android studio入门
  10. eclipse html插件_欲善事先利器——IDEA 插件篇
  11. Jquery Mobile dialog的生命周期
  12. 字体系列之字体大小(CSS、HTML)
  13. 【solitidy】生成随机数算法
  14. Luogu2481 SDOI2010 代码拍卖会 DP、组合
  15. Dxg——python MicroPython 开发笔记整理分类合集【所有的相关记录,都整理在此】
  16. Android 开 发 资 源 分 享
  17. 多功能下拉分页选择插件SelectPage插件 http://www.jq22.com/jquery-info14227
  18. chrome离线小恐龙改造版
  19. invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix
  20. swiper 移动端选项卡_基于swiper的Tab选项卡

热门文章

  1. Advanced Science | 利用芽孢杆菌主导的具有独特合作模式的根际稳定核心菌群持续抑制玉米种传镰刀菌...
  2. 批处理文件修改注册表
  3. 考研英语81经验分享
  4. 新浪微博互粉 http://weibo.com/51centos
  5. sql函数平均值、总数、最小值、最大值、总和、标准差
  6. 联想笔记本出厂预装Windows 8系统机型改装Windows 7系统的操作步骤及常见问题(转自联想官网)
  7. 2008年奥巴马胜选演讲
  8. 格式工厂的另类用法:视频下载、视频剪辑、动图GIF、屏幕录像
  9. $(@:_config=)什么意思?
  10. Arturia Synthi V for Mac(音频模拟合成软件)