下载
中文
注册

SavedModel模型转换.om模型

简介

本章节主要介绍如何使用saved_model2om.py工具将训练保存的SavedModel格式的模型重新构图,转换为基于NPU版本用于加载om模型的SavedModel模型,在部署TF Serving时使用转换后的SavedModel模型可以缩短编译时间从而提升TF Serving部署性能。

使用.om格式的模型进行在线推理时,不支持精度比对中Data Dump功能。

参数说明

表1 参数说明

参数

参数说明

取值示例

--input_path

  • 原始SavedModel模型文件的输入路径。
  • 必选。

/home/HwHiAiUser/inputpath/model

--output_path

  • 转换成功后生成SavedModel模型文件的输出路径。
  • 必选。

/home/HwHiAiUser/outputpath/model

--input_shape

  • 输入模型的shape值,格式为"name1:shape;name2:shape;name3:shape"。当设置input_shape时,shape中未明确定义的维度将会被自动设置为1。
  • 可选。

input:16,224,224,3

--soc_version

  • 输出.om模型的芯片类型。当设置--profiling参数时,无需配置此参数,由当前执行转换的设备决定。
  • 必选。

Ascendxxx

--profiling

  • 设置此参数时,则会开启AOE调优。(该参数配置后无需再指定job_type)。
    • 取值为1时,启用子图调优;
    • 取值为2时,启用算子调优。
  • 如需进行子图或者算子调优,则该参数必选。

1

--method_name

  • 配置TF Serving运行时推理的方法,如果不配置此参数,则会从原始SavedModel模型文件中获取。
  • 可选。

/tensorflow/serving/predict

--new_input_nodes

  • 重新选择输入节点,格式为:算子:类型:算子名;算子:类型:算子名。
  • 可选。

embedding:DT_FLOAT:bert/embedding/word_embeddings:0;add:DT_INT:bert/embedding/add:0

--new_output_nodes

  • 重新选择输出节点,格式为:算子:算子名。
  • 可选。

loss:loss/Softmax:0

--output_type

node1:0:FP16

--input_fp16_nodes

node_name1;node_name2

该工具同时支持ATC和AOE工具中的参数:

该工具暂不支持ATC和AOE工具中的--out_nodes、--is_input_adjust_hw_layout和--is_output_adjust_hw_layout参数,其中--out_nodes参数可使用表1 参数说明中的--new_output_nodes参数进行代替。

执行转换

  1. 下载转换工具“saved_model2om.py”至服务器的任一目录,例如上传到$HOME/tools/目录下,无需安装。
  2. 执行以下命令进行转换,具体参数请根据实际修改。
    python3 saved_model2om.py --input_path "/home/HwHiAiUser/inputpath/model" --output_path "/home/HwHiAiUser/outputpath/model" --input_shape "input:16,224,224,3" --soc_version "Ascendxxx"
    --soc_version的取值查询方式:
    • 在安装昇腾AI处理器的服务器执行npu-smi info命令进行查询,获取Chip Name信息。实际配置值为AscendChip Name,例如Chip Name取值为xxxyy,实际配置值为Ascendxxxyy

    如果在转换的过程中需要进行子图或者算子调优,请执行以下命令。

    python3 saved_model2om.py --input_path "/home/HwHiAiUser/inputpath/model" --output_path "/home/HwHiAiUser/outputpath/model" --input_shape "input:16,224,224,3" --profiling "1"
  3. 转换成功后,会在指定的output_path下生成用于加载om模型的SavedModel模型文件,文件名格式为{om_name}_load_om_saved_model_{timestamp}。