还是有些坑要填。。。

 

首先安装适合自己电脑配置的cuda,我这里之前安装好了cuda-10.1版本,cuda-10.1的环境变量记得添加:

$ gedit ~/.bashrc 打开,在文件最后添加:

export PATH=/usr/local/cuda-10.1/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64:$LD_LIBRARY_PATH

记得 $ source ~/.bashrc 一下。

查看是否安装好的cuda:$ nvidia-smi

ubuntu18.04 cuda-10.1 cudnn7.6.5 安装tensorrt 6.0.1.5

然后安装cuda-10.1对应的cudnn 这里我选的是7.6.5版本,其它版本如果支持cuda-10.1的应该也可以。

下载地址:https://developer.nvidia.com/rdp/cudnn-archive

选择下载cuDNN Library for Linux 版的tgz格式,然后解压。将对应文件夹中的文件拷贝到cuda-10.1文件夹中:

ubuntu18.04 cuda-10.1 cudnn7.6.5 安装tensorrt 6.0.1.5

$ sudo cp /home/yao/Downloads/cudnn-10.1-linux-x64-v7.6.5.32/cuda/include/cudnn.h  /usr/local/cuda-10.1/include

$ sudo cp /home/yao/Downloads/cudnn-10.1-linux-x64-v7.6.5.32/cuda/lib64/libcudnn*  /usr/local/cuda-10.1/lib

测试cudnn:

$ cat /usr/local/cuda-10.1/include/cudnn.h | grep CUDNN_MAJOR -A 2

ok

ubuntu18.04 cuda-10.1 cudnn7.6.5 安装tensorrt 6.0.1.5

接着下载tensorrt:https://developer.nvidia.com/nvidia-tensorrt-download

 

ubuntu18.04 cuda-10.1 cudnn7.6.5 安装tensorrt 6.0.1.5

选择自己想要下载的版本,我这里选择的是tensorrt6 因为我要用yolov3 。

勾选Agree后,选自自己对应系统以及cuda支持的版本,我这里选择的是: tar

ubuntu18.04 cuda-10.1 cudnn7.6.5 安装tensorrt 6.0.1.5

 

下载后解压。

添加环境变量 $ gedit ~/.bashrc   在文件最后添加:

export PATH=$PATH:$/home/yao/Downloads/TensorRT-6.0.1.5.Ubuntu-18.04.x86_64-gnu.cuda-10.1.cudnn7.6/TensorRT-6.0.1.5/bin
export LD_LIBRARY_PATH=/home/yao/Downloads/TensorRT-6.0.1.5.Ubuntu-18.04.x86_64-gnu.cuda-10.1.cudnn7.6/TensorRT-6.0.1.5/lib:$LD_LIBRARY_PATH

添加对应bin和lib的文件路径。

然后进入/TensorRT-6.0.1.5/python文件夹:选择对应的pytho版本的安装文件,我用的py36:

pip install tensorrt-XXX-cp35-cp35mu-linux_x86_64.whl

进入/TensorRT-6.0.1.5/uff :

pip install uff-0.6.5-py2.py3-none-any.whl

进入/TensorRT-6.0.1.5/graphsurgeon:

pip install graphsurgeon-0.4.1-py2.py3-none-any.whl

到此tensorrt 就安装好了。

测试:

ubuntu18.04 cuda-10.1 cudnn7.6.5 安装tensorrt 6.0.1.5

再测试一下sampleMNIST:下载mnist数据集http://yann.lecun.com/exdb/mnist/ 到data/mnist 目录下,并解压。

然后运行data/mnist 下的generate_pgms.py 产生0-9 的pgm 文件。

cd samples/sampleMNIST下编译:

sudo make clean

make 

cd /TensorRT-XXX/bin(转到bin目录下面,make后的可执行文件在此目录下)

./sample_mnist

ubuntu18.04 cuda-10.1 cudnn7.6.5 安装tensorrt 6.0.1.5

 

接着再pycharm中使用import tensorrt as trt 又报错了 !!够呛,又折腾半天。

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

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

libcudnn.so.7问题使用软链接解决:https://blog.csdn.net/weixin_40298200/article/details/79420758

CUDNN连接建立

 cd /usr/local/cuda/lib64

sudo rm -rf libcudnn.so libcudnn.so.7  #删除原有版本号,版本号在cudnn/lib64中查询

sudo ln -s libcudnn.so.7.0.5 libcudnn.so.7 #生成软连接,注意自己下载的版本号

sudo ln -s libcudnn.so.7 libcudnn.so 

sudo ldconfig #立即生效

查到有人说libnvinfer.so.6: 这个问题,是要在pycharm中设置环境变量,我一开始设置了不行。

后来好像好像是因为以上设置了软链接,然后再在pycharm 中配置libnvinfer.so.6的路径环境变量,就可以了。

 

如果遇到 no module named tensorrt 可以检查下是不是环境路径的问题。我遇到这个奇怪问题:

同时打开两个终端一个测试可以,一个测试不行,于是我又打开第三个第四个终端测试还是不行。对比以后我发现同样在我建立的虚拟环境DL下 python版本居然不同python3.6.4以及python3.6.12.

而且一个对应gcc7.2.0,一个对应gcc7.3.0 。百思不解。

查看自己安装的gcc :$ gcc -v 出来的居然是7.5版本。晕。。。

查了自己的环境路径应该没问题。

于是在anaconda 中把我的python3.4.12 改为python3.4.0, 因为python3.4.0是可以的。

但是,改完之后又不行。。。no module named tensorrt,

我试着在虚拟环境之外测试python居然可以用,tensorrt也能用。。。这都是什么鬼。

然后我怀疑自己之前安装的tensorrt不是在DL虚拟环境中,因为在修改环境变量的时候source ~/.bansh 后会自动退出虚拟环境。

所以我又在DL虚拟环境中按照以上安装的tensorrt : pip install tensorrt.whl

然后就ok了!

 

但是我明明把python安装在anaconda中的DL虚拟环境中的。。。

 

 

 

 

 

相关文章: