TensorRT是一个高性能的深度学习推理(Inference)优化器,可以为深度学习应用提供低延迟、高吞吐率的部署推理。TensorRT可用于对超大规模数据中心、嵌入式平台或自动驾驶平台进行推理加速。TensorRT支持TensorFlow、Caffe、Mxnet、Pytorch等几乎所有的深度学习框架,将TensorRT和NVIDIA的GPU结合起来,能在几乎所有的框架中进行快速和高效的部署推理。
TensorRT 在运行时,加载一个已经训练好的神经网络,创建一个经过内部高度优化的引擎(engine),来进行快速计算。TensorRT 同时提供 C++ 和 Python API 接口。TensorRT 同时支持 Windows/Ubuntu/iOS 系统,本教程基于Ubuntu18.04 进行讲解。
本教程安装版本:TensorRT-7.0.0.11.Ubuntu-18.04.x86_64-gnu.cuda-10.0.cudnn7.6.tar,下载链接
相应的依赖环境:
- CUDA 10.0
- CUDNN 7.6.5
- Python 2 / Python 3
将下载好的压缩包,放在一个路径下,比如在我的电脑:/home/TensorRT-7
。然后将 TensorRT 的 lib
文件路径加入系统环境变量:
sudo vi ~/.bashrc
export LD_LIBRARY_PATH="TensorRT-${version}/lib:$LD_LIBRARY_PATH"
source ~/.bashrc
如果需要用 Python API 进行编程,对应安装如下:
cd TensorRT-${version}/python
sudo pip2 install tensorrt-*-cp27-none-linux_x86_64.whl # python2
# sudo pip3 install tensorrt-*-cp3x-none-linux_x86_64.whl # python3
如果需将 TensorFlow 训练后的网络通过 UFF 编码方式转换到TensorRT ,对应安装如下:
cd TensorRT-${version}/uff
sudo pip2 install uff-0.6.5-py2.py3-none-any.whl # python2
# sudo pip3 install uff-0.6.5-py2.py3-none-any.whl # python3
graphsurgeon 是对UFF编码网络进行定制化操作的库,如插入或删除神经网络某一层layer
:
cd TensorRT-${version}/graphsurgeon
sudo pip2 install graphsurgeon-0.4.1-py2.py3-none-any.whl # python2
# sudo pip3 install graphsurgeon-0.4.1-py2.py3-none-any.whl # python3
cd TensorRT-${version}
检查是否包含以下文件夹:lib
,include
,data
…
cd <TensorRT root directory>/data/mnist
python download_pgms.py
cd <TensorRT root directory>/samples/sampleMNIST
make
<TensorRT root directory>/bin$:./sample_mnist
---------------------------
@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@%.-@@@@@@@@@@@
@@@@@@@@@@@*- %@@@@@@@@@@
@@@@@@@@@@= .-. *@@@@@@@@@@
@@@@@@@@@= +@@@ *@@@@@@@@@@
@@@@@@@@* =@@@@ %@@@@@@@@@@
@@@@@@@@..@@@@% @@@@@@@@@@@
@@@@@@@# *@@@@- @@@@@@@@@@@
@@@@@@@: @@@@% @@@@@@@@@@@
@@@@@@@: @@@@- @@@@@@@@@@@
@@@@@@@: =+*= +: *@@@@@@@@@@
@@@@@@@*. +@: *@@@@@@@@@@
@@@@@@@@%#**#@@: *@@@@@@@@@@
@@@@@@@@@@@@@@@: -@@@@@@@@@@
@@@@@@@@@@@@@@@+ :@@@@@@@@@@
@@@@@@@@@@@@@@@* @@@@@@@@@@
@@@@@@@@@@@@@@@@ %@@@@@@@@@
@@@@@@@@@@@@@@@@ #@@@@@@@@@
@@@@@@@@@@@@@@@@: +@@@@@@@@@
@@@@@@@@@@@@@@@@- +@@@@@@@@@
@@@@@@@@@@@@@@@@*:%@@@@@@@@@
0:
1:
2:
3:
4:
5:
6:
7:
8:
9: **********
注: 如果 download_pgms.py 下载数据失败,手动下载完成后,修改 download_pgms.py 将原有np.fromstring为np.fromfile,相应的 urllib.request.urlopen() 改为 open(' ', 'rb')。
若输出与上述一致, 则证明安装成功。