S100 OpenExplorer

# #浮点模型准备

在您阅读本节内容前，我们建议您先阅读我们的 工具链算子支持约束列表 章节，对地平线支持的算子及约束条件进行了解。或在您导出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` 进行转换，参考链接：

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

- TensorflowLite2Onnx：基于开源工具 `tflite2onnx` 进行转换，参考链接：

  https://github.com/zhenhuaw-me/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官方文档。

页面目录