关 于 使 用 T e n s o r R T 进 行 深 度 模 型 加 速 的 一 些 问 题 关于使用TensorRT进行深度模型加速的一些问题 关于使用TensorRT进行深度模型加速的一些问题
TensorRT只负责模型的推理(inference)过程,一般不用TensorRT来训练模型
根据官方文档,使用TensorRT,在CPU或者GPU模式下其可提供10倍以上的加速。
TensorRT为什么能提升模型的运行速度?
1.第一个就是进行了量化,TensorRT支持INT8和FP16的计算。
在平时我们进行模型参数训练的时候,用的都是float甚至是double型,这样耗费了更多的空间和资源。
在实际推理的过程中,不需要如此高的精度,所以进行量化,即转为int8,可以达到加速推断的目的。
2.第二个就是针对GPU的特性做了优化,合并了一些运算,即合并了一些网络结构,比如将bias+conv+relu进行和并
环境的安装问题
官网下载:https://developer.nvidia.com/nvidia-tensorrt-download
如果要使用python接口的tensorrt,则需要安装pycuda
pip install pycuda
#在home下新建文件夹,命名为tensorrt_tar,然后将下载的压缩文件拷贝进来解压
tar xzvf TensorRT-***.tar
#解压得到TensorRT-5.0.2.6的文件夹,将里边的lib绝对路径添加到环境变量中
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/root/tensorrt_tar/TensorRT-***/lib
# 安装TensorRT
cd TensorRT-5.0.2.6/python
pip install tensorrt-5.0.2.6-py2.py3-none-any.whl
# 安装UFF,支持tensorflow模型转化
cd TensorRT-5.0.2.6/uff
pip install uff-0.5.5-py2.py3-none-any.whl
# 安装graphsurgeon,支持自定义结构
cd TensorRT-5.0.2.6/graphsurgeon
环境测试
import tensorrt
import uff
使用流程
- 生成pb文件
- 格式转化:要将tensorflow的pb文件转化为uff格式的文件,首先找到convert_to_uff文件,看自己用的是哪个版本的python,如果是python3,则在/usr/lib/python3.5/dist-packages/uff/bin文件夹下,如果是python2,则在/usr/lib/python2.7/dist-packages/uff/bin文件夹下,
python3.5 /usr/lib/python3.5/dist-packages/uff/bin/convert_to_uff.py --input_file models/lenet5.pb
则会在models文件夹中生成lenet5.uff文件
Pytorch转tensorRT过程
1.Pytorch Model --》ONNX —》TensorRT engine