TensorRT与pycuda配置运行yolov3

一、pycuda安装

http://pypi.python.org/pypi/pycuda
点击左侧download files,下载最新版本的pycuda

#解压
tar xfz pycuda-VERSION.tar.gz
##编译 VERSION为你自己的版本号
cd pycuda-VERSION
python configure.py
##此时会生成siteconf.py配置文件
python setup.py install

如果没有出现错误,那么pycuda将会安装在你的PYTHON_PATH下
测试下:

cd pycuda-VERSION/test
python test_driver.py

在上述<编译>过程中的最后一步,会安装依赖库(Mako、appdirs、pytools),如果下载不动或者你运行终端本来就没网,解决如下:
去 https://pypi.org/
1、分别搜索Mako、appdirs、pytools,下载最新版本
2、解压缩后分别进入各自的root文件夹下,执行

python setup.py install

OK,问题解决

二、TensorRT安装

2.1什么是TensorRT

参考:https://arleyzhang.github.io/articles/7f4b25ce/
一般的深度学习项目,训练时为了加快速度,会使用多GPU分布式训练。但在部署推理时,为了降低成本,往往使用单个GPU机器甚至嵌入式平台(比如 NVIDIA Jetson)进行部署,部署端也要有与训练时相同的深度学习环境,如caffe,TensorFlow等。由于训练的网络模型可能会很大(比如,inception,resnet等),参数很多,而且部署端的机器性能存在差异,就会导致推理速度慢,延迟高。这对于那些高实时性的应用场合是致命的,比如自动驾驶要求实时目标检测,目标追踪等。所以为了提高部署推理的速度,出现了很多轻量级神经网络,比如squeezenet,mobilenet,shufflenet等。基本做法都是基于现有的经典模型提出一种新的模型结构,然后用这些改造过的模型重新训练,再重新部署。

而tensorRT 则是对训练好的模型进行优化。 tensorRT就只是 推理优化器。当你的网络训练完之后,可以将训练模型文件直接丢进tensorRT中,而不再需要依赖深度学习框架(Caffe,TensorFlow等),如下:

TensorRT与pycuda配置运行yolov3_第1张图片
TensorRT与pycuda配置运行yolov3_第2张图片

可以认为tensorRT是一个只有前向传播的深度学习框架,这个框架可以将 Caffe,TensorFlow的网络模型解析,然后与tensorRT中对应的层进行一一映射,把其他框架的模型统一全部 转换到tensorRT中,然后在tensorRT中可以针对NVIDIA自家GPU实施优化策略,并进行部署加速。

如果想了解更多关于tensorrt的介绍,可参考官网介绍:
https://docs.nvidia.com/deeplearning/sdk/tensorrt-developer-guide/index.html

2.2安装TensorRT

首先安装cuda和cudnn,安装教程可参考:
cuda:https://blog.csdn.net/l297969586/article/details/53320706
cudnn:https://blog.csdn.net/l297969586/article/details/67632608

去NVIDIA官网:https://developer.nvidia.com/
搜索TensorRT,下载对应的版本号,常用的是

#解压缩
tar -xzvf TensorRT-XXX.tar.gz
## 在~/.bashrc文件中添加TensorRT路径
vim ~/.bashrc 
## 将下面三个环境变量写入环境变量文件并保存
export LD_LIBRARY_PATH=TensorRT解压路径/lib:$LD_LIBRARY_PATH
export CUDA_INSTALL_DIR=/usr/local/cuda-9.0
export CUDNN_INSTALL_DIR=/usr/local/cuda-9.0
## 更新.bashrc
source ~/.bashrc

安装TensorRT

#进入TensorRT_ROOT/python
pip install tensorrt-XXX-cp27-cp27mu-linux_x86_64.whl

测试TensorRT

>>> import tensorrt
>>> tensorrt.__version__

输出版本号即为安装成功

安装uff:

##进入TensorRT_ROOT/uff
pip install uff-0.1.0rc0-py2.py3-none-any.whl

测试uff:

which convert-to-uff

显示uff安装路径即为安装成功

三、yolov3实测

稍后更新

你可能感兴趣的:(计算机视觉,深度学习,模型优化)