2

我在 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:尚未为操作类型 _contrib_MultiBoxPrior 注册转换函数。”

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

4

1 回答 1

1

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

请注意,本教程的当前版本是我相信的 1.3.0 版本的 MXNet。下一个版本的更新将提供更简单的 API 和更好的性能。

于 2019-07-04T14:46:45.927 回答