这里写自定义目录标题
安装前的说明
TensorRT在ubuntu上有两种方式安装:.deb文件/tar文件。
我通过.deb文件安装的方式失败了,这里介绍我通过.tar文件安装的过程。
环境
cuda 10.2
cudnn 7.6.5
anaconda 3.6
安装过程
-
去官网下载TensorRT-7.0.0.11.Ubuntu-16.04.x86_64-gnu.cuda-10.2.cudnn7.6.tar.gz,没有账号需要注册;或者从我这里下载,稍后上传。
-
在命令行里解压tar文件
# 命令模板 tar xzvf TensorRT-${version}.${os}.${arch}-gnu.${cuda}.${cudnn}.tar.gz # 具体命令 tar xzvf TensorRT-7.0.0.11.Ubuntu-16.04.x86_64-gnu.cuda-10.2.cudnn7.6.tar.gz
说明
- 7.x.x.x就是tensorRT版本 eg: 7.0.0.13
- os就是系统的版本 eg: Ubuntu-16.04
- cuda-x.x是cuda版本 eg: cuda-10.2
- cudnn8.x是cudnn版本 eg: cudnn7.6
解压之后应该有lib include data等子文件
ls TensorRT-${version} bin data doc graphsurgeon include lib python samples targets TensorRT-Release-Notes.pdf uff
-
添加环境变量
sudo gedit ~/.bashrc # 添加一行 export LD_LIBRARY_PATH=/home/wry/Downloads/TensorRT-7.0.0.11/lib:$LD_LIBRARY_PATH source ~/.bashrc
-
安装python版本的tensorRT的.whl文件
注意:执行这步操作时先进入anaconda的环境中
conda activate your_env# 需要根据具体情况修改命令 cd TensorRT-${version}/python pip install tensorrt-*-cp3x-none-linux_x86_64.whl # 我的 cd TensorRT-7.0.0.13/python pip install tensorrt-*-cp37-none-linux_x86_64.whl
-
如果使用tensorflow的话,需要安装UFF的.whl文件(optional)
# 同上需修改第一行命令 cd TensorRT-${version}/uff pip install uff-0.6.9-py2.py3-none-any.whl
-
安装python graphsurgeon的whl文件
# 同上需修改第一行命令 cd TensorRT-${version}/graphsurgeon pip install graphsurgeon-0.4.5-py2.py3-none-any.whl
-
验证是否安装成功,兩種方式
- 在anaconda环境下打开python
import tensorrt tensorrt.__version__ '7.0.0.11'
- 在命令行中运行以下代码
结果应该是这样:# <TensorRT root directory> 是你解压的TensorRT那个文件夹 cd <TensorRT root directory>/samples/sampleMNIST make cd <TensorRT root directory>/bin ./sample_mnist
&&&& RUNNING TensorRT.sample_mnist # ./sample_mnist [07/16/2020-13:18:14] [I] Building and running a GPU inference engine for MNIST [07/16/2020-13:18:15] [I] [TRT] Detected 1 inputs and 1 output network tensors. [07/16/2020-13:18:15] [W] [TRT] Current optimization profile is: 0. Please ensure there are no enqueued operations pending in this context prior to switching profiles [07/16/2020-13:18:15] [I] Input: @@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@==-%- =@@@@ @@@@@@@@%%*-- .- :#@@@@ @@@@@@@# ***#%@@@@@ @@@@@@@@. :: @@@@@@@@@@ @@@@@@@@*-+ .@@%-@@@@@@@@@@ @@@@@@@@@@@- *@@@@@@@@@@@@@@ @@@@@@@@@@@= :@@@@@@@@@@@@@@ @@@@@@@@@@@@: #@@@@@@@@@@@@@ @@@@@@@@@@@@% .-+@@@@@@@@@@@ @@@@@@@@@@@@@* +%@@@@@@@@@ @@@@@@@@@@@@@@%: =%@@@@@@@@ @@@@@@@@@@@@@@@@* :@@@@@@@@ @@@@@@@@@@@@@@@@@ #@@@@@@@ @@@@@@@@@@@@@@%=: .@@@@@@@@ @@@@@@@@@@@@%=. :@@@@@@@@ @@@@@@@@@@%+. :*@@@@@@@@@ @@@@@@@@%#. :*@@@@@@@@@@@ @@@@@@@-. :*@@@@@@@@@@@@@ @@@@#-. =@@@@@@@@@@@@@@@ @@@@= .==@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@ [07/16/2020-13:18:15] [I] Output: 0: 1: 2: 3: 4: 5: ********** 6: 7: 8: 9:
- 在anaconda环境下打开python
坑爹问题
- 上边都做完之后,使用trtexec转换onnx到engine或者在python下使用tensorrt报错:
ImportError: libnvinfer.so.7: cannot open shared object file: No such file or directory
百分之两百是因为LD_LIBRARY_PATH设置出现问题,什么问题我不清楚。但是摸索了两天,找到了解决方法:
sudo gedit /etc/environment
添加(具体lib的位置由你解压tensorRT的位置决定)
LD_LIBRARY_PATH="/home/wry/Downloads/TensorRT-7.0.0.11/lib"
尝试过但是失败的解决方法
- 修改~/.bashrc, export动态库的位置(也就是上边正常设置环境变量的步骤)
- 在/etc/ld.so.conf里面加一行/home/wry/Downloads/TensorRT-7.0.0.11/lib,然后sudo ldconfig.
(ldconfig 命令的用途,主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式如前介绍,lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件.缓存文件默认为/etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表.)