在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++(环境搭建)的主要内容,如果未能解决你的问题,请参考以下文章
ubuntu18一文学会Pytorch端到端网络部署Tensorrt模型推理