OnnxRuntime – Linux配置OnnxRuntime开发环境
之前都是在Windows系统上使用Onnxruntime部署模型,用的Visual Studio配置开发Onnxruntime非常简单,具体的教程可以看我之前发的这篇文章:OnnxRuntime – 模型部署笔记2,在Visual Studio中配置Onnx Rumtime C++开发环境。最近有将部署代码迁移到Linux上的需求,所以这篇文章就详细记录下如何在Linux上配置OnnxRuntime开发环境。
1 下载OnnxRuntime Linux预编译包
在OnnxRuntime的Github下载页选择我们需要的OnnxRuntime版本的预编译包,这里以写本文时OnnxRuntime的最新版本1.15.1为例。
OnnxRuntime针对Linux不同cpu平台提供了两种类型的包:
- arm:onnxruntime-linux-aarch64-1.15.1.tgz
- x64:onnxruntime-linux-x64-1.15.1.tgz和onnxruntime-linux-x64-gpu-1.15.1.tgz,其中onnxruntime-linux-x64-1.15.1.tgz为cpu版本,onnxruntime-linux-x64-gpu-1.15.1.tgz为gpu版本。
由于我部署的平台为x64,所以这里选择的包为onnxruntime-linux-x64-1.15.1.tgz。
使用
wget https://github.com/microsoft/onnxruntime/releases/download/v1.15.1/onnxruntime-linux-x64-1.15.1.tgz
下载,然后使用
tar -xvf onnxruntime-linux-x64-1.15.1.tgz
解压,解压完成之后可以在解压文件夹看到include文件夹和lib文件夹,其中include文件夹为头文件文件夹,lib为动态库文件夹。
2 配置OnnxRuntime开发环境
假设/usr/local
目录为我们防止C++第三方库的文件目录,我们首先需要使用以下命令,将第1节中的include和lib文件夹拷贝到/usr/local/onnxruntime
下,使用以下命令进行拷贝
cp -r ./onnxruntime-linux-x64-1.15.1/include/ /usr/local/onnxruntime/include/
cp -r ./onnxruntime-linux-x64-1.15.1/lib/ /usr/local/onnxruntime/lib/
拷贝完成之后我们就需要配置OnnxRuntime动态库环境,让之后使用CMake编译项目可以连接到OnnxRuntime的动态库,使用以下命令
nano /etc/ld.so.conf.d/onnxruntime.conf
# 在onnxruntime.conf加入上述onnxruntime的库目录,添加一行/usr/local/onnxruntime/lib/
# 生效
ldconfig
通过这样就可以完成OnnxRuntime开发环境配置,我们也可以使用
ldconfig -v
看是否链接成功,如输出中包含以下信息就说明动态库配置成功了
/usr/local/onnxruntime/lib:
libonnxruntime.so.1.15.1 -> libonnxruntime.so.1.15.1
3 如何编写使用OnnxRuntime项目的CMakeLists.txt
在第2节中完成OnnxRuntime的开发环境配置之后,我们就需要在使用OnnxRuntime的项目的CMakeLists.txt中增加关于OnnxRuntime信息,
包含头文件
# 添加Onnxruntime头文件目录
set(ONNXRUNTIME_INCLUDE_DIR /usr/local/onnxruntime/include/)
set(ONNXRUNTIME_LIBRARY_DIR ${PROJECT_SOURCE_DIR}/third/Onnxruntime/1.15.1/cpu/linux-x64/lib)
# 包含头文件目录
include_directories(
${ONNXRUNTIME_INCLUDE_DIR}
...
)
# 设置链接库目录
link_directories (
${ONNXRUNTIME_LIBRARY_DIR}
...
)
链接动态库
target_link_libraries(onnxruntime_test stdc++ onnxruntime dl rt)
写到这里就基本上完成了如何在Linux中配置OnnxRuntime开发环境,然后使用CMake进行编译时需要添加的一些语句。本文是直接使用OnnxRuntime在Linux x64上的编译包,没有从头开始使用源码编译,不过从源码编译应该也不难。
本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:OnnxRuntime – Linux配置OnnxRuntime开发环境
原文链接:https://www.stubbornhuang.com/2785/
发布于:2023年09月05日 9:48:48
修改于:2023年09月05日 17:53:20
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论
52