README.md 2.39 KB
Newer Older
dcuai's avatar
dcuai committed
1
# ResNet50
zhanggezhong's avatar
zhanggezhong committed
2
3
4
## 论文
`Deep Residual Learning for Image Recognition`
- https://arxiv.org/abs/1512.03385
Rayyyyy's avatar
Rayyyyy committed
5

zhanggezhong's avatar
zhanggezhong committed
6
7
8
## 模型结构
ResNet50网络中包含了49个卷积层、1个全连接层等

9
![image.png](./image.png)
Rayyyyy's avatar
Rayyyyy committed
10

zhanggezhong's avatar
zhanggezhong committed
11
12
13
## 算法原理
ResNet50使用了多个具有残差连接的残差块来解决梯度消失或梯度爆炸问题,并使得网络可以向更深层发展。

14
![image-1.png](./image-1.png)
dcuai's avatar
dcuai committed
15

zhanggezhong's avatar
zhanggezhong committed
16
17
18
19
## 环境配置
### Docker(方法一)

```
Rayyyyy's avatar
Rayyyyy committed
20
docker pull image.sourcefind.cn:5000/dcu/admin/base/custom:tvm-0.11_fp32_cpp_dtk22.10_py38_centos-7.6-latest
dcuai's avatar
dcuai committed
21
docker run --shm-size 16g --network=host --name=ResNet50_v2 --privileged --device=/dev/kfd --device=/dev/dri --group-add video --cap-add=SYS_PTRACE --security-opt seccomp=unconfined  -it <Your Image ID> /bin/bash
zhanggezhong's avatar
zhanggezhong committed
22
23
24
25

# 激活dtk
source /opt/dtk/env.sh
```
Rayyyyy's avatar
Rayyyyy committed
26

zhanggezhong's avatar
zhanggezhong committed
27
## 数据集
Rayyyyy's avatar
Rayyyyy committed
28
29
30
31
32
33
34
python推理及调优代码使用的图片数据为:[kitten](./kitten.jpg)

标签数据为:[synset.txt](./synset.txt)

C++部署代码使用数据为:[coco128](./coco128.zip)

coco128数据集的目录结构如下:
zhanggezhong's avatar
zhanggezhong committed
35
```
Rayyyyy's avatar
Rayyyyy committed
36
37
38
39
40
41
├── images
│   ├── train2017
├── labels
│   ├── train2017
├── LICENSE
├── README.txt
zhanggezhong's avatar
zhanggezhong committed
42
```
dcuai's avatar
dcuai committed
43
44

## 推理
chenzk's avatar
chenzk committed
45
下载模型文件[resnet50-v2-7.onnx](https://github.com/onnx/models/blob/main/validated/vision/classification/resnet/model/resnet50-v2-7.onnx),执行以下命令进行推理测试及调优测试:
Rayyyyy's avatar
Rayyyyy committed
46
```bash
chenzk's avatar
chenzk committed
47
git clone http://developer.sourcefind.cn/codes/modelzoo/tvm_tune_resnet50-v2.git
Rayyyyy's avatar
Rayyyyy committed
48
49
50
cd tvm_tune_resnet50-v2
export HIP_VISIBLE_DEVICES=1 #此处为指定哪张加速卡进行推理的ID号
python tune_resnet50-v2.py   #根据实际修改模型路径
zhanggezhong's avatar
zhanggezhong committed
51
```
Rayyyyy's avatar
Rayyyyy committed
52

zhanggezhong's avatar
zhanggezhong committed
53
### 单卡部署推理测试
Rayyyyy's avatar
Rayyyyy committed
54
55
56
57
58
59
60
61
62
63
64
下载配置好镜像之后,执行以下命令:
```bash
# 进入该路径下
cd /tvm-0.11-dev0/apps/ # 将代码下载放到该路径下
# 进入
cd tvm_tune_resnet50-v2/
# 执行
mkdir -p lib
export HIP_VISIBLE_DEVICES=1 #此处为指定哪张加速卡进行推理的ID号
python prepare_test_libs.py  #根据实际修改模型路径
sh run_example.sh
zhanggezhong's avatar
zhanggezhong committed
65
```
dcuai's avatar
dcuai committed
66

Rayyyyy's avatar
Rayyyyy committed
67
## result
68
![kitten-1.jpg](./kitten-1.jpg)
dcuai's avatar
dcuai committed
69
70

### 精度
Rayyyyy's avatar
Rayyyyy committed
71
72
73
| max_num | max_iter | max_num_index |
| :------: | :------: | :------: |
| 15.6692 | 0x28cda14 | 345 |
zhanggezhong's avatar
zhanggezhong committed
74

Rayyyyy's avatar
Rayyyyy committed
75
## 应用场景
zhanggezhong's avatar
zhanggezhong committed
76
77
78
79
80
81
### 算法类别
图像分类

### 热点应用行业
制造,政府,医疗,科研

Rayyyyy's avatar
Rayyyyy committed
82
## 源码仓库及问题反馈
chenzk's avatar
chenzk committed
83
- https://developer.sourcefind.cn/codes/modelzoo/tvm_tune_resnet50-v2
zhanggezhong's avatar
zhanggezhong committed
84

zhanggezhong's avatar
zhanggezhong committed
85
### 参考资料
Rayyyyy's avatar
Rayyyyy committed
86
- https://tvm.apache.org/docs