MobileleNet学习

转自:http://blog.csdn.net/zhang1bao2/article/details/77800941

MobileNet

(1)文章介绍

  • google 201704在archive上的论文。
  • 采用depthwise separable卷积核,减少计算量和模型大小。
  • 引入了两个超参数,用于选择合适大小的模型。
  • 在imagenet, object dectection, face atrributes,分类等任务上验证了效果。

(2)核心思想

将标准卷积层分解为depthwise conv和 pointwise conv(1*1)两个卷积层。即一个depthwise separable卷积核包括depth wise卷积操作和pointwise卷积操作。

对于标准卷积,输入大小为D_f*D_f*M,输出大小为D_f *D_f *N,卷积核的大小为D_k*D_k*M*N。(这里假设stride为 1,padding=0, 因此长宽不变)
这里写图片描述
标准卷积计算: F和G分别表示输入和输出特征图,(s=0, p=1, h_o = h_in -k + 1)
这里写图片描述
计算量分析:(要计算出D_f * D_f个值, 计算每个值需要对应的所有对应滑动窗口的值相乘,然后所有通道的值相加merge, 这里加法的计算量忽略不计)
这里写图片描述

第一步为depth wise卷积

对于输入的每一个通道分别用1个D_k * D_k*1的卷积核进行卷积,共使用了M个卷积核,操作M次,得到M个D_f * D_f * 1的特征图。这些特征图分别是从输入的不同通道学习而来,彼此独立。
这里写图片描述
depth wise计算(注意与标准卷积对比,求和的下标里面没有m, 说明其实各个通道是独立的,这里将m次操作表达为一个公式,论文中也表述depth wise kernel大小为D_k * D_k * M, 但这个跟标准卷积核不一样,M不代表卷积核的通道数)
这里写图片描述
计算量分析: (需要计算出 D_f * D_ f个值,每次的计算量为 D_k * D_k, 循环M次)
这里写图片描述

第二步为point wise卷积

对于上一步得到的M个特征图作为M个通道的输入,用N个1*1*M的卷积核进行标准卷积,得到D_f * D_f * N的输出。
这里写图片描述
计算量分析: 计算量按标准卷积的公式,其中D_k = 1, 计算量为1*1*M*N*D_f*D_f

节约计算量分析:
这里写图片描述
一般卷积核为3*3,计算量能节省9倍左右。

(3)网络结构设计

  • 局部结构
    • 输入第一层不用deptwise separable convolution
    • 每一层后面接bn与relu.(除了最后一层全连接层不接非线性直接接入softmax)
      这里写图片描述
  • 总的网络结构
    这里写图片描述

    • 下采样部分通过第一层卷积以及某些 depth wise convolution的stride =2实现。
    • 最后一层的average pooling是为了把输出分辨率压缩到1*1
    • Mobile Net共28层

(3)实验经验

  • 基本上所有的计算量均集中在1*1的conv操作上, GEMM的方法中有im2col的步骤,1*1conv不需要这个recording步骤。

这里写图片描述

  • 对于depth wise filters采用很小或没有的weight decay(L2 regularization)

(4)新的超参数

  • width multiplier: thinner models

    将某个层的将输入和输出的channel 均压缩α

倍, 参数取值为1,0.75,0.5,0.25. 可以将计算量和参数量减少 α2

resolution multiplier:Reduced Representation

因子ρ

将网络输入的大小降至224,192,160,128,可以将计算量减少 ρ2

将网络变瘦比将网络变浅的效果要好,说明网络深度的重要性。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
每天前100人再送5门编程课! AI+5门300元课程+社群闭门分享会源码开源下载:https://github.com/DjangoPeng/keras-101/tree/master/code_samples 【为什么学AI】 归功于近年来大规模数据和硬件计算能力的大幅度提升,人工智能的概念近两年一直是市场追捧的对象。目前各大厂都争先恐后地布局AI,落地各类AI的的商业应用,也随之打响了一场激烈的人才争夺战。长远来看,越快将 AI 用于自己的工作中就能越早体会到AI带来的收益。 【讲师介绍】 彭靖田 Google Developer Experts。 曾为 TensorFlow Top级 的贡献者,著书《深入理解TensorFlow》,是国内第一本深度剖析 Google AI 框架的畅销书。 曾从0到1深入参与了华为 2012 实验室深度学习平台和华为深度学习云服务的设计与研发工作。 【课程设计】 课程内容基于最新的Keras版本(你也可以使用 TensorFlow 2 的 tf.keras 模块),其中有大量独家解读、案例,以及不少讲师一线实战多年的方法论和深度思考。同时,在层次划分上,难易兼顾,循序渐进。既有核心的基础知识,也有高级的进阶操作,尽量做到“老少皆宜”。 课程分为基础篇、入门篇和实战篇: 一、基础篇: 主要讲解人工智能发展史和深度学习脱颖而出的原由,以及神经网络的基础概念、理论实现、优化原理和计算方法。 二、入门篇: 主攻快速上手,通过7个小节让你从0到1实现环境搭建、模型优化,直接试水2个实战项目。同时,增强AI的理论学习,系统掌握机器学习3大分支、模型评估方法、数据预处理常用手段与过拟合问题的解决方案。 三、实战篇: 通过4个实战全面掌握深度学习理论与实现,涵盖目标检测、图像分类、可视化和可解释性学习、迁移学习、特征提取、数据增强等。带你综合运用前面所学的所有知识,逐渐熟练AI开发流程与技能。 课程包含思维导图上的所有内容(价值199元)前500名立减100元,仅99元买完就能学!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值