将训练好的模型应用——onnxruntime、TensorRT安装

本文可作为ubuntu20.04 NVIDIA 3060配置CUDA cuDNN anaconda pytorch过程(20230226)的后续

onnxruntime安装

先在相应的aconoda环境进行python,然后输入import onnxruntime 检查有无安装onnxruntime

若没有安装,相应的aconoda环境的终端输入 pip install onnxruntime-gpu,如果安装了cpu版本的,先卸载 pip uninstall onnxruntime

TensorRT安装

这是一个很令人头秃的过程。

1.参考文献

我在安装过程中,参考了以下链接

TensorRT安装配置完成有感(含各种命令行保姆级教程)
TensorRT学习笔记–Ubuntu20.04安装TensorRT 8.2.5

ImportError: libcudnn.so.8: cannot open shared object file: No such file or directory

2.下载

TensorRT下载链接
一定要选择和你的CUDA对应的版本!!!
我的CUDA是11.6,试了好几个,最后选择了8.5.1.7,下载是tar.gz版本的

3.解压、配置环境变量

我准备解压到/usr/local/TensorRT/

cd /usr/local/
sudo mkdir TensorRT
sudo cp ~/Downloads/TensorRT-8.5.1.7.Linux.x86_64-gnu.cuda-11.8.cudnn8.6.tar.gz /usr/local/TensorRT/
cd TensorRT
tar -zxvf TensorRT-8.5.1.7.Linux.x86_64-gnu.cuda-11.8.cudnn8.6.tar.gz

配置环境变量
打开./bashrc,在最后加上

# tensorRT install
export LD_LIBRARY_PATH=$PATH:/usr/local/TensorRT/TensorRT-8.5.1.7/lib:$LD_LIBRARY_PATH
export LIBRARY_PATH=$PATH:/usr/local/TensorRT/TensorRT-8.5.1.7/lib:$LIBRARY_PATH
export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/TensorRT/TensorRT-8.5.1.7/include
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/TensorRT/TensorRT-8.5.1.7/include

然后保存
然后

source ~/.bashrc

然后

cd /usr/local/TensorRT/TensorRT-8.5.1.7/samples/sampleOnnxMNIST
sudo make
cd ../../bin
 ./sample_onnx_mnist

(注意,不是sudo ./sample_onnx_mnist 要不然可能报./sample_onnx_mnist: error while loading shared libraries: libnvinfer.so.8: cannot open shared object file: No such file or directory,我也不知道为什么)

运行结果如下
在这里插入图片描述

4.安装TensorRT库(该步骤每个aconoda环境都要在各自终端来一遍)

cd /usr/local/TensorRT/TensorRT-8.5.1.7/python
# 根据Python版本安装,我的是python3.9
pip install tensorrt-8.2.5.1-cp39-none-linux_x86_64.whl 
 
# 安装依赖
cd /usr/local/TensorRT/TensorRT-8.5.1.7/graphsurgeon
pip install graphsurgeon-0.4.5-py2.py3-none-any.whl

然后在终端运行python,输入以下指令,看看是否成功

import onnxruntime as ort
import tensorrt
print(ort.get_device())
print(ort.get_available_providers())
print(tensorrt.__version__)

可能会报

ImportError: libnvinfer.so.7: cannot open shared object file: No such file or directory

解决方法:
下载你已安装版本的cudnn的tar.gz,我对应的是cudnn-linux-x86_64-8.7.0.84_cuda11-archive.tar.xz,然后解压,把inculde和lib64里的文件复制到cuda中

sudo cp ./include/cudnn.h /usr/local/cuda-11.6/include/
sudo cp ./lib/libcudnn* /usr/local/cuda-11.6/lib64/
cd /usr/local/cuda-11.6/
sudo chmod a+r /usr/local/cuda-11.6/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

5.配置pycharm(该部分参考https://zhuanlan.zhihu.com/p/439123487)

打开pycharm,选择相应的环境,运行

import onnxruntime as ort
import tensorrt
print(ort.get_device())
print(ort.get_available_providers())
print(tensorrt.__version__)

会出现

ImportError: libcudnn.so.8: cannot open shared object file: No such file or directory

以及

ImportError: libnvinfer.so.7: cannot open shared object file: No such file or directory

这是因为我们还得在pycharm配置一下cudnn和TensorRT的环境变量
在pycharm上面点击:run —> Edit Configuration
然后点击Environment variables这一栏最右侧的小册子图标
在这里插入图片描述点击加号,添加环境变量,这里有个很重要的点,网上的教程是仅仅把TensorRT的环境变量添加,但是实际上这还需要把cuda的环境变量一起添加,这也是之前说的本地pycharm和linux可能出现的问题之一,而这里必须以绝对路径添加
此外,还要注意的是,CUDA和TensorRT都要添加LD_LIBRARY_PATH,如果分别添加,那么会挤掉一个,所以要放在一栏里,中间用:连接(该部分参考https://blog.csdn.net/hehedadaq/article/details/113531857)
这是添加之后的
在这里插入图片描述
这是我.bashrc文件中的
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值