轻量级神经网络:MobileNetV1论文学习及理解

一、引言

为了在某些真实的应用场景如移动或者嵌入式设备有效使用深度学习神经网络模型,使得在保证模型性能前提下,减小模型网络大小,提高运行速度,提出了可应用于算力有限平台的轻量级神经网络


二、MobileNet1主要创新点

1.深度可分离卷积(Depthwise separable convolutions)

标准卷积(CNN)的作用是对所有输入通道用相同的卷积核得到不同通道特征,将不同通道特征组合起来使得输出特征包含每个输入的特征。因此,我们可以将标准卷积分为以下两个步骤:

1) 深度卷积(Depthwise convolution)

  • 深度卷积对每一个输入通道应用一个单独的卷积核(与标准卷积不同,标准卷积对每一个输入通道应用同一个卷积核)得到特征图,此时,每张特征图仅与一个输入通道和其对应卷积核相关,各个通道之间特征图不关联

2.)点卷积(Pointwise concolution)

  • 点卷积(1x1卷积)将深度卷积的输出特征图进行线性组合后再输出,使得最后的输出特征都包含每个输入特征,即将深度卷积输出的不关联的特征图关联起来

图片来自:http://www.sohu.com/a/323612419_701739


下图为标准卷积与深度可分离卷积对应的计算量
标准卷积与深度可分离卷积区别及对应计算量
其中, D F D_F DF为输入Feature Map的宽度和高度(我们假设输入特征图与使用的卷积核均为正方形), M M M为输入通道数(也可理解为输入Feature Map深度), N N N为输出通道数, D k D_k Dk为卷积核大小。


  • 我们先引入计算量的定义:

参数数量(params):关系到模型大小,单位通常为M,通常参数用 float32 表示,所以模型大小是参数数量的 4 倍。

理论计算量(FLOPs):是 floating point operations 的缩写(注意 s 小写),可以用来衡量算法/模型的复杂度,这关系到算法速度,大模型的单位通常为 G,小模型单位通常为 M。
通常只考虑乘加操作(Multi-Adds)的数量,而且只考虑 CONV 和 FC 等参数层的计算量,忽略 BN 和ReLU 等等。一般情况,CONV 和 FC 层也会忽略仅纯加操作的计算量,如 bias 偏置加和 shotcut 残差加等,目前技术有 BN 的 CNN 可以不加 bias

  • 不同神经网络层的参数数量和计算量估计方法:

Conv2d标准卷积层
Input: H ∗ W ∗ N H * W * N HWN
Output: H ∗ W ∗ M H *W * M HWM
Filters: K ∗ K K * K KK
==>
Params: K ∗ K ∗ M ∗ N K * K * M * N KKMN<

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值