已安装
待安装
从nvidia官网下载适用 cuda9.0 的 Tar 安装文件 TensorRT-5.1.5.0
参考 nvidia官网安装教程 4.3 Tar File Installation
$ tar xzvf TensorRT-5.1.5.0.Ubuntu-16.04.5.x86_64-gnu.cuda-9.0.cudnn7.5.tar.gz
解压成功后,将在该目录生成一个 TensorRT-5.1.5.0 的文件夹
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/wt/download/TensorRT-5.1.5.0/lib
或者在 .bashrc 中添加以下内容
$ sudo gedit ~/.bashrc
$ source ~/.bashrc
$ cd TensorRT-5.1.5.0/python
$ sudo pip2 install tensorrt-5.1.5.0-cp27-none-linux_x86_64.whl
注意,如果要将 yolov3 转换为 onnx,python 必须为 2.7 版本
通过 pip list 查看,也找不到 tensorrt 相关的模块,说明 tensorrt 并未安装在 pip 的 sit-packages 中,实际上在执行上述命令时,会显示如下信息
说明这个命令将tensorrt安装在了 /usr/local/lib/python2.7/dist-packages ,原因在于,系统安装的一些工具,包括系统原装的python下载的工具,都会丢到dist-packages里面去。自己安装的python,默认是读取site-packages里面的工具包,当然pip安装的包也会丢到这个目录下,因此在 import tensorrt 时由于在 site-packages 找不到安装的 tensorrt ,所以会出错。参考1 参考2
将 tensorrt-5.1.5.0-cp27-none-linux_x86_64.whl 文件复制到
/home/wt/anaconda2/lib/python2.7/site-packages/ 路径下,然后移动到该路径,再执行
sudo pip2 install tensorrt-5.1.5.0-cp27-none-linux_x86_64.whl
执行后,再次 pip list 就可以查到安装的 tensorrt 模块,在 python 中 import tensorrt 也不会报错了。
当在 python 中 import 一个模块出现 “no module named xxx” 时,先通过 pip list 查看模块是否存在,如果不存在说明未正确安装,需要将安装文件复制到 site-packages 目录下再安装一遍
$ cd TensorRT-5.1.5.0/uff
$ sudo pip2 install uff-0.6.3-py2.py3-none-any.whl
$ cd TensorRT-5.1.5.0/graphsurgeon
$ sudo pip2 install graphsurgeon-0.4.1-py2.py3-none-any.whl
ONNX-TensorRT GITHUB
$ git clone --recursive https://github.com/onnx/onnx-tensorrt.git
$ mkdir build
$ cd build
$ cmake .. -DTENSORRT_ROOT=/home/wt/download/TensorRT-5.1.5.0
or
$ cmake .. -DTENSORRT_ROOT=/home/wt/download/TensorRT-5.1.5.0 -DGPU_ARCHS="61"
$ make -j8
$ sudo make install
注意,根据GPU的实际计算能力,修改 DGPU_ARCHS 值
通过 ONNX-TensorRT 工具,可以将 onnx 模型转换为 tensorrt 模型,如
onnx2trt my_model.onnx -o my_engine.trt
还可以将 onnx 模型转换为人们可读的txt文档
onnx2trt my_model.onnx -t my_model.onnx.txt
更多用法,输入
onnx2trt -h
移动到 TensorRT-5.1.5.0/samples/python/yolov3_onnx 目录
执行
$ python yolov3_to_onnx.py
将自动下载 yolov3.cfg 及 yolov3.weights ,并将其转换为 yolov3.onnx 模型
在 TensorRT-5.1.5.0/samples/python/yolov3_onnx 目录继续执行
python onnx_to_tensorrt.py
将自动下载 dog.jpg 图片,然后将上一步生成的 yolov3.onnx 转换为 yolov3.trt ,并且通过 tensorrt 进行推理,生成带标注框的图片 dog_bboxes.png