pytorch格式转华为昇腾的om格式
具体的转换过程为:pytorch => onnx => om
pytorch转onnx比较简单,教程有一大堆了,下面给出 onnx 转 om 格式的过程。
atc --model=models/model.onnx --framework=5 --output=models/model --input_shape="input_ids:1,512;attention_mask:1,512;token_type_ids:1,512" --soc_version=Ascend910B2
atc命令中各参数的含义如下:
–model:model的ONNX模型文件存储路径。
–framework:原始框架类型,5表示ONNX。
–output:离线om模型的路径以及文件名。
–input_shape:执行推理时模型输入数据的shape,这个在转onnx的时候也需要。
–soc_version:昇腾AI处理器的型号。
请在服务器执行npu-smi info命令进行查询,在查询到的“Name”前增加Ascend信息,例如“Name”对应取值为xxxyy,实际配置的<soc_version>值为Ascendxxxyy。
比较关键的点有两个:
- input_shape要正确输入,参考我的命令示例。ATC工具对于多输入的语法是:input1:shape1;input2:shape2;input3:shape3
- soc_version需要通过npu-smi info命令进行查询,比如我的机器就是Ascend910B2,