使用ATC命令转换ONNX模型
本节介绍如何使用ATC命令转换.onnx格式的模型文件,并在AI处理器上执行推理。
对于PyTorch、TensorFlow、MindSpore等前端框架导出的模型文件,GE提供了模型转换的能力,支持通过ATC命令行工具将模型转化为适配AI处理器的离线模型,并基于图模式执行推理。ATC目前已支持:
- *.onnx格式的模型转换成*.om格式的模型
- *.pb格式的模型转换成*.om格式的模型
- *.air格式的模型转换成*.om格式的模型
- *.prototxt与*.caffemodel格式的模型转换成*.om格式的模型
下面以*.onnx格式的模型转换成*.om格式的模型为例,介绍基本使用方法:
- 获取ONNX网络模型。
单击Link下载该文件,再以CANN软件包运行用户将获取的文件上传至开发环境任意目录,例如上传到$HOME/module/目录下。
- 使用ATC命令行工具进行模型转换(以*.onnx模型举例)。
atc --model=$HOME/module/resnet50.onnx --framework=5 --output=$HOME/module/out/onnx_resnet50 --soc_version=<soc_version>- --model:原始网络模型文件路径与文件名。
- --framework:原始网络模型框架类型,“3”代表TensorFlow模型,“5”代表ONNX模型,“1”代表MindSpore框架*.air格式的模型文件或TorchAir通过export导出的标准*.air格式文件
- --output:存放转换后的离线模型的路径以及文件名,例如,若配置为“$HOME/module/out/tf_resnet50”,则转换后的离线模型存储路径为“$HOME/module/out/”,转换后的离线模型名称为“tf_resnet50.om”。
- --soc_version:AI处理器的型号。取值查询方法如下:
- 针对如下产品:在安装AI处理器的服务器执行npu-smi info命令进行查询,获取Name信息。实际配置值为AscendName,例如Name取值为xxxyy,实际配置值为Ascendxxxyy。
Atlas A2 训练系列产品 /Atlas A2 推理系列产品 Atlas 200I/500 A2 推理产品 Atlas 推理系列产品 Atlas 训练系列产品 - 针对如下产品,在安装AI处理器的服务器执行npu-smi info -t board -i id -c chip_id命令进行查询,获取Chip Name和NPU Name信息,实际配置值为Chip Name_NPU Name。例如Chip Name取值为Ascendxxx,NPU Name取值为1234,实际配置值为Ascendxxx_1234。其中:
- id:设备id,通过npu-smi info -l命令查出的NPU ID即为设备id。
- chip_id:芯片id,通过npu-smi info -m命令查出的Chip ID即为芯片id。
Atlas 350 加速卡
Atlas A3 训练系列产品 /Atlas A3 推理系列产品
- 针对如下产品:在安装AI处理器的服务器执行npu-smi info命令进行查询,获取Name信息。实际配置值为AscendName,例如Name取值为xxxyy,实际配置值为Ascendxxxyy。
- 若提示如下信息,则说明模型转换成功。
1ATC run success, welcome to the next use.
成功执行命令后,*.onnx模型将会被转换成适配AI处理器的*.om离线模型,在--output参数指定的路径下,可查看生成的*.om离线模型文件。
- 后续操作。
转换成*.om离线模型后,可以调用模型加载接口加载转换好的*.om离线模型,再调用模型执行接口进行推理。如下为从文件加载模型文件并执行推理的简要流程,详细的模型加载与推理的方法可参见《应用开发指南 (C&C++)》中的“模型管理”章节。
1 2 3 4 5 6 7 8 9
// 1.指定模型路径 const char* omModelPath = "./model/onnx_resnet50.om"; uint32_t modelId; // 2.加载离线模型文件,模型加载成功,返回标识模型的ID ret = aclmdlLoadFromFile(omModelPath, &modelId); // 3.执行模型,inputDs和outputDs为模型输入输出的Dataset对象 ret = aclmdlExecute(modelId, inputDs, outputDs); // 4.卸载模型 ret = aclmdlUnload(modelId);
父主题: 快速入门