README.md 3.13 KB
Newer Older
dcuai's avatar
dcuai committed
1
# MobileNetV2
Sugon_ldc's avatar
Sugon_ldc committed
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
## 论文
- https://arxiv.org/abs/1801.04381
## 模型结构
MobileNetV2 是一种轻量级卷积神经网络,采用倒置残差结构和深度可分离卷积来高效地进行特征提取,适用于资源受限的移动设备和嵌入式系统

![model1](model1.png)


## 算法原理
MobileNetV2 通过使用倒置残差结构和深度可分离卷积,有效减少了计算量和参数数量,同时提高了模型的效率和准确性

![model2](model2.png)


## 环境配置
### Docker(方法一)
此处提供[光源](https://www.sourcefind.cn/#/service-details)拉取docker镜像的地址与使用步骤
```
docker pull image.sourcefind.cn:5000/dcu/admin/base/pytorch:2.1.0-py3.10-dtk24.04.3-ubuntu20.04

docker run -it --name docker_name -v /path/your_code_data/:/path/your_code_data/ -v /opt/hyhal:/opt/hyhal:ro --network=host --shm-size=32G --privileged=true --device=/dev/kfd --ipc=host --device=/dev/dri/ --group-add video image.sourcefind.cn:5000/dcu/admin/base/pytorch:2.1.0-py3.10-dtk24.04.3-ubuntu20.04 /bin/bash
Sugon_ldc's avatar
Sugon_ldc committed
23
24

pip install -r requirements.txt
Sugon_ldc's avatar
Sugon_ldc committed
25
26
27
28
29
30
31
```
### Dockerfile(方法二)
此处提供dockerfile的使用方法
```
cd ./docker
docker build --no-cache -t mobilenetv2:1.0 .
docker run -it -v /path/your_code_data/:/path/your_code_data/ --shm-size=32G --privileged=true --device=/dev/kfd --device=/dev/dri/ --group-add video --name docker_name imageID /bin/bash
Sugon_ldc's avatar
Sugon_ldc committed
32
33

pip install -r requirements.txt
Sugon_ldc's avatar
Sugon_ldc committed
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
```
### Anaconda(方法三)
此处提供本地配置、编译的详细步骤,例如:

关于本项目DCU显卡所需的特殊深度学习库可从[光合](https://developer.hpccube.com/tool/)开发者社区下载安装。
```
DTK驱动:dtk24.04.3
python:python3.10
torch:2.1.0
torchvision:0.16.0
```
`Tips:以上dtk驱动、python、paddle等DCU相关工具版本需要严格一一对应`

其它非深度学习库参考如下安装:
```
pip install scikit-learn
```
## 数据集
`fer2013`

工程文件中包含删减了部分内容的fer2013数据集

- https://www.kaggle.com/datasets/deadskull7/fer2013。

数据集为单个的csv文件

## 训练
一般情况下,ModelZoo上的项目提供单机训练的启动方法即可,单机多卡、单机单卡至少提供其一训练方法。
### 单机多卡
```
Sugon_ldc's avatar
Sugon_ldc committed
64
mkdir logs #若已经创建不需要重新创建
Sugon_ldc's avatar
Sugon_ldc committed
65
export HIP_VISIBLE_DEVICES=0,1,2,3,4,5,6,7
Sugon_ldc's avatar
Sugon_ldc committed
66
67
68
69
70
python -m torch.distributed.launch --nproc_per_node=8 driver.py 
```

### 单机单卡
```
Sugon_ldc's avatar
Sugon_ldc committed
71
export HIP_VISIBLE_DEVICES=0
Sugon_ldc's avatar
Sugon_ldc committed
72
mkdir logs #若已经创建不需要重新创建
Sugon_ldc's avatar
Sugon_ldc committed
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
python driver.py
```


## result

![result](result.png)



### 精度
测试数据:fer2013,使用的加速卡:K100_AI。

根据测试结果情况填写表格:
| 卡数 | 精度 |
| :------: | :------: |
Sugon_ldc's avatar
Sugon_ldc committed
89
| 8 | 0.668 |
Sugon_ldc's avatar
Sugon_ldc committed
90
91
92
93
94
95
96
97
98
99
100
101
102
103
## 应用场景
### 算法类别
`目标检测`

### 热点应用行业

`交通,政府,金融`

## 预训练权重
- 该工程为通用训练模型,不需要预训练权重文件
## 源码仓库及问题反馈
- https://developer.sourcefind.cn/codes/modelzoo/mobilenet_v2_pytorch
## 参考资料
- [vision/torchvision/models/mobilenetv2.py at main · pytorch/vision](https://github.com/pytorch/vision/blob/main/torchvision/models/mobilenetv2.py)