动手记录模型:mobilenetv1
Posted 伙上伴冰
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了动手记录模型:mobilenetv1相关的知识,希望对你有一定的参考价值。
轻量级网络:mobilenetv1
神经网络在实际应用的问题
- 可解释性差(黑盒子)
- 没法微调(百分之99%,剩余的百分之1%没法更改)
- 内存和CPU使用较高
解决内存CPU高
- 二值化网络(Binary)
- 轻量级网络
- Mobilenets
- Shufflenet
- EffNet
mobilenetv1
亮点
- 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 8∗8∗5∗5∗3∗2565∗5∗1∗3∗8∗8+8∗8∗1∗1∗3∗256
1
256
+
1
5
∗
5
\\frac1256+\\frac15*5
2561+5∗51
网络块
网络结构
第一层使用普通卷积
网络效果
参见论文
代码实现
pytorch
tensorflow
caffe
注意
以上是关于动手记录模型:mobilenetv1的主要内容,如果未能解决你的问题,请参考以下文章
MobileNetV1实战:使用MobileNetV1实现植物幼苗分类
MobileNet实战:tensorflow2.X版本,MobileNetV1图像分类任务(小数据集)
MobileNetV1 V2 V3网络理解+pytorch源码