轻量化卷积神经网络-Mobile Net V1 简介

大纲

  1. Mobile Net V1简介
  2. 分组卷积
  3. 串联信息
  4. 分组+串联
  5. Mobile Net V1的深度可分离卷积
  6. 模型网络结构
  7. 代码实现

Mobile Net V1简介

随着2012年的AlexNet在ImageNet竞赛中获得冠军,越来越多的深度神经网络被人们提出,例如优秀的VGG系列、GoogleNet、Resnet系列等等。这些深度学习算法相较于传统机器学习分类算法而言,已经相当的出色,但是随着人们不断的加深网络,模型计算量产生的巨大存储压力和计算开销,已经开始严重影响深度神经网络在一些低功率领域的应用,例如ResNet系列中的ResNet152,网络层数已经达到152层,模型权重大小达到上百兆,这也使得我们几乎不可能在ARM芯片上跑ResNet152。

近些年,使用AI系统的机器人、无人驾驶、智能手机以及各类可穿戴设备的发展日新月异,急需一种能在算法层面有效的压缩存储和计算量的方法,使AI算法能在有限的计算平台上有效运转。而Mobile Net对传统卷积模块进行了改进,该结构更高效,为在移动设备上部署带来了可能。

Mobile Net V1是2017年Google发布的网络架构,正如其名,它是一种模型体积较小、可训练参数及计算量较少并适用于移动设备的卷积神经网络。旨在充分利用有限的计算资源,最大化模型的准确性,以满足有限资源下的各种应用案例,是部署至边缘侧常用的模型之一。mobileNet V1的主要创新点是用深度可分离卷积(depthwise separable convolution)代替普通的卷积,并使用宽度乘数(width multiply)减少参数量,它可在牺牲极少精度的同时去换取更好的数据吞吐量。

分组卷积

如果想要学习深度可分离卷积,首先要了解什么是分组卷积(Group Convolution),可以说,看懂了分组卷积,也就明白了什么是深度可分离卷积。分组卷积最早见于AlexNet,当时使用分组卷积的目的是将整个模型拆分成两块,这样就可以放到2个GPU上进行并行运算。

首先我们假设卷积的输入特征图尺寸为 W ∗ H ∗ C i n W*H*C_{in} WHCin ,在padding为same,stride为1的情况下,输出特征图尺寸为 W ∗ H ∗ C o u t W*H*C_{out} WHCout

首先我们先看看标准卷积的计算:

如果使用标准卷积进行计算,我们可知,此时的理论计算量FLOPs为:

F L O P s = k w ∗ k h ∗ C i n ∗ C o u t ∗ W ∗ H \begin{aligned} FLOPs=k_{w} * k_{h}*C_{in}*C_{out}*W*H\\ \end{aligned}\\ FLOPs=kwkhCinCoutWH

而分组卷积就是将输入的拆分为g个独立分组(假设可整除),分别进行卷及计算,可表示为:

  • 把输入特征图拆分为g组,每组尺寸为 W ∗ H ∗ ( C i n / g ) W*H*(C_{in}/g) WH(Cin/g)
  • 把输出特征图也拆分为g组,每组尺寸为 W ∗ H ∗ ( C o u t / g ) W*H*(C_{out}/g) WH(Cout/g)
  • 按顺序对每组内的特征图做普通卷及计算,输出g个 W ∗ H ∗ ( C o u t / g ) W*H*(C_{out}/g) WH(Cout/g) 的特征图,总的输出和最开始定义的 W ∗ H ∗ C o u t W*H*C_{out} WHCout 的输出尺寸一致。

此时我们的理论计算量FLOPs为:

F L O P s =

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值