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 进行转换,参考链接:
- 🔗 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官方文档 。