在ubuntu下将Pytorch模型部署到c++(环境搭建)

Posted w p h

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在ubuntu下将Pytorch模型部署到c++(环境搭建)相关的知识,希望对你有一定的参考价值。


本文总结记录了在将lightweight-openpose的pytorch网络模型部署到c++的过程以及遇到的一些问题,如有错误敬请指正

vscode c++环境部署 cmake

vscode中c++编译过程主要参考如下教程
https://www.bilibili.com/video/BV1nA411T7VK?from=search&seid=1436175833878339385&spm_id_from=333.337.0.0

编译器clang安装

在ubuntu系统中可直接通过apt命令安装(6.0.0)不过版本较老
安装llvm

apt-get install llvm

2.安装clang

apt-get install clang

3.检查是否安装成功(查看clang版本,有显示即为成功)

clang -v

建议在git中下载较新的适合系统的Releases版本
https://github.com/llvm/llvm-project/tree/llvmorg-12.0.1
注意不要只看系统忽略处理器,我在误装powerpc64le版本后出现vscode无法识别编译器情况
解压后进入文件路径
将clang加入系统路径

sudo cp -r * /usr/local 

执行clang -v查看到版本即成功。

References :
https://www.cnblogs.com/willaty/p/8024313.html
https://fzy15116089232.blog.csdn.net/article/details/101211003

libtorch安装

https://pytorch.org/选择适合系统cuda的版本 以及c++11版本

将libtorch中编译后的so库文件目录写入vscode cmakelists.txt

cudnn安装

cudnn下载https://developer.nvidia.com/rdp/cudnn-archive
选择适合本机cuda版本
同一版本安装包类型较多,选择合适的版本下载,建议选择免安装版(cuDNN Library for Linux)
解压后进入到相应目录,运行以下命令将cudnn库文件添加到系统路径:

sudo cp cuda/include/cudnn.h /usr/local/cuda-10.2/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-10.2/lib64

由于新版本中cudnn的版本信息包含在cudnn_version.h中,而不是cudnn.h中,需要把版本文件一起添加,防止后续编译时报错

sudo cp cuda/include/cudnn_version.h /usr/local/cuda-10.2/include
sudo chmod a+r /usr/local/cuda-10.2/include/cudnn.h 
sudo chmod a+r /usr/local/cuda-10.2/lib64/libcudnn*

同样地,查询cuDNN版本也要更改为cudnn_version.h

cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

References :
https://zhuanlan.zhihu.com/p/72298520
https://zhuanlan.zhihu.com/p/370192639

opencv安装及编译

根据opencv官方提供的安装指导,以4.5.3为例
https://docs.opencv.org/master/d7/d9f/tutorial_linux_install.html
依次执行如下命令:

# Install minimal prerequisites (Ubuntu 18.04 as reference)
sudo apt update && sudo apt install -y cmake g++ wget unzip
# Download and unpack sources
wget -O opencv.zip https://github.com/opencv/opencv/archive/master.zip
unzip opencv.zip
# Create build directory
mkdir -p build && cd build
# Configure
cmake  ../opencv-master
# Build
cmake --build .

本项目中没有用到opencv_contrib模块,所以只安装基础opencv模块即可,编译完成不要忘记最后一步安装

sudo make install

接下来把opencv编译后的路径添加到vscode中的Cmakelists.txt

References :
https://blog.csdn.net/weixin_43953829/article/details/96473891

以上是关于在ubuntu下将Pytorch模型部署到c++(环境搭建)的主要内容,如果未能解决你的问题,请参考以下文章

他山之石在C++平台上部署PyTorch模型流程+踩坑实录

ubuntu18一文学会Pytorch端到端网络部署Tensorrt模型推理

ubuntu18一文学会Pytorch端到端网络部署Tensorrt模型推理

pytorch C++部署模型 ONNX tensorRT

如何利用C++来调用PyTorch训练好的模型

如何利用C++来调用PyTorch训练好的模型