OnnxRuntime模型部署笔记系列:

1 Onnx Runtime

Onnx Runtime 官网:https://onnxruntime.ai/

Onnx Runtime Github:https://github.com/microsoft/onnxruntime

Onnx Runtime 文档:https://onnxruntime.ai/docs/

Onnx Runtime是一个跨平台的推理和训练机器学习加速器,可以将onnx模型,通过不同的编程语言比如Python、C、C++、C#、Java、JavaScript、Objective-C等编程语言部署到不同的平台,如Windows、Mobile、Web等环境中。Onnx Runtime兼容不同的硬件、驱动程序和操作系统,并在适用的情况下利用硬件加速器以及图形优化和转换提供推理和训练的最佳性能。

Onnx Runtime使用如何进行工作的?

Onnx Runtime以开放、通用的机器学习文件格式onnx作为基础模型文件格式,onnx模型已得到Pytorch、Tensorflow/Keras、TFLite、scikit-learn、Caffe2等框架支持,所以当我们使用Pytorch等机器学习框架训练完模型之后,然后将各个框架的模型导出为onnx模型,然后就可以使用Onnx Runtime加载onnx模型进行推理。

Onnx Runtime在对Onnx模型进行推理已支持多个Execution Providers类型,比如:

  • CPU(Default)
  • NVIDIA CUDA
  • NVIDIA TensorRT
  • Intel OpenVINO
  • Intel oneDNN
  • Windows DirectML
  • Qualcomm SNPE
  • Android NNAPI
  • Apple CoreML
  • XNNPACK
  • AMD MIGraphX
  • AMD ROCm
  • Cloud Azure

截止到写文章时,Onnx Runtime已经支持以下的Execution Providers,

OnnxRuntime – 模型部署笔记1,OnnxRuntime简介-StubbornHuang Blog

这里值得注意的是华为的CANN已经进入到预览版本,估计在下一个大版本就会得到正式的支持。

ONNX Runtime 通过其可扩展的执行提供程序(EP) 框架与上述不同的硬件加速库一起工作,以在硬件平台上优化执行 ONNX 模型。