4.1.1.3. 浮点模型准备

在您阅读本节内容前,我们建议您先阅读我们的算子支持列表,对地平线支持的算子及约束条件进行了解, 或在您导出ONNX模型后,可以先参考 验证模型 章节的内容, 验证模型是否能被地平线支持完成正常转换部署。

基于公开DL框架训练得到的浮点模型是转换工具的输入,目前转换工具支持的DL框架如下:

框架

地平线工具链

Caffe

支持

PyTorch

支持(转ONNX)

TensorFlow

支持(转ONNX)

PaddlePaddle

支持(转ONNX)

MXNet

支持(转ONNX)

其他框架

请联系地平线

以上框架中,Caffe导出的caffemodel是直接支持的; PyTorch、TensorFlow和MXNet是通过转到ONNX实现间接支持, ONNX目前主要支持的opset版本是opset10和opset11。

对于不同框架到ONNX的转换,目前都有对应的标准化方案,参考如下:

🔗 Pytorch2Onnx:PytTorch官方API支持直接将模型导出为ONNX模型,参考链接:

https://pytorch.org/tutorials/advanced/super_resolution_with_onnxruntime.html

🔗 Tensorflow2Onnx:基于ONNX社区的onnx/tensorflow-onnx 进行转换,参考链接:

https://github.com/onnx/tensorflow-onnx

🔗 MXNet2Onnx:MXNet官方API支持直接将模型导出为ONNX模型,参考链接:

https://github.com/dotnet/machinelearning/blob/master/test/Microsoft.ML.Tests/OnnxConversionTest.cs

🔗 更多框架的ONNX转换支持,参考链接:

https://github.com/onnx/tutorials#converting-to-onnx-format

注意

原始模型限制:ir_version≤7, opset=10或11,ir_version与onnx版本的对应关系请参考 onnx官方文档