模型转换:使用华为的模型转换工具 ATC
ATC
在 ascend-cann-toolkit
包里
环境
Docker Image:
ascendhub.huawei.com/public-ascendhub/ascend-pytorch:24.0.RC1-A2-2.1.0-ubuntu20.04
镜像版本 | CANN版本 | Pytorch版本 | 变更项 |
---|---|---|---|
24.0.RC1 | 8.0.RC1 | 2.1.0 | 基础镜像变更为 ubuntu20.04。python版本升级为3.9.2 建议在x86设备上转换模型 |
23.0.0 | 7.0.0 | 1.11.0 | |
22.0.0 | 6.0.1 | 1.8.1 |
PS.
帮大家试过了 yolov8
中的部分算子22.0.0
版本不支持
模型转化失败
23.0.0
转化成功, 但是盒子的驱动版本是 22.0.0
, 两个选择 要么自己写算子 要么更新驱动
启动镜像, 可能需要等待一段时间 (我也不懂什么jb镜像在x86启动也要这么久)
docker run -it -v$(pwd):/workspace ascendhub.huawei.com/public-ascendhub/ascend-pytorch:24.0.RC1-A2-2.1.0-ubuntu20.04 /bin/bash
设置环境变量
source /usr/local/Ascend/ascend-toolkit/set_env.sh
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/Ascend/ascend-toolkit/latest/x86_64-linux/devlib
检查atc能否使用
HwHiAiUser@7deabf7bb2d9:~$ atc
ATC start working now, please wait for a moment.
...
ATC run failed, Please check the detail log, Try 'atc --help' for more information
E10007: [--framework] is required. The value must be [0(Caffe) or 1(MindSpore) or 3(TensorFlow) or 5(Onnx)].
若出现上面的log 则表示环境配置成功
转换
ATC参考文档
参数说明
这里以YOLOv8.ONNX
为例
atc --model=yolov8n.onnx --framework=5 --output=yolov8n_ascend --soc_version=Ascend310
输出 log 表示转换成功:
ATC start working now, please wait for a moment.
...
ATC run success, welcome to the next use.
推理
PS.
驱动更新失败了, 推理先告一段落
后面这些没必要看了 个人笔记
环境
驱动安装
固件安装
安装驱动
第一次安装失败了
原因是缺少工具update-rc.d和chkconfig | 安装驱动所需Linux工具
但是盒子上没有apt, tmd…
docker
Docker Image: ascendhub.huawei.com/public-ascendhub/ascend-infer:24.0.RC1-ubuntu20.04
不到1G的镜像, 但是没有 ascend-cann-toolkit
, 取而代之的是 nnrt
也没有亲爱的 pytorch
老样子, 设置环境变量
source /usr/local/Ascend/nnrt/set_env.sh
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/Ascend/nnrt/latest/x86_64-linux/devlib
官方声称这个镜像有 pip
, 反正我没找到
自己装:
apt-get update -y
apt-get install python3-pip -y
先来个numpy
压压惊
pip install numpy Pillow -i https://pypi.tuna.tsinghua.edu.cn/simple
推理代码
官方文档: 如何使用 acl
加载模型实现推理: 该文档以resnet50为例