安装TensorRT并运行RangeNet_lib

文章目录

  • 安装TensorRT
    • 安装Nvidia, Cuda, Cudnn
    • 运行RangeNet_lib
    • 遇到的一些问题
    • 一些参考链接

安装TensorRT

系统:ubuntu16.04
GPU: 1060

安装Nvidia, Cuda, Cudnn

型号:Nvidia: 430.50
cuda: 10.1
cudnn: 7.6.5

  1. 安装Nvidia ,下载.run文件,利用chmod a+x 更改文件权限, 并禁止nouveau:
sudo gedit /etc/modprobe.d/blacklist.conf
blacklist nouveau
options nouveau modeset=0
sudo update-initramfs -u
reboot

输入

lsmod | grep nouveau 

没有输出,则禁用成功
进入tty模式并关闭x server:

ctrl + alt+ F1
sudo service lightdm stop

开始安装:

sudo sh NVIDIA* -no-x-check -no-nouveau-check -no-opengl-files

完成后,可输入nvidia-smi检测是否安装成功

  1. 安装cuda
    sudo sh cuda_10.1_***
    在安装cuda时不需要勾选安装Nvidia选项(前面已经安装了)
sudo gedit ~/.bashrc
 export PATH=/usr/local/cuda-10.1/bin:$PATH
 export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64:$LD_LIBRARY_PATH

可输入nvcc -V检测

  1. 安装cudnn, 下载对应的按照包,解压
    tar -xavf cudnn***.tgz,
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*

检测:

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
  1. 安装TensorRT式,利用anaconda3安装,
    sudo sh Anaconda3-*
    创建环境,python3.5,python3.6好像都支持,只需要按照python对应的tensorrt就可以了
conda create -n tensorrt python=3.5
conda activate tensorrt

官网下载TensorRT,解压并安装:

tar -xzvf TensorRT-XXX.tar.gz
sudo gedit ~/.bashrc
export LD_LIBRARY_PATH=TensorRT解压路径/lib:$LD_LIBRARY_PATH
source ~/.bashrc

进入TensorRT目录下的Python目录:

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

测试:

python
import tensorrt
tensorrt.__version__

进入uff目录:

pip install uff-*.whl

测试:

which convert-to-uff

会输出安装路径
进入graphsurgeon目录

pip install graphsurgeon-*.whl

验证相关项目:

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

出现数字识别结果即安装成功, 由于在实际安装过程中将TensorRT-XXX解压到了/opt/下,所以在验证项目过程中,make时加sudo

运行RangeNet_lib

1.rangenet_lib
按照该代码中的安装流程安装一些包,前面已经安装过tensorrt了,但由于本文代码是用C++实现的,所以在catkin 时,出现找不到tensorrt的问题,因此又安装了一下。因为前面安装anaconda3时,将anaconda中的python设置成默认的了, 所以此处安装进入root下安装, 并将系统默认的python2.7换成了python3.5:

sudo su
sudo cp /usr/bin/python /usr/bin/python_bak
sudo rm /usr/bin/python
sudo ln -s /usr/bin/python3.5 /usr/bin/python

此时pip对应的是python3.5

pip install tensorrt-*.whl

检查:

python
import tensorrt
tensorrt.__version__

输出tensorrt的版本信息
catkin已经安装的情况下,编译代码

catkin init
catkin build rangenet_lib

遇到的一些问题

  1. opencv的一些头文件显示没有,很大可能opencv没有安装成功
pkg-config opencv --modversion

查看opencv的版本信息
2. 在rangenet_lib文件夹的CMakeLists.txt中增加 include_directories("TensorRT-×××的解压路径/include")
3. 编译时出现: /usr/include/yaml-cpp/node/detail/iterator.h: next is not a member of boost
查看/usr/include/boost下有next_prior.hpp文件,所以sudo gedit iterator.hpp,引入头文件:#include

一些参考链接

  1. link1
  2. 如果cuda安装完成后安装opencv,可参考此链接,opencv在cuda之前安装可能不会出很多问题
  3. 安装opencv时若报错,fatal error: dynlink_nvcuvid.h no such file or directory, 参考opencv安装错误

你可能感兴趣的:(安装TensorRT并运行RangeNet_lib)