【CANN训练营第三季】MMDeploy搭建手记(Atlas 200DK+CANN 6.0RC1)

举报
张辉 发表于 2022/12/06 06:19:21 2022/12/06
【摘要】 MMDeploy@Atlas 200DK

1、制作Atlas 200DK CANN 6.0.RC1的系统盘

在200DK上搭建CANN 6.0的最快方法就是使用dd镜像:https://www.hiascend.com/forum/thread-0217101703106643028-1-1.html

cke_1159.png

官方已经提供了CANN 6.0.RC1的alpha001-003三个dd镜像的链接:

先使用百度网盘将CANN 6.0.RC1.alpha003的文件下载下来:

cke_10941.png

这是个17G的zip文件,为防止下载的zip包有问题,将其解压:

cke_598.png

解压后有31G左右。

将32G的TF卡插入U盘读卡器。

打开桌面上已经安装好的balenaEtcher刻录软件:

cke_13043.png

选择源文件为前面解压好的文件。

选择目标盘:

cke_14281.png

看来这张32G的TF卡有点不够格,无奈换上一张128G的TF卡:

cke_24067.png

cke_24596.png

这回空间够了:

cke_31189.png

点击Flash开始刻录:

cke_45514.png

系统会提示有风险。当然,自己也要仔细确认下,别一不小心把硬盘抹了。

然后耐心等待刻录结束:

cke_73091.png

cke_73870.png

2、启动并连接200DK系统

刻录完毕之后,取下原来的64G海康威视的TF卡,将刻录好的128G三星TF卡插入200DK的TF卡槽,接上电源,开机:

cke_1879.jpeg

接上网线,耐心等4个灯全亮:

cke_4287.jpeg

试一下网线对应的IP地址,并没有没变化:

cke_5207.png

但使用MobaXterm连接200DK时,会提示认证变了:

cke_6099.png

点同意即可:

cke_7289.png

3、查看当前系统的软件版本

查看CANN的版本:6.0.RC1.alpha003

cke_7884.png

Python3:3.7.5

cmake 3.10.2

gcc 7.5.0

cke_10022.png

目前的主要问题是:python3.7.5未必能支持MMDeploy,pip的版本指向python3.6,cmake版本不够。

4、升级cmake到3.24

下载cmake代码包:

cke_23475.png

tar -xvf cmake-3.24.3.tar.gz

cd cmake-3.24.3

./configure

make -j$(nproc)

sudo make install

在~/.bashrc中加入 PATH=/usr/local/bin:$PATH

source ~/.bashrc

cmake --version

5、升级Python3到3.9.7

获取 Python-3.9.7.tgz安装包,传到 HwHiAiUser的用户根目录:

cke_20315.png

tar -zxvf Python-3.9.7.tgz

cd Python-3.9.7

sudo apt-get install libbz2-dev

./configure --prefix=/usr/local/python-3.9.7 --enable-shared --enable-optimizations

make -j$(nproc)

sudo make install

cke_630.png

sudo apt-get install python-pip

cke_8284.png

cke_12286.png

修改~/.bashrc

将原来python3.7.5改为python-3.9.7

cke_2306.png

source ~/.bashrc

python3 -V

pip3 -V

cke_3975.png

6、安装Pytorch

pip3 install torch==1.8.1 torchvision==0.9.1 --extra-index-url https://download.pytorch.org/whl/cpu -i https://pypi.tuna.tsinghua.edu.cn/simple

cke_12494.png

cke_12799.png

7、安装openmim

pip3 install openmim -i https://pypi.tuna.tsinghua.edu.cn/simple

cke_13524.png

8、安装MMCV

mim install mmcv-full -i https://pypi.tuna.tsinghua.edu.cn/simple

cke_438.png


9、安装MMDeploy

git clone --recursive https://gitee.com/chen-hong-chhhh/mmdeploy

cke_4614.png

cd ~/mmdeploy

安装MMDeploy的模型转换器:

pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple -v -e .

cke_416.png

安装MMDeploy的SDK:

source ~/Ascend/ascend-toolkit/set_env.sh

cd ~/mmdeploy

mkdir -p build && cd build

cmake .. -DMMDEPLOY_BUILD_SDK=ON -DMMDEPLOY_BUILD_SDK_PYTHON_API=ON -DMMDEPLOY_TARGET_BACKENDS=acl

make -j$(nproc)

cke_1237.png

make install

cke_2279.png

验证MMDeploy的模型转换工具是否部署成功:

cd ~/mmdeploy

python3 tools/check_env.py

cke_4018.png

cke_4660.png

验证MMDeploy的SDK是否部署成功:

export PYTHONPATH=$(pwd)/build/lib:$PYTHONPATH

python3 -c "import mmdeploy_python"

cke_5816.png

10、实现ResNet18、ResNet50、FasterRCNN、RetinaNet的模型转换和模型推理

安装openmmlab的算法库mmcls

pip3 install mmcls -i https://pypi.tuna.tsinghua.edu.cn/simple

安装openmmlab的算法库mmdet

pip3 install mmdet -i https://pypi.tuna.tsinghua.edu.cn/simple

cd ~/mmdeploy

下载原始模型:

mim download mmcls --config resnet18_8xb32_in1k --dest .

mim download mmcls --config resnet50_8xb32_in1k --dest .

mim download mmdet --config faster_rcnn_r50_fpn_1x_coco --dest .

mim download mmdet --config retinanet_r50_fpn_1x_coco --dest .

cke_34246.png

参考:https://bbs.huaweicloud.com/blogs/385709

将在CANN 5.1.RC2上试验过的转换脚本文件传到200DK上。

执行模型转换:

sh ./resnet18.sh

cke_35211.png

这是python2的问题,需要将shell脚本中的python均改为python3。

sh ./resnet18.sh

cke_9134.png

python3 -m pip install attrs numpy decorator sympy cffi pyyaml pathlib2 psutil protobuf scipy requests absl-py -i https://pypi.tuna.tsinghua.edu.cn/simple

cke_2007.png

cke_2449.png

再重来:sh ./resnet18.sh

cke_3045.png

cke_3282.png

转换成功,其中atc不到3分钟。

sh ./resnet50.sh

cke_8998.png

cke_9700.png

cke_10638.png

cke_11278.png

其中atc不到3分钟。

上传det.jpg待检测图片:

cke_15106.png

sh ./faster_rcnn.sh

cke_12431.png

cke_13335.png

cke_16432.png

cke_17485.png

其中atc约23分钟。

sh ./retina.sh

cke_36844.png

cke_37979.png

cke_823.png

cke_1872.png

其中atc耗时 15分钟左右。

查看转换结果:

cd ~/mmdeploy/mmdeploy_models/mmcls/resnet18/cann

cke_24734.png

cd ~/mmdeploy/mmdeploy_models/mmcls/resnet50/cann

cke_22572.png

cd ~/mmdeploy/mmdeploy_models/mmdet/faster_rcnn/cann

cd ~/mmdeploy/mmdeploy_models/mmdet/retina/cann

cke_26668.png

执行推理:

cd ~/mmdeploy

python3 resnet18_inference.py

cke_28643.png

python3 faster_rcnn_inference.py

cke_29207.png

查看推理结果图片:faster_rcnn_output_detection.png

cke_29735.png

python3 resnet50_inference.py

cke_30485.png

python3 retina_inference.py

cke_31364.png

查看推理结果图片:retinanet_output_detection.png

cke_32204.png

下载图片到本地:

cke_33448.png

cke_33776.png

cke_34134.png

cke_34611.png

(全文完,谢谢阅读)

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。