TensorRt&&部署问题

本文详细介绍了TensorRT的概念、原理以及安装过程,重点讨论了如何使用TensorRT进行低精度推理,包括do_Inference原理和序列化。此外,还提到了TensorFlow模型的部署方法,以及使用Flask和Docker进行简易部署的步骤。最后,文章提及了基于tflite的Android部署流程。
摘要由CSDN通过智能技术生成

老铁们✌,重要通知🙌!福利来了!!!😉

【计算机视觉 复习流程剖析及面试题详解 】
【深度学习算法 最全面面试题(30 页)】
【机器学习算法 最全面面试题(61页)】

1.TensorRt

1.1 TensorRt定义?

TensorFlow: pb,ckpt
pytorch: pt,pth
keras: h5

显卡型号: tesla T4 | tesla V100

训练:V100、P40
推理:T4、P4

T4
整数运算能力(INT8): 130 TOPS
GPU 显存: 16GB
显存带宽: 320GB/秒

定义:推理加速(基于CUDA和cudnn的进行高性能推理加速引擎);用于从ONNX或tensorflow导入现有模型解析器,是对训练好的模型进行优化。
当网络训练完后,可以将tf训练模型文件直接丢进tensorRT中,而不再需要依赖深度学习框架(Caffe,TensorFlow等)。
tensorRT通过 组合层 和优化内核选择来优化网络,从而改善延迟、吞吐量(样本量/秒)、功效和内存消耗。

理解:
tensorRT可以将TensorFlow/pytorch的网络模型解析,然后与其中对应的层进行一一映射,把其他框架的模型统一全部 转换到tensorRT中,然后在tensorRT中可以针对NVIDIA自家GPU实施优化策略,并进行部署加速。

TensorRT对于网络结构进行了重构优化,主要体现在:
1.tensorRT通过解析网络模型将网络中无用的输出层消除以减小计算。
2.对于网络结构的垂直整合,即将目前主流神经网络的conv、BN、Relu三个层融合为了一个层。
3.对于网络的水平组合,水平组合是指将输入为相同张量和执行相同操作的层融合一起。
4.对于concat层,将contact层的输入直接送入下面的操作中,不用单独进行concat后在输入计算,相当于减少了一次传输吞吐。

1.2 TensorRt原理

低精度推理

TensorRT支持FP16INT8的计算,在训练的时候一般是使用32位或者16位数据,它在推理时可以降低模型参数的位宽来进行低精度推理,通过在减少计算量保持精度之间达到一个理想的权衡,以达到加速推断的目的。模型在推理计算时,是调用GPU的CUDA核进行计算的。
P16主要是P100和V100这两张卡支持;INT8主要针对的是 P4和P40这两张卡,P4是专门针对线上做推断的小卡。

int8量化算法
目标:将fp32的CNN转换为int8而不会造成明显的精度损失;
原因:int8方法具有更高的吞吐量和更低的内存需求;
为什么要量化而不使用int8直接训练?
模型训练是需要反向传播和梯度下降的,训练时的超参一般都是浮点型,如学习率等,int8类型无法进行训练。

samples文件夹下有一个命令行包装工具,叫trtexec,用来评测我们的网络模型,它有以下两个功能:
1.在指定的网络模型中,对随机输入数据进行基准测试。eg:可利用trtexc工具来测试 UFF/ONNX net-model 在推理时的表现。
2.对指定网络模型产生序列化引擎:使用完全流水线异步方式从多个线程运行具有多个执行上下文的引擎,以测试并行推理性能。

trtexec --deploy=/path/to/mnist.prototxt --model=/path/to/mnist.caffemodel --output=prob --batch=16 --saveEngine=mnist16.trt

定义: FP16(Full

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cc13186851239

觉得不错的,鼓励一下我,奥利给

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值