前言
TensorRT是由Nvidia开发的一种用于深度学习模型推理的算法库,支持C++和Python API,基于这个架构对深度模型进行优化后能够降低识别模型的推理延迟,增加模型数据吞吐量,提高模型的识别的实时性。目前,TensorRT已经支持TensorFlow、Pytorch、Caffe、Mxnet框架的的深度学习模型解析。
实验环境
Ubuntu18.04,CUDA10.2,Cudnn7.6,Python3.6
TensorRT安装
1、从NVIDIA官网下载TensorRT SDK ,这里需要登录nvidia账号。
2、按照CUDA10.2,Ubuntu18.04选择合适的tar版本,选择TensorRT6.0.1.8
3、解压下载的压缩包,得到文件夹TensorRT-6.0.1.8,然后在环境中添加lib文件夹的依赖。
tar xavf TensorRT-6.0.1.8.Ubuntu-18.04.x86_64-gnu.cuda-10.2.cudnn7.6.tar.gz
gedit ~/.bashrc
# 添加源
export LD_LIBRARY_PATH="~/TensorRT- 7.1.3.4/lib:$LD_LIBRARY_PATH"# 更新源
source ~/.bashrc
4、切换到TensorRT-6.0.1.8的python目录下,选择 tensorrt-xxx-cp3.6-xxxx.whl 进行python API安装。
pip install tensorrt-6.0.1.8-cp36-none-linux_x86_64.whl
5、安装Python UFF包(UFF API能够将经过训练的模型从各种框架转换为通用格式)。首先切换到TensorRT-6.0.1.8/uff文件夹下,然后安装uff-0.6.9-py2.py3-none-any.whl文件
> cd ~/TensorRT-6.0.1.8/uff
> pip install uff-0.6.5-py2.py3-none-any.whl
# 测试 Python UFF 是否安装成功
> which convert-to-uff# 输出:
home/rebot/anaconda3/envs/ABINet /bin/convert-to-uff
6、安装graphsurgeon(Graph Surgeon API能够转换TensorFlow图)
cd ~/TensorRT-6.0.1.8/graphsurgeon
pip install graphsurgeon-0.4.1-py2.py3-none-any.whl
7、测试是否安装成功。只要能成功导入就说明成功了。
> python
> import tensorrt
>print(tensorrt.__version__)
6.0.1.8
>
常见问题
最后一步容易出现导入包错误的问题:from . tensorrt impor * ImportError: libcudnn.so.7: cannot open shared object file: NO such file or directory。
问题的原因:一个是Cudnn版本不对,另一个是Cudnn的依赖有问题。
> python
> import tensorrt
from . tensorrt impor *
ImportError: libcudnn.so.7: cannot open shared object file: NO such file or directory
① 如果是Cudnn版本不对,重新安装Cudnn。Cudnn下载链接,下载后解压出来。
tar -zxvf cudnn-10.2-linux-x64-v7.6.5.x.tgz
将文件cudnn.h拷贝到cuda/include中,将lib64文件夹的所有libcudnn*文件拷贝到cuda/lib64中
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
② 如果安装了Cudnn还是有问题,就apt安装libcudnn7这个库。
sudo apt install libcudnn7
参考链接
1、TensorRT安装:https://blog.csdn.net/m0_37605642/article/details/120095114
2、cudnn 安装:
https://blog.csdn.net/qq_37497883/article/details/124201559;https://www.codenong.com/cs106296239