README.md 3.48 KB
Newer Older
sunxx1's avatar
sunxx1 committed
1
2
# Densenet121

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

Densely Connected Convolutional Networks

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

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

sunxx1's avatar
sunxx1 committed
11
12
DenseNet-121是一种深度卷积神经网络,如图所示,由Kaiming He等人于2017年提出。它是DenseNet系列中的一种,也是其中最流行的一种,被广泛应用于计算机视觉领域的图像分类、目标检测和语义分割等任务。

sunxx1's avatar
sunxx1 committed
13
![image-20231120204030674](./images/image-20231120204030674.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
DenseNet的核心组件为“Dense Block”,如图所示,由Dense connectivity和Transition Layer组成。每个密集块中包含若干个卷积层和池化层,每个卷积层都会接收前面所有层的输入,并将它们连接到自己的输出上。而过渡层则用于将前面密集块的输出进行降维,减少参数数量。
sunxx1's avatar
sunxx1 committed
18

sunxx1's avatar
sunxx1 committed
19
![image-20231120204212494](./images/image-20231120204212494.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
```python
sunxx1's avatar
sunxx1 committed
26
git clone --recursive http://developer.hpccube.com/codes/modelzoo/densenet121_mmcv.git
sunxx1's avatar
sunxx1 committed
27
28
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
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/densenet121_mmcv:/home/densenet121_mmcv -it <your IMAGE ID> bash
sunxx1's avatar
sunxx1 committed
30

sunxx1's avatar
sunxx1 committed
31
cd densenet121_mmcv/mmclassification-mmcv
sunxx1's avatar
sunxx1 committed
32
33
pip install -r requirements.txt
```
sunxx1's avatar
sunxx1 committed
34

sunxx1's avatar
sunxx1 committed
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
### Dockerfile(方法二)

```plaintext
cd densenet121_mmcv/docker
docker build --no-cache -t densenet121_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/../../densenet121_mmcv:/home/densenet121_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安装

```plaintext
pip install -r requirements.txt
```

sunxx1's avatar
sunxx1 committed
63
## 数据集
sunxx1's avatar
sunxx1 committed
64

sunxx1's avatar
sunxx1 committed
65
在本测试中可以使用ImageNet数据集。
sunxx1's avatar
sunxx1 committed
66

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

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

sunxx1's avatar
sunxx1 committed
73
74
75
76
77
```
├── meta
├── train
├── val
```
sunxx1's avatar
sunxx1 committed
78

sunxx1's avatar
sunxx1 committed
79
## 训练
sunxx1's avatar
sunxx1 committed
80
81
82

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

sunxx1's avatar
sunxx1 committed
83
### 单机8卡
sunxx1's avatar
sunxx1 committed
84
85
86

    ./densenet121.sh

sunxx1's avatar
sunxx1 committed
87
## 精度
sunxx1's avatar
sunxx1 committed
88
89
90

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

sunxx1's avatar
sunxx1 committed
91
92
93
94
| 卡数 |           精度            |
| :--: | :-----------------------: |
|  8   | top1:0.74044;top5:0.91672 |

sunxx1's avatar
sunxx1 committed
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
### 源码仓库及问题反馈
sunxx1's avatar
sunxx1 committed
110

sunxx1's avatar
sunxx1 committed
111
http://developer.hpccube.com/codes/modelzoo/densenet121_mmcv.git
sunxx1's avatar
sunxx1 committed
112

sunxx1's avatar
sunxx1 committed
113
### 参考
sunxx1's avatar
sunxx1 committed
114

sunxx1's avatar
sunxx1 committed
115
https://github.com/open-mmlab/mmpretrain