README.md 3.13 KB
Newer Older
sunxx1's avatar
sunxx1 committed
1
2
# SeResnet50

sunxx1's avatar
sunxx1 committed
3
4
5
6
7
8
## 论文

Squeeze-and-Excitation Networks

- https://arxiv.org/pdf/1709.01507.pdf

sunxx1's avatar
sunxx1 committed
9
## 模型结构
sunxx1's avatar
sunxx1 committed
10
11
12

SE-ResNet50是一种基于残差网络(ResNet)和注意力机制(SE)的深度卷积神经网络模型,是由微软亚洲研究院提出的,是一种高效、快速、准确的图像分类模型,具有广泛的应用前景。

sunxx1's avatar
sunxx1 committed
13
![20231124110818](./images/20231124110818.png)
sunxx1's avatar
sunxx1 committed
14

sunxx1's avatar
sunxx1 committed
15
## 算法原理
sunxx1's avatar
sunxx1 committed
16

sunxx1's avatar
sunxx1 committed
17
Seresnet50的整体结构包括基础网络部分和Squeeze-and-Excitation(SE)模块。
sunxx1's avatar
sunxx1 committed
18

sunxx1's avatar
sunxx1 committed
19
![20231124111112](./images/20231124111112.png)
sunxx1's avatar
sunxx1 committed
20

sunxx1's avatar
sunxx1 committed
21
## 环境配置
sunxx1's avatar
sunxx1 committed
22

sunxx1's avatar
sunxx1 committed
23
### Docker**(方法一)**
sunxx1's avatar
sunxx1 committed
24

sunxx1's avatar
sunxx1 committed
25
26
27
28
```python
git clone --recursive http://developer.hpccube.com/codes/modelzoo/seresnet50_mmcv.git
docker pull image.sourcefind.cn:5000/dcu/admin/base/pytorch:1.10.0-centos7.6-dtk-22.10.1-py37-latest
# <your IMAGE ID>用以上拉取的docker的镜像ID替换
sunxx1's avatar
sunxx1 committed
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
docker run --shm-size 10g --network=host --name=nit-pytorch --privileged --device=/dev/kfd --device=/dev/dri --group-add video --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -v $PWD/seresnet50_mmcv :/home/seresnet50_mmcv -it <your IMAGE ID> bash

cd seresnet50_mmcv/mmclassification-mmcv
pip install -r requirements.txt
```

### Dockerfile(方法二)

```plaintext
cd seresnet50_mmcv/docker
docker build --no-cache -t seresnet50_mmcv:latest .
docker run --rm --shm-size 10g --network=host --name=megatron --privileged --device=/dev/kfd --device=/dev/dri --group-add video --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -v $PWD/../../seresnet50_mmcv:/home/seresnet50_mmcv -it megatron bash
# 若遇到Dockerfile启动的方式安装环境需要长时间等待,可注释掉里面的pip安装,启动容器后再安装python库:pip install -r requirements.txt
```

### Anaconda(方法三)

1、关于本项目DCU显卡所需的特殊深度学习库可从光合开发者社区下载安装: https://developer.hpccube.com/tool/

```plaintext
DTK驱动:dtk22.10.1
python:python3.7
torch:1.10.0
torchvision:0.10.0
mmcv:1.6.1
Tips:以上dtk驱动、python、torch等DCU相关工具版本需要严格一一对应
```

2、其它非特殊库参照requirements.txt安装
sunxx1's avatar
sunxx1 committed
58

sunxx1's avatar
sunxx1 committed
59
```plaintext
sunxx1's avatar
sunxx1 committed
60
61
pip install -r requirements.txt
```
sunxx1's avatar
sunxx1 committed
62
63
64
65
66

## 数据集

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

sunxx1's avatar
sunxx1 committed
67
68
69
70
下载ImageNet数据集:https://image-net.org/

下载val数据:链接:https://pan.baidu.com/s/1oXsmsYahGVG3uOZ8e535LA?pwd=c3bc 提取码:c3bc 替换ImageNet数据集中的val目录,处理后的数据结构如下:

sunxx1's avatar
sunxx1 committed
71
72
73
74
75
```
├── meta
├── train
├── val
```
sunxx1's avatar
sunxx1 committed
76

sunxx1's avatar
sunxx1 committed
77
## 训练
sunxx1's avatar
sunxx1 committed
78
79
80

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

sunxx1's avatar
sunxx1 committed
81
### 单机8卡
sunxx1's avatar
sunxx1 committed
82
83
84

    ./seresnet50.sh

sunxx1's avatar
sunxx1 committed
85
## 精度
sunxx1's avatar
sunxx1 committed
86
87
88

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

sunxx1's avatar
sunxx1 committed
89
90
91
92
| 卡数 |          精度           |
| :--: | :---------------------: |
|  8   | top1:0.7754;top5:0.9373 |

sunxx1's avatar
sunxx1 committed
93
94
95
96
97
98
99
100
101
102
103
104
105
106
## result

![img](https://developer.hpccube.com/codes/modelzoo/vit_pytorch/-/raw/master/image/README/1695381570003.png)

## 应用场景

### 算法类别

图像分类

### 热点行业

制造,能源,交通,网安

sunxx1's avatar
sunxx1 committed
107
### 源码仓库及问题反馈
sunxx1's avatar
sunxx1 committed
108

sunxx1's avatar
sunxx1 committed
109
https://developer.hpccube.com/codes/modelzoo/seresnet50_mmcv
sunxx1's avatar
sunxx1 committed
110
111
112
113

### 参考

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