AI开发平台MODELARTS-06 BERT和YOLO等常用小模型适配NPU推理指导:Step5 转换模型文件

时间:2024-05-16 12:45:45

Step5 转换模型文件

将onnx模型文件转换为mindir格式模型文件。转换过程中涉及到的参数需要查看原始onnx文件,此处提供查看的脚本文件get_onnx.py,具体的脚步文件内容见附录:get_onnx.py脚本内容

模型转换命令如下。

export model_name="model"
export LD_LIBRARY_PATH=/home/ma-user/anaconda3/envs/python-3.9.10/lib/:${LD_LIBRARY_PATH}
converter_lite --modelFile=./${model_name}.onnx --outputFile=./${model_name} --fmk=ONNX --saveType=MINDIR --optimize=ascend_oriented --inputShape="input_ids:4,96;attention_mask:4,96;token_type_ids:4,96"
  • --modelFile:模型名称。
  • --outputFile:输出模型名称。模型名称无需添加.mindir后缀,添加后对后续测试流程存在一定影响。
  • --inputShape:根据onnx输出的name:shape进行修改,可以通过get_onnx.py脚本查看,如图1所示。
图1 get_onnx.py脚本查看输入参数

如需进行AOE优化,则需配置一个config.ini文件,文件内容如下。

[ascend_context]
plugin_custom_ops=FlashAttention,GroupNormSilu,GeGluV2 
aoe_mode="subgraph tuning, operator tuning"

AOE优化命令如下,只需将以上模型转换命令添加一个--configFile=config.ini即可。

converter_lite --modelFile=./${model_name}.onnx --
outputFile=./${model_name} --fmk=ONNX --saveType=MINDIR --optimize=ascend_oriented --inputShape="input_ids:4,96;attention_mask:4,96;token_type_ids:4,96" --configFile=config.ini

benchmark测试命令如下。

benchmark --device=Ascend --modelFile=${model_name}.mindir
图2 benchmark测试
support.huaweicloud.com/bestpractice-modelarts/modelarts_10_1921.html