ubuntu 18.04 安装TensorRT7并运行yolov3_onnx的demo

构建Docker镜像

1. 从GitHub下载源码:https://github.com/nvidia/TensorRT

2. 构建Docker镜像:

Ubuntu 18.04 with cuda-10.2

$ docker build -f docker/ubuntu.Dockerfile --build-arg UBUNTU_VERSION=18.04 --build-arg CUDA_VERSION=10.2 --tag=tensorrt-ubuntu .

3.开启容器

       $ nvidia-docker run -v $TRT_RELEASE:/tensorrt -v $TRT_SOURCE:/workspace/TensorRT -it tensorrt-ubuntu:latest

 

安装TensorRT

1. 从官网下载TensorRT的Release版本:https://developer.nvidia.com/tensorrt

2. Deb安装TensorRT:

os=”ubuntu1x04”

tag=”cudax.x-trt7.x.x.x-ga-yyyymmdd”  # 如下载的文件是:nv-tensorrt-repo-ubuntu1804-cuda10.2-trt7.0.0.11-ga-20191216_1-1_amd64.deb,

sudo dpkg -i nv-tensorrt-repo-${os}-${tag}_1-1_amd64.deb

sudo apt-key add /var/nv-tensorrt-repo-${tag}/7fa2af80.pub # *.pub是/var/nv-tensorrt-repo-${tag}下的文件

sudo apt-get update

sudo apt-get install tensorrt

Python 2.7:

sudo apt-get install python-libnvinfer-dev

Python 3.x:

sudo apt-get install python3-libnvinfer-dev

如果使用TensorFlow使用TensorRT

sudo apt-get install uff-converter-tf

3. 验证安装是否正确:

dpkg -l | grep TensorRT

 

测试YOLOv3_ONNX例子

1. tensorRT安装成功后,YOLOv3_ONNX的例子在 /usr/src/tensorrt/samples/python/yolov3_onnx目录下。

2. 安装依赖环境:

Python2:

python2 -m pip install -r requirements.txt

Python3:

python3 -m pip install -r requirements.txt

在安装环境依赖时需要安装pycuda,使用pip 安装失败,错误信息如下,最后使用源码安装成功。

3. 将darknet-yolov3模型转onnx模型

python yolov3_to_onnx.py [只支持python2]

4. onnx模型转TensorRT模型,并运行:

python onnx_to_tensorrt.py

源码安装安装pycuda

参考: https://wiki.tiker.net/PyCuda/Installation/Linux/Ubuntu

1. 设置cuda环境变量:

export PATH="/usr/local/cuda/bin:${PATH}"

export LD_LIBRARY_PATH="/usr/local/cuda/lib64:${LD_LIBRARY_PATH}"

2. 安装依赖项:

$ sudo apt-get install build-essential python-dev python-setuptools libboost-python-dev libboost-thread-dev -y

3. 下载源码并解压:

下载地址:https://pypi.org/project/pycuda/

$ tar xzvf pycuda-VERSION.tar.gz

4. 配置并编译安装

$ cd pycuda-VERSION

## python2.7

$ ./configure.py --cuda-root=/usr/local/cuda --cudadrv-lib-dir=/usr/lib --boost-inc-dir=/usr/include --boost-lib-dir=/usr/lib --boost-python-libname=boost_python-py27 --boost-thread-libname=boost_thread

## python 3.x

$ ./configure.py --python-exe=/usr/bin/python3 --cuda-root=/usr/local/cuda --cudadrv-lib-dir=/usr/lib/x86_64-linux-gnu --boost-inc-dir=/usr/include --boost-lib-dir=/usr/lib --boost-python-libname=boost_python-py3<x> --boost-thread-libname=boost_thread $ make -j 8 $ sudo python setup.py install $ sudo pip install .

pycuda安装 cuda.h文件找不到问题

参考:https://blog.csdn.net/u011337602/article/details/87936331

(1)cuda.h这个文件的确找不到,添加cuda.h的搜索路径即可。

export PATH="/usr/local/cuda/bin:${PATH}"

export LD_LIBRARY_PATH="/usr/local/cuda/lib64:${LD_LIBRARY_PATH}"

(2)未添加CUDA_INC_DIR到 /etc/profile

      在/etc/profile最后两行添加

 export CUDA_INC_DIR=/usr/local/cuda/include/:${CUDA_INC_DIR}

      保存并执行source /etc/profile

(3)安装pycuda使用的是sudo pip3 install pycuda

    这种情况下,执行的root权限,但由于pycuda安装时会使用nvcc,而nvcc是不具有root权限的,所以会导致安装失败。

    因此需要去掉sudo,只在用户权限下执行pip3 install pycuda,即可安装成功。

猜你喜欢

转载自blog.csdn.net/Challovactor/article/details/105337745