1. 介绍MindStudio 是一套基于华为昇腾 AI 处理器开发的 AI 全栈开发平台,包括 基于芯片的算子开发、以及自定义算子开发,同时还包括网络层的网络移植、优 化和分析,另外在业务引擎层提供了一套可视化的 AI 引擎拖拽式编程服务,极 大的降低了 AI 引擎的开发门槛,全平台通过 IDE 的方式向开发者提供各种服务 功能。其中,针对安装与部署,MindStudio 提供多种部署方式,支持多种主流 操作系统,为开发者提供最大便利;针对算子开发,MindStudio 提供包含 UT 测 试、ST 测试、TIK 算子调试等的全套算子开发流程。支持 TensorFlow、PyTorch、 MindSpore 等多种主流框架的 TBE 和 AI CPU 自定义算子开发;针对网络模型的 开发,MindStudio 支持 TensorFlow、Pytorch、MindSpore 框架的模型训练,支 持多种主流框架的模型转换。集成了训练可视化、脚本转换、模型转换、精度比 对等工具,提升了网络模型移植、分析和优化的效率;针对应用开发,MindStudio 集成了 Profiling 性能调优、编译器、MindX SDK 的应用开发、可视化 pipeline 业务流编排等工具,为开发者提供了图形化的集成开发环境,通过 MindStudio 能够进行工程管理、编译、调试、性能分析等全流程开发,能够很大程度提高开 发效率。本文以 WSEG 模型为例,帮助用户使用 MindStudio 平台进行 AI CPU 离线模 型推理指导。 2. 安装教程 2.1 CANN 安装 CANN 下载链接:https://www.hiascend.com/software/cann/community CANN 安装指南: https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/51RC 1alpha005/s oftwareinstall/instg/atlasdeploy_03_0002.html 2.2 安装依赖(1)安装 Python 依赖 Python 官方网站下载安装 Python3.7.5 到本地: https://www.python.org/downloads/release/python-375/ 打开高级系统设置 > 环境变量 > Path > 编辑 > 新建。 将 Python 安装环境下的 Scipts 路径添加到 Path 里。 安装 Python 依赖: pip install xlrd==1.2.0 pip install absl-py pip install numpy pip install requests(2)安装 MinGW 依赖 根据电脑配置选择合适的版本下载: https://sourceforge.net/projects/mingw-w64/files/ 将 MinGW 安装包解压到自定义的路径,按照上述环境变量的配置方法,将 MinGW 路径下的 bin 文件夹添加到 Path 中。 安装配置完成后,打开 cmd 输入 gcc -v 查看是否安装成功。 (3)安装 Java 依赖 下载地址:https://www.oracle.com/java/technologies/downloads/ 同样将 Java 安装路径下的 bin 文件添加到 Path 中,打开 cmd,输入 java --version 查看安装是否成功。 (4)安装 CMake 依赖 下载地址:https://cmake.org/download/ 同样将 cmake 安装路径添加到 Path 中。 2.3 安装 MindStudio 下载地址:https://www.hiascend.com/software/mindstudio/download 双击 MindStudio_{version}_win.exe 安装包,按照提示安装即可。 3. 推理实战 3.1 MindStudio 基础设置 3.1.1 新建工程文件 File > New > Project3.1.2 配置 SSH File > Settings > Tools > SSH Configurations点击’+’创建 输入相应的信息后,点击 Apply。 Tools > start SHH session 选择要连接 SSH 进行连接。成功连接。 创建虚拟环境 激活创建好的虚拟环境3.1.3 配置 Development File > Settings > Tools > Development添加映射 Mappings,设置好本地路径和远程目录,MindStudio 将实现这两个目 录文件的同步。 配置排除路径,MindStudio 的默认同步型为将把 Mappings 对应的本地和远程目 录文件保持完全相同,因此远程目录下的某些文件夹,例如数据集等,将会被删 除,因此需要设置好排除路径 Excluded Paths。3.1.4 配置 CANN File > Settings > Appearance&Behavior > System Settings > CANN3.2 模型推理 3.2.1 数据处理 (1)数据预处理 调用 Wseg_preprocess.py 代码,对数据进行预处理,并转化为 bin 文件。输出 preprocess_bin 文件夹,其中包含预处理后的图像数据。在预处理中进行了尺 寸以及镜像变化进行数据增强,所以原测试数据有 300 张,经过数据增强后有 2400 个样本,即 val_voc.txt 中包含 300 个样本,preprocess_bin 文件夹中包 含 2400 个 bin 文件 Setting > Project Structure这里的路径和名字可以自行设定,路径会自动 detecting,应当选择自己的 python 环境安装目录。设置参数 ./data ./val_voc.txt ./preprocess_bin 在刚刚指定的 python 环境运行。 (2)生成数据集 info 文件 调用 get_dateset_info 代码,获取 info 文件,输出 prep_bin.info 文件。设置参数 bin ./preprocess_bin ./prep_bin.info 1024 1024 运行结束,在远程目录下生成 prep_bin.info。 3.2.2 模型推理 (1)模型转换 获取权重文件,并将权重文件移动到指定的路径。 导出 onnx 文件:调用 Wseg_pth2onnx.py 代码,加载模型,并将.pth 文件转化为.onnx 文件,输出 wideresnet_dybs.onnx 文件。 指定参数 运行结束后,在远程目录下生成 wideresnet_dybs.onnx 文件。 调用 fix_softmax_transpose.py 代码,对.onnx 进行 softmax 修正,输出 wideresnet_dybs_fix.onnx。(2) ONNX 模型转为 OM 模型 昇腾张量编译器(Ascend Tensor Compiler,简称 ATC)是昇腾 CANN 架构 体系下的模型转换工具,它可以将开源框架的网络模型或 Ascend IR 定义的单算 子描述文件(json 格式)转换为昇腾 AI 处理器支持的.om 格式离线模型。 模型转换过程中,ATC 会进行算子调度优化、权重数据重排、内存使用优化 等具体操作,对原始的深度学习模型进行进一步的调优,从而满足部署场景下的 高性能需求,使其能够高效执行在昇腾 AI 处理器上。 打开模型转换页面,如下图,上传模型文件、权重文件等,同时注意设定输 出节点。调整动态 shape(-1)为静态 shape(1) 选择 output_nodes:Add_305:0;Resize_324:0 模型转换成功 (4)模型推理 转换 om 模型成功后,使用 mindstudio remote 终端执行 benchmark 推理。 启动 ssh session,切换 conda 环境、工作目录使用 Benchmark 工具进行推理,配置 bemchmark 工具需要的环境。 执行推理命令开始推理。推理完成。 调用 Wseg_postprocess.py 代码,将 result 文件夹中模型预测结果(bin)转化为图片,保存在 output 文件夹中,等待精度测试。 (4)进行精度验证调用./wseg/eval_seg.py 代码,对 output 文件夹中的预测结果进行精度测试, 输出 crf.eval 文件,保存在 output 文件夹下的对应 bs1 文件夹中。 得到的 crf.eval 文件如下: 4. FAQ Q:进行模型转换时,在选择 Model File 时,出现以下错误: A:本 onnx 模型较大,在进行模型转换时需要扩大内存。 Help > Change Memory Settings >修改内存大小 改为 30725. 从昇腾社区获取更多帮助 开发者在使用 MindStudio 或进行算子开发过程中遇到任何问题,都可以来昇 腾社区获 得更多的帮助。 昇腾官网:https://www.hiascend.com/ 昇腾社区:https://bbs.huaweicloud.com/ 昇腾论坛:https://bbs.huaweicloud.com/forum/forum-726-1.html