动手记录模型:mobilenetv1

Posted 伙上伴冰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了动手记录模型:mobilenetv1相关的知识,希望对你有一定的参考价值。

轻量级网络:mobilenetv1

神经网络在实际应用的问题

  1. 可解释性差(黑盒子)
  2. 没法微调(百分之99%,剩余的百分之1%没法更改)
  3. 内存和CPU使用较高

解决内存CPU高

  • 二值化网络(Binary)
  • 轻量级网络
  1. Mobilenets
  2. Shufflenet
  3. EffNet

mobilenetv1

论文
github

亮点

  • Depthwise separable convolution(输入通道独立卷积)



详解

普通卷积

输出层数 10层:

需要5*5*3 * 10

分离卷积

输出层10层



1*1*3 * 10

计算量比较

  • 输出图像12*12*3
  • 输出图像8*8*256

Convolution
卷积核大小 5*5*3 256个
数据量:5*5*3*256 =19200
计算量:8*8*5*5*3*256 =1228800
`

  • 输出端的每个点 8*8
  • 输出端的层数 256
  • 每个点做的卷积运算(这里只算了乘法) 5*5*3
    `

Depthwise separable convolution
第一步:卷积核大小 5*5*1. 3个
第二步:卷积核大小 1*1*3. 256个
数据量:5*5*1*3 + 1*1*3*256 = 843
计算量:5*5*1*3*8*8+8*8*1*1*3*256 = 53952


计算量对比公式

5 ∗ 5 ∗ 1 ∗ 3 ∗ 8 ∗ 8 + 8 ∗ 8 ∗ 1 ∗ 1 ∗ 3 ∗ 256 8 ∗ 8 ∗ 5 ∗ 5 ∗ 3 ∗ 256 \\frac5*5*1*3*8*8+8*8*1*1*3*2568*8*5*5*3*256 88553256551388+88113256

1 256 + 1 5 ∗ 5 \\frac1256+\\frac15*5 2561+551

网络块

网络结构

第一层使用普通卷积

网络效果

参见论文

代码实现

pytorch

tensorflow

caffe

注意

以上是关于动手记录模型:mobilenetv1的主要内容,如果未能解决你的问题,请参考以下文章

MobileNetV1实战:使用MobileNetV1实现植物幼苗分类

mobileNetV1网络解析,以及实现(pytorch)

MobileNet实战:tensorflow2.X版本,MobileNetV1图像分类任务(小数据集)

MobileNetV1 V2 V3网络理解+pytorch源码

MobileNet实战:tensorflow2.X版本,MobileNetV1图像分类任务(大数据集)

MobileNet V1官方预训练模型的使用