README.md 2.37 KB
Newer Older
sunxx1's avatar
sunxx1 committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# Mobilenetv2

## 模型介绍

MobileNetV2是一种轻量级的卷积神经网络模型,由Google在2018年提出。它是MobileNet系列中的第二个版本,主要用于移动设备和嵌入式设备等资源受限的环境中进行图像分类、目标检测等计算机视觉任务。

## 模型结构

MobileNetV2的网络结构主要由两部分组成:特征提取层和分类器。

特征提取层采用了一连串的瓶颈块来减小模型大小和计算量。每个瓶颈块包括逐点卷积、逐通道扩展和逐点卷积三个操作。其中逐点卷积用于降低特征图的通道数量,逐通道扩展则是为了增加特征图的深度,逐点卷积再次将通道数量转换为更小的值。MobileNetV2引入了倒残差结构,即先使用逐点卷积缩小通道数量,然后使用瓶颈块处理特征图,最后再使用逐点卷积扩展通道数量。最后一个重要的设计是Squeeze-and-Excitation (SE)模块,它可以用于进一步优化特征提取。SE模块通过使用全局平均池化来获取特征图中每个通道的全局信息,并使用两个全连接层来动态地调整每个通道的权重,以增强重要的特征并抑制无关的特征。

分类器采用全局平均池化和全连接层来进行图像分类。全局平均池化将特征图的每个通道降为一个值,然后将这些值传递给全连接层进行分类。这种方法不仅可以减少参数数量,还可以防止过拟合。

## 数据集

在本测试中可以使用ImageNet数据集。

## Mobilenetv2训练

### 环境配置

下载工程代码:

http://developer.hpccube.com/codes/aicomponent/mmclassification-mmcv.git

提供[光源](https://www.sourcefind.cn/#/service-details)拉取的训练的docker镜像:

* 训练镜像:docker pull image.sourcefind.cn:5000/dcu/admin/base/pytorch:1.10.0-centos7.6-dtk-22.10.1-py37-latest
* pip install -r requirements.txt
* cd mmclassification    
* pip install -e .

### 训练

将训练数据解压到data目录下。

训练命令:

    ./mobilenetv2.sh

sunxx1's avatar
sunxx1 committed
42
## 准确率数据
sunxx1's avatar
sunxx1 committed
43
44
45

测试数据使用的是ImageNet数据集,使用的加速卡是DCU Z100L。

sunxx1's avatar
sunxx1 committed
46
47
48
49
| 卡数 |           精度            |
| :--: | :-----------------------: |
|  8   | top1:0.71764;top5:0.90386 |

sunxx1's avatar
sunxx1 committed
50
### 源码仓库及问题反馈
sunxx1's avatar
sunxx1 committed
51
52

https://developer.hpccube.com/codes/modelzoo/mobilenetv2-mmcv
sunxx1's avatar
sunxx1 committed
53
54
55
56

### 参考

https://github.com/open-mmlab/mmpretrain