6.14. PopRT Frontend
PopRT Frontend 用于支持加载不同框架生成的模型文件. 目前支持 ONNX 和 TensorFlow 模型的载入. 用户可以通过 CLI 和 Python API 的方式指定前端用于加载模型.
6.14.1. ONNX Frontend
ONNX Frontend 是默认的前端, 用户使用 onnx 作为前端时不需要指定额外参数.
6.14.2. TensorFlow Frontend
TensorFlow Frontend 使用 tf2onnx 提供的 API 扩展 PopRT 对 TensorFlow 模型的支持. 目前支持 TensorFLow SavedModel 以及如下参数, 详细说明参考 使用 PopRT.
Note
除 saved_model
参数以外, 其余参数均与 tf2onnx 提供的参数含义一致. saved_model
用于使能载入模型是否为 TensorFlow SavedModel, 而模型路径通过 input_model
指定.
saved_model
signature_def
tag
outputs
opset
inputs_as_nchw
outputs_as_nchw
通过 PopRT CLI 加载 TensorFlow 模型
CLI 使用 tf2onnx
子命令处理 TensorFlow 转换 ONNX 相关的参数, 用户需要在 tf2onnx
之后紧接需要传入的命令行参数.
poprt \
--input_model resnet_v2_50 \
--framework tensorflow \
--input_shape inputs=1,224,224,3 \
tf2onnx \
--saved_model \
--outputs Identity:0 \
--tag serve \
--signature_def serving_default \
--inputs_as_nchw inputs:0 \
--outputs_as_nchw Identity:0
通过 poprt.frontend
API 加载 TensorFlow 模型
frontend = poprt.frontend.get_frontend(
saved_model_path,
framework='tensorflow',
saved_model=True,
signature_def=signature,
tag=tag,
opset=opset,
inputs_as_nchw = inputs_as_nchw,
outputs_as_nchw = outputs_as_nchw,
input_shape=input_shape,
)
model = frontend.load_model()