TensorRT

基本概念

TensorRT是英伟达公司出品的高性能的推断C++库。可以认为tensorRT是一个只有前向传播的深度学习框架。只能用在GPU端,在纯CPU上是跑不了的。

背景

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

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

特点

平时所见到了深度学习落地技术:模型量化、动态内存优化以及其他的一些优化技术TensorRT都已经有实现,更主要的,其推断代码是直接利用cuda语言在显卡上运行的,所有的代码库仅仅包括C++和cuda,当然也有python的包装,我们在利用这个优化库运行我们训练好的代码后,运行速度和所占内存的大小都会大大缩减。

支持转化的模型有caffe、tensorflow和ONNX,TensorRT对Caffe模型的支持度最高,同时也支持将Caffe模型转化为int8精度。

TensorRT可以将FP32位权值数据优化为 FP16 或者 INT8,而推理精度不发生明显的降低。同时可以合并卷积操作,将不同的层进行合并(包括水平与垂直),可以将对结果无影响的部分进行删除达到压缩的效果。

在TensorRT中量化是闭源的,目前只支持Caffe和TensorFlow模型的INT8量化,而ONNX模型的则暂未支持。

下载

官网进行下载:https://developer.nvidia.com/tensorrt
只是一个库,有动态链接、静态链接还有头文件的一个文件夹。装一个库的话,在Linux中无非我们进行的操作是将其安装到系统地址中,然后添加环境变量。
C++版本+tar

ONNX-TensorRT

TensorRT中的ONNX-TensorRT是NVIDIA和ONNX官方维护的一个ONNX模型转化TensorRT模型的一个开源库,主要的功能是将ONNX格式的权重模型转化为TensorRT格式的model从而再进行推断操作。

ref
https://oldpan.me/archives/use-tensorrt-speed-up-deep-learning-1

tensorRT详细解释(挺好):
https://yq.aliyun.com/articles/580307

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值