Onnx Runtime模型部署笔记系列:

1 下载Onnx Runtime

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

在写文章时,当前Onnx Runtime的最新版本为1.14.1,

OnnxRuntime – 模型部署笔记2,在Visual Studio中配置Onnx Rumtime C++开发环境-StubbornHuang Blog

进入到Onnx Runtime 1.14.1版本Release页面,下载onnxruntime-win-x86-1.14.1.zip
、onnxruntime-win-x64-1.14.1.zip、onnxruntime-win-x64-gpu-1.14.1.zip,如下图所示

OnnxRuntime – 模型部署笔记2,在Visual Studio中配置Onnx Rumtime C++开发环境-StubbornHuang Blog

其中:

  • onnxruntime-win-x86-1.14.1.zip为在Windows上使用CPU的x86包
  • onnxruntime-win-x64-1.14.1.zip为在Windows上使用CPU的x64包
  • onnxruntime-win-x64-gpu-1.14.1.zip为在Windows上除了使用CPU之外,还可以使用CUDA和TensorRT的x64包,从发布的版本上并没有对应的x86包,也就是不支持32位

2 解压Onnx Runtime

CPU

在onnxruntime-win-x86-1.14.1.zip、onnxruntime-win-x64-1.14.1.zip这两个使用CPU的包中,解压之后可以看到包含一个include文件夹和lib文件夹

OnnxRuntime – 模型部署笔记2,在Visual Studio中配置Onnx Rumtime C++开发环境-StubbornHuang Blog

include文件夹中为头文件所在的文件夹,而lib文件夹中包含了

  • onnxruntime.dll
  • onnxruntime.lib
  • onnxruntime_providers_shared.dll
  • onnxruntime_providers_shared.lib文件

看到头文件以及lib、dll文件之后基本就知道如何在Visual Studio中配置相应的环境了。

CPU+CUDA+TensorRT

onnxruntime-win-x64-gpu-1.14.1.zip解压之后也是相同的include文件夹和lib文件夹,include文件夹中为头文件所在的文件夹,而lib文件夹中除了包含了

  • onnxruntime.dll
  • onnxruntime.lib
  • onnxruntime_providers_shared.dll
  • onnxruntime_providers_shared.lib文件

还包含了支持CUDA和TensorRT的相关库文件

  • onnxruntime_providers_cuda.dll
  • onnxruntime_providers_cuda.lib
  • onnxruntime_providers_tensorrt.dll
  • onnxruntime_providers_tensorrt.lib

3 在Visual Studio配置Onnx Runtime开发环境

我们以只使用CPU为例,使用onnxruntime-win-x86-1.14.1.zip、onnxruntime-win-x64-1.14.1.zip在在Visual Studio配置开发环境,所有文件夹路径都使用相对路径,便于项目移动以及在其他电脑上也能顺利编译。

1 配置头文件目录

在项目属性-C++-常规-附加包含目录中,将相应的Onnx Runtime的头文件文件夹路径添加进去,如下图

OnnxRuntime – 模型部署笔记2,在Visual Studio中配置Onnx Rumtime C++开发环境-StubbornHuang Blog
OnnxRuntime – 模型部署笔记2,在Visual Studio中配置Onnx Rumtime C++开发环境-StubbornHuang Blog

2 配置lib目录

在项目属性-链接器-常规-附加库目录中,将Onnx Rumtime的lib文件夹路径添加进去,如下图

OnnxRuntime – 模型部署笔记2,在Visual Studio中配置Onnx Rumtime C++开发环境-StubbornHuang Blog
OnnxRuntime – 模型部署笔记2,在Visual Studio中配置Onnx Rumtime C++开发环境-StubbornHuang Blog

3 测试开发环境

如果上述步骤完成,在项目中新建一个main.cpp文件,将下面的代码粘贴到main.cpp中,

#include <iostream>
#include <onnxruntime_cxx_api.h>

int main()
{
    Ort::Env env(ORT_LOGGING_LEVEL_WARNING, "test");

    return 0;
}

如果上述代码可以编译完成则说明开发环境配置成功,需要记住的是,在运行程序时需要将onnxruntime.dll、onnxruntime_providers_shared.dll拷贝到exe所在目录,不然会弹出找不到相应dll的错误。