ONNXRuntime(CUDA版本)源码编译安装与C++部署Pytorch模型教程
目录
- 1 ONNXRuntime介绍
- 2 ONNXRuntime编译安装
- 3 Pytorch模型导出`.onnx`
- 4 C++调用`.onnx`
1 ONNXRuntime介绍
近年来,机器学习与深度学习领域迎来了应用层面的前所未有的激增。例如SkLearn
、PyTorch
、TensorFlow
、Caffe
…众多框架可供选择,模型训练的工具选项已变得极为丰富。与此同时,部署目标的多样性也在不断扩展——涵盖移动设备、桌面CPU、GPU、TPU等多种硬件。这一趋势带来了核心挑战:如何为将某一框架训练的模型部署到特定目标设备选择合适的工具。这一点至关重要,它直接关系到模型性能的优化——必须考虑所选框架与目标设备之间的兼容性。例如,将Caffe
模型部署到Android设备时,往往需要特定的适配与考量。
一种可行的方案是使用ONNX将模型转换为目标应用适配的框架。例如,若要将PyTorch模型部署到iPhone,可先将模型转换为ONNX格式,再从ONNX转换为Core ML(苹果开发的机器学习框架)。另一种方案是利用ONNX Runtime——微软开发的推理引擎。它以ONNX计算静态图为输入,在推理阶段运行该图。具体来说,ONNX Runtime接收ONNX模型作为输入,将完整的计算静态图保留在内存中;随后,将该图划分为可独立管理的子图;