在您阅读本节内容前,我们建议您先阅读我们的 工具链算子支持约束列表 章节,对地平线支持的算子及约束条件进行了解。或在您导出ONNX模型后,可以先参考 验证模型 章节的内容,验证模型是否能被地平线支持完成正常转换部署。
基于公开DL框架训练得到的浮点模型是转换工具的输入,目前转换工具支持的DL框架如下:
框架 | 地平线工具链 |
---|---|
Caffe | 支持 |
PyTorch | 支持(转ONNX) |
TensorFlow | 支持(转ONNX) |
TensorFlow Lite | 支持(转ONNX) |
PaddlePaddle | 支持(转ONNX) |
其他框架 | 请联系地平线 |
以上框架中,除Caffe导出的caffemodel是直接支持的,其余框架均为转到ONNX实现间接支持,ONNX目前支持的opset版本是opset10-19。
对于Caffe模型,您可先完成模型浮点精度的评测以确保模型的权重及结构正确。
对于ONNX模型,您需先使用HBRuntime进行推理,验证ONNX模型和原DL框架模型推理结果一致(即验证模型合法性)。
对于不同框架到ONNX的转换,目前都有对应的标准化方案,参考如下:
Pytorch2Onnx:PyTorch官方API支持直接将模型导出为ONNX模型,参考链接:
https://pytorch.org/tutorials/advanced/super_resolution_with_onnxruntime.html 。
Tensorflow2Onnx:基于ONNX社区的 onnx/tensorflow-onnx
进行转换,参考链接:
TensorflowLite2Onnx:基于开源工具 tflite2onnx
进行转换,参考链接:
PaddlePaddle2Onnx:PaddlePaddle官方API支持直接将模型导出为ONNX模型,参考链接:
https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/onnx/export_cn.html 。
更多框架的ONNX转换支持,参考链接:
https://github.com/onnx/tutorials#converting-to-onnx-format 。
原始模型限制:ir_version≤9,10≤opset=≤19,ir_version与onnx版本的对应关系请参考 onnx官方文档。