6.3.1. 浮点模型准备

在您阅读本节内容前,我们建议您先阅读我们的 工具链算子支持约束列表 章节, 对地瓜机器人支持的算子及约束条件进行了解。 或在您导出 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

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

https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/onnx/export_cn.html

🔗 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 官方文档