【CANN训练营第三季】MMDeploy搭建手记(Atlas 200DK+CANN 6.0RC1)
1、制作Atlas 200DK CANN 6.0.RC1的系统盘
在200DK上搭建CANN 6.0的最快方法就是使用dd镜像:https://www.hiascend.com/forum/thread-0217101703106643028-1-1.html
官方已经提供了CANN 6.0.RC1的alpha001-003三个dd镜像的链接:
先使用百度网盘将CANN 6.0.RC1.alpha003的文件下载下来:
这是个17G的zip文件,为防止下载的zip包有问题,将其解压:
解压后有31G左右。
将32G的TF卡插入U盘读卡器。
打开桌面上已经安装好的balenaEtcher刻录软件:
选择源文件为前面解压好的文件。
选择目标盘:
看来这张32G的TF卡有点不够格,无奈换上一张128G的TF卡:
这回空间够了:
点击Flash开始刻录:
系统会提示有风险。当然,自己也要仔细确认下,别一不小心把硬盘抹了。
然后耐心等待刻录结束:
2、启动并连接200DK系统
刻录完毕之后,取下原来的64G海康威视的TF卡,将刻录好的128G三星TF卡插入200DK的TF卡槽,接上电源,开机:
接上网线,耐心等4个灯全亮:
试一下网线对应的IP地址,并没有没变化:
但使用MobaXterm连接200DK时,会提示认证变了:
点同意即可:
3、查看当前系统的软件版本
查看CANN的版本:6.0.RC1.alpha003
Python3:3.7.5
cmake 3.10.2
gcc 7.5.0
目前的主要问题是:python3.7.5未必能支持MMDeploy,pip的版本指向python3.6,cmake版本不够。
4、升级cmake到3.24
下载cmake代码包:
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的用户根目录:
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
sudo apt-get install python-pip
修改~/.bashrc
将原来python3.7.5改为python-3.9.7
source ~/.bashrc
python3 -V
pip3 -V
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
7、安装openmim
pip3 install openmim -i https://pypi.tuna.tsinghua.edu.cn/simple
8、安装MMCV
mim install mmcv-full -i https://pypi.tuna.tsinghua.edu.cn/simple
9、安装MMDeploy
git clone --recursive https://gitee.com/chen-hong-chhhh/mmdeploy
cd ~/mmdeploy
安装MMDeploy的模型转换器:
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple -v -e .
安装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)
make install
验证MMDeploy的模型转换工具是否部署成功:
cd ~/mmdeploy
python3 tools/check_env.py
验证MMDeploy的SDK是否部署成功:
export PYTHONPATH=$(pwd)/build/lib:$PYTHONPATH
python3 -c "import mmdeploy_python"
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 .
参考:https://bbs.huaweicloud.com/blogs/385709
将在CANN 5.1.RC2上试验过的转换脚本文件传到200DK上。
执行模型转换:
sh ./resnet18.sh
这是python2的问题,需要将shell脚本中的python均改为python3。
sh ./resnet18.sh
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
再重来:sh ./resnet18.sh
转换成功,其中atc不到3分钟。
sh ./resnet50.sh
其中atc不到3分钟。
上传det.jpg待检测图片:
sh ./faster_rcnn.sh
其中atc约23分钟。
sh ./retina.sh
其中atc耗时 15分钟左右。
查看转换结果:
cd ~/mmdeploy/mmdeploy_models/mmcls/resnet18/cann
cd ~/mmdeploy/mmdeploy_models/mmcls/resnet50/cann
cd ~/mmdeploy/mmdeploy_models/mmdet/faster_rcnn/cann
cd ~/mmdeploy/mmdeploy_models/mmdet/retina/cann
执行推理:
cd ~/mmdeploy
python3 resnet18_inference.py
python3 faster_rcnn_inference.py
查看推理结果图片:faster_rcnn_output_detection.png
python3 resnet50_inference.py
python3 retina_inference.py
查看推理结果图片:retinanet_output_detection.png
下载图片到本地:
(全文完,谢谢阅读)
- 点赞
- 收藏
- 关注作者
评论(0)