当前位置: 首页 > ai >正文

华为海思系列----昇腾张量编译器(ATC)模型转换工具----入门级使用指南(LINUX版)

        由于官方SDK比较冗余且经常跨文档讲解且SDK整理的乱七八糟,对于新手来说全部看完上手成本较高,本文旨在以简短的方式介绍 CAFFE / ONNX 模型转 om 模型,并进行推理的全流程。希望能够帮助到第一次接触华为海思框架的道友们。大佬们就没必要看这种基础文章啦!

        注:本文所有操作均在 WSL (Windows 虚拟子系统)上操作的,默认 root 环境,默认开发板系统为LINUX,所有环境变量均写入 bashrc ,非虚拟机用户谨慎写入。所有用到的工具以及示例代码,均在文末。

目录

1. 简介

1.1 安装CANN ToolKit(以python3.9为例)

1.1.1 编译python3.9

1.1.2 安装 cann 

1.2 交叉编译工具链安装

1.3 安装openssh(有的话可跳过,没有也可以通过 NFS 共享目录解决文件传输问题)

2. 使用方法

2.1 caffe 转 om(以resnet50为例)

2.2 om 模型信息查看

2.3 om 模型推理流程(类似RKNNToolKitLite)

2.4 开发板执行

2.5 源码及工具链传送门 


1. 简介

        ATC 是海思芯片的模型转换工具,用于将开源框架网络模型(caffe,onnx,tensorflow)转化为 .om 格式并使用 AscendCL进行推理(因为笔者比较熟悉瑞芯微系列,分别类似于类似瑞芯微系列的RKNNToolkit工具, .rknn 模型,RKNNToolkitLite板端推理工具)。

1.1 安装CANN ToolKit(以python3.9为例)

        模型转换需要在 linux x86 设备上进行,因为我的服务器是ubuntu22.04,而官方给的交叉编译工具又必须在ubuntu18.04上才能用,所以我选择使用 WSL,安装ubuntu18.04参考:Windows11 安装 WSL

1.1.1 编译python3.9

        坑:各 python 必须严格按照下述版本,否则执行模型转换时会报错 :Python3.7.x(3.7.5~3.7.11)、Python3.8.x(3.8.0~3.8.11)、Python3.9.x(3.9.0~3.9.2)推荐使用Python3.9.2

# 安装python3.9
sudo apt update
sudo apt install -y build-essential libssl-dev zlib1g-dev \libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \libncurses5-dev libncursesw5-dev xz-utils tk-dev \libffi-dev libxslt1-dev liblzma-dev python3-openssl cmake Pillow git wget https://www.python.org/ftp/python/3.9.2/Python-3.9.2.tgz
tar -zxvf Python-3.9.2.tgz
cd Python-3.9.2
./configure --prefix=/usr/local/python3.9.2 --with-ssl-default-suites=openssl --enable-shared CFLAGS=-fPIC
make -j8
make install
vi ~/.bashrc
export LD_LIBRARY_PATH=/usr/local/python3.9.2/lib:$LD_LIBRARY_PATH
export PATH=/usr/local/python3.9.2/bin:$PATH
source ~/.bashrc# 安装 cann 所需 python 环境
# 注意,WSL默认sudo权限,此处如果用sudo,后续执行 ./Ascend-cann-toolkit_8.1.RC1_linux-x86_64.run --install 也要加sudo
pip3 install attrs cython numpy==1.24.0 decorator sympy cffi pyyaml pathlib2 psutil protobuf==3.20 scipy requests absl-py -i https://pypi.tuna.tsinghua.edu.cn/simple

1.1.2 安装 cann 

        在昇腾官网下载 cann 安装包, 并传到WSL中:社区版资源下载-资源下载中心-昇腾社区

        注:我用的是SDK中提供的 Ascend-cann-toolkit_5.20.t6.2.b060_linux-x86_64.run
chmod +x Ascend-cann-toolkit_5.20.t6.2.b060_linux-x86_64.run# 校验安装包是否完整, 校验成功会显示 Verifying archive integrity...  100%
./Ascend-cann-toolkit_5.20.t6.2.b060_linux-x86_64.run --check# 安装,安装过程中有协议确认,按 Y 即可,安装成功会显示 <..
http://www.xdnf.cn/news/5829.html

相关文章:

  • AD PCB布局时常用的操作命令
  • Python作业练习2
  • Go语言——docker-compose部署etcd以及go使用其服务注册
  • Spark处理过程—转换算子
  • 0.66kV0.69kV接地电阻柜常规配置单
  • 仓颉Magic亮相GOSIM AI Paris 2025:掀起开源AI框架新热潮
  • 裸金属服务器 VS 传统物理机
  • 鸿蒙next播放B站视频横屏后的问题
  • Linux之进程控制
  • 【Linux网络】HTTPS
  • k8s v1.26 实战csi-nfs 部署
  • 深度剖析:Vue2 项目兼容第三方库模块格式的终极解决方案
  • 无人机俯视风光摄影Lr调色预设,手机滤镜PS+Lightroom预设下载!
  • MATLAB语音情感识别神经网络方法
  • 中国版 Cursor---腾讯云 CodeBuddy | 从安装VSCode到数独小游戏问世
  • yolo11n-obb训练rknn模型
  • 贪心算法:最小生成树
  • 【Qt】之音视频编程1:QtAV的背景和安装篇
  • 蓝桥杯12届国B 纯质数
  • git Authentication failed for 的解决办法
  • 重构门店网络:从“打补丁“到“造地基“的跨越
  • IDEA查看类结构视图窗口,接口的所有的实现类图
  • Python爬虫常用项
  • Spring @Transactional事务传播机制与MySQL事务原理解析
  • 【日撸 Java 300行】Day 14(栈)
  • 关于IDE的相关知识之二【插件推荐】
  • 基于FPGA的视频接口之千兆网口(七GigE)
  • 多线程爬虫语言选择与实现
  • 青少年编程与数学 02-019 Rust 编程基础 09课题、流程控制
  • 手机相册的 “智能分类” 功能