使用_contrib_MultiBoxPrior错误将MXNet模型导出到ONNX

时间:2019-05-20 23:05:35

标签: mxnet amazon-sagemaker tensorrt onnx

我在AWS SageMaker中基于SSD / ResNet50和MXNet创建了对象检测模型。 现在,我想在TensorRT中对其进行优化,作为第一步,我需要将其导出到ONNX。

对于将_contrib_MultiBoxPrior转换为受支持的符号的任何建议,对我来说都不会产生任何结果。

基本代码

input_shape = (1, 3, 512, 512)
converted_model_path = onnx_mxnet.export_model(sym_file, params_file, [input_shape], np.float32, onnx_file)

确切的错误消息是

“ AttributeError:尚未为op类型_contrib_MultiBoxPrior注册任何转换函数。”

解决此错误的推荐方法是什么?

1 个答案:

答案 0 :(得分:0)

MultiBoxPrior运算符的实现取决于ONNX支持它。您可以在此处跟踪问题:https://github.com/apache/incubator-mxnet/issues/15181

或者,您可以尝试使用mxnet-tensorrt。它使用子图API,这意味着可以在TensorRT运行时中执行可以在TensorRT中执行的符号,而不能在MXNet运行时中执行的符号。

https://mxnet.incubator.apache.org/versions/master/tutorials/tensorrt/inference_with_trt.html

请注意,我认为本教程的当前版本适用于MXNet的1.3.0版本。具有更简单的API和更好的性能的下一版本的更新即将推出。