TensorRT如何加速人脸识别
|
从上面图 6 和图 7 中可以看到经过校准的 INT8 推理相对于 FP32 的推理,准确率(Accuracy)有略微的损失,也可见在部分情况下(图 6 表格中绿色所示)INT8 推理相比 FP32 推理准确率有略微提升。另外可以看见一个趋势,随着 Calibration dataset 中图片数量的增加,INT8 相对于 FP32 的精度损失是在逐渐减小。从 Performance 这张图中可见在不同的推理 Batch Size(注意实际推理的 Batch Size 和 Calibration 过程中的 Batch Size 并不需要保持一致)设定下,INT8 推理相比于 FP32 推理的加速比。图中可见 Batch Size 越大,加速效果越好,在 Batch Size 为 128 的时候,加速比大约在 3.5 倍左右,当然实际的加速比和硬件平台,还有神经网络本身也有关系。除了速度上面的提升以外,低精度推理在存储消耗上相对于 FP32 也有相应的优化,如图 8 所示:
图 8 中,INT8 on P40 即表示在 P40 显卡上进行 INT8 推理,可以看出相比 FP32 推理模式内存占用减少了 3 倍多,而速度提升了 3 倍多。而 FP16 模式也减少了 30% 的内存占用,速度提升了近两倍。 当然,上述的实验对比测试均来自 Nvidia 官方,具体到我们实际的深度学习场景,还需要经过实验进行对比精度的损失以及速度的提升,在第三章中,将会概述我们团队利用 TensorRT 加速人脸识别的实验流程以及效果,还有在实施中遇到的一些问题和解决方法。 ② 神经网络优化 TensorRT 除了通过支持 FP16 和 INT8 这两种低精度模式的推理来提升速度以外,其在底层会根据 GPU 特性对神经网络进行相应的重构和优化。首先是其会删除一些并没有使用输出的层,以避免不必要的计算。然后会对神经网络中一些可以合并的运算进行合并,例如在图 9 所示的原始网络,TensorRT 会将其中的 conv、bias、relu 这三个层融合在一个层中,即图 10 所示的 CBR 层,这个合并操作也被成为垂直层融合。进一步的还有水平层融合,即如图 10 到图 11 的过程,将处于同一水平层级的 1x1CBR 融合到一起。
2、Inference Server Inference Server 是一类为机器学习模型提供一站式管理、推理服务、集成等功能的高性能模型服务系统。以下简要介绍几种常见的 Inference Server。 ① TensorFlow Serving (编辑:PHP编程网 - 湛江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |






