- 课程回放
- 前期课程回顾
- TensorRT高级特性详解
- 针对SSD的目标检测推理加速实例
- 总结:深度学习推理优化的基本原则
一个深度神经网络从构建到实际应用会经过训练(Training)和推理(Inference)两个阶段。其中神经网络模型的训练需要大量的数据和算力提供支持,并且在训练的过程中需要不断的对模型进行调优和多次重复的计算,以使得模型具备良好的鲁棒性,是一个计算密集型的过程;而推理则是向训练好的模型输入新的数据,从而对某一事物做出尽可能准确的判断和猜测,跟模型的训练效果息息相关。
推理是在特定场景、有限算力的情况下进行的,可能是在云端数据中心,也可能是在智能手机上,因此对算力和时延具有很高的要求,如果将训练好的神经网络直接部署到Inference端,很有可能出现算力不足无法运行,或者计算时间较长等问题,因此我们需要对训练好的神经网络进行一定的优化。
神经网络模型的优化可以从不同的维度来进行,比如模型压缩、不同网络层合并、稀疏化、采用低精度数据类型,甚至还需要根据硬件特性对网络模型进行一定的优化。但是通常神经网络模型的规模都比较大,手动调整显然是不现实的,那么如何快速有效的解决这个问题呢?
NVIDIA TensorRT或许是一个很好的选择,它是是一种高性能神经网络推理引擎,主要是用来在部署神经网络到Inference端之前,对神经网络进行优化加速,来提高程序的吞吐量以及降低延迟。TensorRT会从全中参数类型、动态Tensor Memory、多流执行、内核调用、网络层融合等不同维度对神经网络模型进行优化,并且支持Caffe、TensorFlow、ONNX等主流的神经网络框架。
尽管如此,在实际开发过程中我们还会遇到为了某一个需求专门定义的网络层,超出了TensorRT的支持范围,这时候该怎么办呢?别担心,可以试试TensorRT的高级特性——插件(Plugin),开发者可以通过自定义插件的形式告诉TensorRT需要做什么操作,然后插入到神经网络的合适位置即可获得TensorRT的支持。
7月17日起,智东西公开课联合NVIDIA推出AI推理公开课,共计两讲,由NVIDIA高级解决方案架构师刘士君主讲,帮你解决AI推理优化难题,目前第一讲已结束,刘士君老师从影响AI推理性能的因素、TensorRT的基本加速原理、网络导入方法到具体的语音识别模型推理加速案例为大家带来了系统讲解,收听人次3600+。并且,大家在Q&A环节就现实开发中遇到的问题进行了系统的交流。
7月31日晚7点,AI推理公开课第二讲将开讲,主题为《代码实践!利用TensorRT高级特性为目标检测模型推理加速》,刘士君老师讲从TensorRT的高级特性出发,告诉你如何利用TensorRT的高级特性加速自定义网络层、低精度数据支持、以及对不同深度学习框架的支持方法,并辅以代码示例,深入浅出进行系统讲解。