tensorrt 官网: https://developer.nvidia.com/tensorrt
官网安装教程:https://docs.nvidia.com/deeplearning/tensorrt/install-guide/index.html#installing
tensorrt 官网: https://developer.nvidia.com/tensorrt
点击“立即下载”,需要英伟达账号,可以选择任意平台适配你的cuda版本的TensorRT.
交大云盘下载速度可以达到5~10Mb/s。
目标前仅提供TensorRT-7.2.2的tar版本,适配Ubuntu18.04 x86_64架构、cuda为10.2,cudnn>=8.0.1。
wget -c -O TensorRT-7.2.2.3.Ubuntu-18.04.x84_64-gnu.cuda-10.2.cudnn8.0.tar.gz https://jbox.sjtu.edu.cn:10081/v2/delivery/data/c699ae6ce329441a81b23dbe96dd1edd/?token=
提示:
安装tensorrt需要先安装好配套的cuda和cudnn,本文使用的cuda=10.2,cudnn=8.0.5,安装教程见:
https://blog.csdn.net/qq_26794857/article/details/111664965
(1)解压tar文件:
tar -zxvf TensorRT-7.2.2.3.Ubuntu-18.04.x84_64-gnu.cuda-10.2.cudnn8.0.tar.gz
(2)解压得到TensorRT-7.2.2.3文件夹,把其中的lib路径添加到环境变量(注意修改成你的路径):
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/zzd/software/TensorRT-7.2.2.3/lib
(3)进入到解压路径下的python文件夹,使用pip安装
(注意:py2使用pip,py3使用pip3,如果是conda虚拟环境,要先激活该环境,再使用pip,并选择对应的whl文件):
cd TensorRT-7.2.2.3/python
pip3 install tensorrt-7.2.2.3-cp37-none-linux_x86_64.whl
(4)安装uff以支持tensorflow
cd TensorRT-7.2.2.3/uff
pip install uff-0.6.9-py2.py3-none-any.whl
(5)安装graphsurgeon以支持自定义结构
cd TensorRT-7.2.2.3/graphsurgeon
pip install graphsurgeon-0.4.5-py2.py3-none-any.whl
(6)安装onnx_graphsurgeon以支持onnx
cd TensorRT-7.2.2.3/onnx_grahsurgeon
pip install onnx_graphsurgeon-0.2.6-py2.py3-none-any.whl
安装包解压目录TensorRT-7.2.2.3/samples文件夹下提供了运行示例,下面以python为例,注:仅演示pytorch相关代码,tensorflow及其他平台请查看官网教程。
官网教程:https://docs.nvidia.com/deeplearning/tensorrt/sample-support-guide/index.html#python_samples_section
使用python把Caffe2(.Caffe格式),Tensorflow(.UFF格式)和ONNX(.pb格式)模型转换为tensorRT格式,样例是resnet50。
以onnx格式为例
cd samples/python/introductory_parser_samples
pip3 install -r requirements.txt # 安装支持库
ls ../../../data/resnet50 # 查看配套的数据文件是否存在(待检测图像、不同平台的训练好的权重文件)
python onnx_resnet50.py -d ../../../data # 运行,-d指定配套数据路径
如果输入类似如下内容则成功:
Correctly recognized <path>/data/resnet50/binoculars.jpeg as binoculars
使用pytorch,在MNIST手写数字数据集上训练模型,并且用TensorRT engine推断。
cd samples/python/network_api_pytorch_mnist
pip3 install -r requirements.txt
python sample.py
如果输出如下内容则成功:
Test Case: 2
Prediction: 2
两个类:Net和MnistModel
主程序:导入MinistModel,训练,测试,获取权重,转换为engine,加载输入输出流进行推断。
很多内容调用了common.py