文档首页 > > AI工程师用户指南> 管理模型> 压缩和转换模型> 转换模板

转换模板

分享
更新时间: 2020/08/07 GMT+08:00
表1 ModelArts提供转换模板

模板名称

模板描述

模板高级选项

Caffe转Ascend

转换Caffe框架训练出来的模型, 转换后模型可在Ascend芯片上运行。

Tensorflow frozen_graph转TFLite

转换Tensorflow框架训练并以“frozen_graph”格式保存的模型,转换后模型可在ARM上运行。

  • “模型输入tensor名称”:以字符串形式输入模型输入张量名称,以“input1:input2”形式表示。
  • “模型输出tensor名称”:以字符串形式输入模型输出张量名称,以“output1:output2”形式表示。
  • “量化精度”:可选择8bit或32bit。32bit表示直接转换模型,8bit表示模型进行量化。
  • “量化批大小”: 以数值形式输入量化批大小。必须为正整数。

Tensorflow saved_model转TFLite

转换Tensorflow框架训练并以“saved_model”格式保存的模型,转换后模型可在ARM上运行。

  • “模型签名”:以字符串形式输入模型输入tensor签名,默认会选择第一个签名。
  • “传入模型标签”:以字符串形式输入模型输出标签,默认会选择第一个标签。
  • “量化精度”:可选择8bit或32bit。32bit表示直接转换模型,8bit表示模型进行量化。
  • “量化批大小”: 以数值形式输入量化批大小。必须为正整数。

Tensorflow frozen_graph转TensorRT

转换Tensorflow框架训练并以“frozen_graph”格式保存的模型,转换后模型可在GPU上运行。

  • “模型输入tensor名称”:以字符串形式输入模型输入张量名称,以“input1:input2”形式表示。
  • “模型输出tensor名称”:以字符串形式输入模型输出张量名称,以“output1:output2”形式表示。
  • “量化精度”:可选择8bit或32bit。32bit表示直接转换模型,8bit表示模型进行量化。
  • “量化批大小”: 以数值形式输入量化批大小。必须为正整数。

Tensorflow saved_model转TensorRT

转换Tensorflow框架训练并以“saved_model”格式保存的模型,转换后模型可在GPU上运行。

  • “模型签名”:以字符串形式输入模型输入tensor签名,默认会选择第一个签名。
  • “传入模型标签”:以字符串形式输入模型输出标签,默认会选择第一个标签。
  • “量化精度”:可选择8bit或32bit。32bit表示直接转换模型,8bit表示模型进行量化。
  • “量化批大小”: 以数值形式输入量化批大小。必须为正整数。

Tensorflow frozen graph 转 Ascend

转换Tensorflow框架训练并以“frozen_graph”格式保存的模型,转换后模型可在Ascend上运行。

  • “输入张量形状”: 模型输入数据的shape,输入数据格式为NHWC,如“input_name:1,224,224,3”,必填项。“input_name”必须是转换前的网络模型中的节点名称。当模型存在动态shape输入时必须提供。例如“input_name1:?,h,w,c”,该参数必填,其中“?”为batch数,表示1次处理的图片数量,需要根据实际情况填写,用于将动态shape的原始模型转换为固定shape的离线模型。目前不支持批量特性,转换输入张量形状batch只能为1。

TF-FrozenGraph-To-Ascend

转换Tensorflow框架训练并以“frozen_graph”格式保存的模型,转换后模型可在Ascend上运行。转换时支持使用基于TE(Tensor Engine)开发的自定义算子(TE算子)。

  • “输入张量形状”:模型输入数据的shape,如“input_name1:n1,c1,h1,w1;input_name2:n2,c2,h2,w2”“input_name”必须是转换前的网络模型中的节点名称。当模型存在动态shape输入时必须提供。例如“input_name1:?,h,w,c”,该参数必填,其中“?”为batch数,表示1次处理的图片数量,需要根据实际情况填写,用于将动态shape的原始模型转换为固定shape的离线模型。目前不支持批量特性,转换输入张量形状batch只能为1。转换时系统会解析输入模型获取输入张量并打印在日志中,如果不了解所使用模型的输入张量,可参考日志中的解析结果。
  • “输入数据格式”:支持NCHW和NHWC,默认是NHWC。当原始框架是TensorFlow时,默认是NHWC。如果实际是NCHW的话,需要通过此参数指定NCHW。原始框架为Caffe时,只支持NCHW格式。
  • “转换输出节点”:指定输出节点,例如“node_name1:0;node_name1:1;node_name2:0”,其中“node_name”必须是模型转换前的网络模型中的节点名称,冒号后的数字表示第几个输出,例如“node_name1:0”,表示节点名称为“node_name1”的第0个输出。如果不指定输出节点,则模型的输出默认为最后一层的算子信息,某些情况下,用户想要查看某层算子参数是否合适,则需要将该层算子的参数输出,即可以在模型转换时通过该参数指定输出某层算子。转换时系统会解析输入模型获取输出节点并打印在日志中,如果不了解所使用模型的输入张量,可以参考日志中的解析结果。
  • “优选数据格式”:指定网络算子优先选用的数据格式,“ND(N<=4)”“5D”。仅在网络中算子的输入数据同时支持“ND”“5D”两种格式时,指定该参数才会生效。“ND”表示模型中算子按NCHW转换成通用格式,“5D”表示模型中算子按华为自研的5维转换成华为格式。“5D”为默认值。
  • “生成高精度模型”:指定是否生成高精度FP16 Davinci模型。“0”为默认值,表示生成普通FP16 Davinci模型,推理性能更好。“1”表示生成高精度FP16 Davinci模型,推理精度更好。高精度当前仅支持Caffe算子(Convolution、Pooling、FullConnection)和TensorFlow算子(tf.nn.conv2d、tf.nn.max_poo)。
  • “网络输出数据类型”:FP32为默认值,推荐分类网络、检测网络使用。图像超分辨率网络,推荐使用UINT8,推理性能更好。

TF-SavedModel-To-Ascend

转换Tensorflow框架训练并以“saved_model”格式保存的模型,转换后模型可在Ascend上运行。转换时支持使用基于TE(Tensor Engine)开发的自定义算子(TE算子)。

  • “输入张量形状”:模型输入数据的shape,如“input_name1:n1,c1,h1,w1;input_name2:n2,c2,h2,w2”“input_name”必须是转换前的网络模型中的节点名称。当模型存在动态shape输入时必须提供。例如“input_name1:?,h,w,c”,该参数必填,其中“?”为batch数,表示1次处理的图片数量,需要根据实际情况填写,用于将动态shape的原始模型转换为固定shape的离线模型。目前不支持批量特性,转换输入张量形状batch只能为1。转换时系统会解析输入模型获取输入张量并打印在日志中,如果不了解所使用模型的输入张量,可参考日志中的解析结果。
  • “输入数据格式”:支持NCHW和NHWC,默认是NHWC。当原始框架是TensorFlow时,默认是NHWC。如果实际是NCHW的话,需要通过此参数指定NCHW。原始框架为Caffe时,只支持NCHW格式。
  • “转换输出节点”:指定输出节点,例如“node_name1:0;node_name1:1;node_name2:0”,其中“node_name”必须是模型转换前的网络模型中的节点名称,冒号后的数字表示第几个输出,例如“node_name1:0”,表示节点名称为“node_name1”的第0个输出。如果不指定输出节点,则模型的输出默认为最后一层的算子信息,某些情况下,用户想要查看某层算子参数是否合适,则需要将该层算子的参数输出,即可以在模型转换时通过该参数指定输出某层算子。转换时系统会解析输入模型获取输出节点并打印在日志中,如果不了解所使用模型的输入张量,可以参考日志中的解析结果。
  • “优选数据格式”:指定网络算子优先选用的数据格式,“ND(N<=4)”“5D”。仅在网络中算子的输入数据同时支持“ND”“5D”两种格式时,指定该参数才会生效。“ND”表示模型中算子按NCHW转换成通用格式,“5D”表示模型中算子按华为自研的5维转换成华为格式。“5D”为默认值。
  • “生成高精度模型”:指定是否生成高精度FP16 Davinci模型。“0”为默认值,表示生成普通FP16 Davinci模型,推理性能更好。“1”表示生成高精度FP16 Davinci模型,推理精度更好。高精度当前仅支持Caffe算子(Convolution、Pooling、FullConnection)和TensorFlow算子(tf.nn.conv2d、tf.nn.max_poo)。
  • “网络输出数据类型”:FP32为默认值,推荐分类网络、检测网络使用。图像超分辨率网络,推荐使用UINT8,推理性能更好。

Onnx-To-Ascend-TBE

转换onnx格式保存的模型,模型首先被转换为frozen_graph格式,然后再转换为可在Ascend上运行的模型。转换时支持使用基于TBE(Tensor Based Engine)开发的自定义算子(TBE算子)。

  • “输入张量形状”:模型输入数据的shape,如“input_name1:n1,c1,h1,w1;input_name2:n2,c2,h2,w2”“input_name”必须是转换前的网络模型中的节点名称。当模型存在动态shape输入时必须提供。例如“input_name1:?,h,w,c”,该参数必填,其中“?”为batch数,表示1次处理的图片数量,需要根据实际情况填写,用于将动态shape的原始模型转换为固定shape的离线模型。目前不支持批量特性,转换输入张量形状batch只能为1。转换时系统会解析输入模型获取输入张量并打印在日志中,如果不了解所使用模型的输入张量,可参考日志中的解析结果。
  • “输入数据格式”:支持NCHW和NHWC,默认是NHWC。当原始框架是TensorFlow时,默认是NHWC。如果实际是NCHW的话,需要通过此参数指定NCHW。原始框架为Caffe时,只支持NCHW格式。
  • “转换输出节点”:指定输出节点,例如“node_name1:0;node_name1:1;node_name2:0”,其中“node_name”必须是模型转换前的网络模型中的节点名称,冒号后的数字表示第几个输出,例如“node_name1:0”,表示节点名称为“node_name1”的第0个输出。如果不指定输出节点,则模型的输出默认为最后一层的算子信息,某些情况下,用户想要查看某层算子参数是否合适,则需要将该层算子的参数输出,即可以在模型转换时通过该参数指定输出某层算子。转换时系统会解析输入模型获取输出节点并打印在日志中,如果不了解所使用模型的输入张量,可以参考日志中的解析结果。
  • “优选数据格式”:指定网络算子优先选用的数据格式,“ND(N<=4)”“5D”。仅在网络中算子的输入数据同时支持“ND”“5D”两种格式时,指定该参数才会生效。“ND”表示模型中算子按NCHW转换成通用格式,“5D”表示模型中算子按华为自研的5维转换成华为格式。“5D”为默认值。
  • “生成高精度模型”:指定是否生成高精度FP16 Davinci模型。“0”为默认值,表示生成普通FP16 Davinci模型,推理性能更好。“1”表示生成高精度FP16 Davinci模型,推理精度更好。高精度当前仅支持Caffe算子(Convolution、Pooling、FullConnection)和TensorFlow算子(tf.nn.conv2d、tf.nn.max_poo)。
  • “网络输出数据类型”:FP32为默认值,推荐分类网络、检测网络使用。图像超分辨率网络,推荐使用UINT8,推理性能更好。

TF-FrozenGraph-To-Ascend-C32

转换Tensorflow框架训练并以“frozen_graph”格式保存的模型,转换后模型可在Ascend上运行。转换时支持使用基于TBE(Tensor Based Engine)开发的自定义算子(TBE算子)。

  • “输入张量形状”:模型输入数据的shape,如“input_name1:n1,c1,h1,w1;input_name2:n2,c2,h2,w2”“input_name”必须是转换前的网络模型中的节点名称。当模型存在动态shape输入时必须提供。例如“input_name1:?,h,w,c”,该参数必填,其中“?”为batch数,表示1次处理的图片数量,需要根据实际情况填写,用于将动态shape的原始模型转换为固定shape的离线模型。目前不支持批量特性,转换输入张量形状batch只能为1。转换时系统会解析输入模型获取输入张量并打印在日志中,如果不了解所使用模型的输入张量,可参考日志中的解析结果。
  • “输入数据格式”:支持NCHW和NHWC,默认是NHWC。当原始框架是TensorFlow时,默认是NHWC。如果实际是NCHW的话,需要通过此参数指定NCHW。原始框架为Caffe时,只支持NCHW格式。
  • “转换输出节点”:指定输出节点,例如“node_name1:0;node_name1:1;node_name2:0”,其中“node_name”必须是模型转换前的网络模型中的节点名称,冒号后的数字表示第几个输出,例如“node_name1:0”,表示节点名称为“node_name1”的第0个输出。如果不指定输出节点,则模型的输出默认为最后一层的算子信息,某些情况下,用户想要查看某层算子参数是否合适,则需要将该层算子的参数输出,即可以在模型转换时通过该参数指定输出某层算子。转换时系统会解析输入模型获取输出节点并打印在日志中,如果不了解所使用模型的输入张量,可以参考日志中的解析结果。
  • “优选数据格式”:指定网络算子优先选用的数据格式,“ND(N<=4)”“5D”。仅在网络中算子的输入数据同时支持“ND”“5D”两种格式时,指定该参数才会生效。“ND”表示模型中算子按NCHW转换成通用格式,“5D”表示模型中算子按华为自研的5维转换成华为格式。“5D”为默认值。
  • “生成高精度模型”:指定是否生成高精度FP16 Davinci模型。“0”为默认值,表示生成普通FP16 Davinci模型,推理性能更好。“1”表示生成高精度FP16 Davinci模型,推理精度更好。高精度当前仅支持Caffe算子(Convolution、Pooling、FullConnection)和TensorFlow算子(tf.nn.conv2d、tf.nn.max_poo)。
  • “网络输出数据类型”:FP32为默认值,推荐分类网络、检测网络使用。图像超分辨率网络,推荐使用UINT8,推理性能更好。

TF-SavedModel-To-Ascend-C32

转换Tensorflow框架训练并以“saved_model”格式保存的模型,转换后模型可在Ascend上运行。转换时支持使用基于TE(Tensor Engine)开发的自定义算子(TE算子)。

  • “输入张量形状”:模型输入数据的shape,如“input_name1:n1,c1,h1,w1;input_name2:n2,c2,h2,w2”“input_name”必须是转换前的网络模型中的节点名称。当模型存在动态shape输入时必须提供。例如“input_name1:?,h,w,c”,该参数必填,其中“?”为batch数,表示1次处理的图片数量,需要根据实际情况填写,用于将动态shape的原始模型转换为固定shape的离线模型。目前不支持批量特性,转换输入张量形状batch只能为1。转换时系统会解析输入模型获取输入张量并打印在日志中,如果不了解所使用模型的输入张量,可参考日志中的解析结果。
  • “输入数据格式”:支持NCHW和NHWC,默认是NHWC。当原始框架是TensorFlow时,默认是NHWC。如果实际是NCHW的话,需要通过此参数指定NCHW。原始框架为Caffe时,只支持NCHW格式。
  • “转换输出节点”:指定输出节点,例如“node_name1:0;node_name1:1;node_name2:0”,其中“node_name”必须是模型转换前的网络模型中的节点名称,冒号后的数字表示第几个输出,例如“node_name1:0”,表示节点名称为“node_name1”的第0个输出。如果不指定输出节点,则模型的输出默认为最后一层的算子信息,某些情况下,用户想要查看某层算子参数是否合适,则需要将该层算子的参数输出,即可以在模型转换时通过该参数指定输出某层算子。转换时系统会解析输入模型获取输出节点并打印在日志中,如果不了解所使用模型的输入张量,可以参考日志中的解析结果。
  • “优选数据格式”:指定网络算子优先选用的数据格式,“ND(N<=4)”“5D”。仅在网络中算子的输入数据同时支持“ND”“5D”两种格式时,指定该参数才会生效。“ND”表示模型中算子按NCHW转换成通用格式,“5D”表示模型中算子按华为自研的5维转换成华为格式。“5D”为默认值。
  • “生成高精度模型”:指定是否生成高精度FP16 Davinci模型。“0”为默认值,表示生成普通FP16 Davinci模型,推理性能更好。“1”表示生成高精度FP16 Davinci模型,推理精度更好。高精度当前仅支持Caffe算子(Convolution、Pooling、FullConnection)和TensorFlow算子(tf.nn.conv2d、tf.nn.max_poo)。
  • “网络输出数据类型”:FP32为默认值,推荐分类网络、检测网络使用。图像超分辨率网络,推荐使用UINT8,推理性能更好。
分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问