今天(9月20日)早上9点30分开始,参加第二届Sky Hackathon大赛的学生团队、导师和旁听的开发者,近200人参加了NVIDIA举办的赛前在线培训课程。
在此过程中,培训内容主要覆盖:
- 基于目标检测的深度学习模型的训练过程
- 利用NVIDIA Transfer Learning Toolkit对模型进行剪枝等优化过程
- 利用NVIDIA TensorRT对训练好的模型进行部署
- 利用Jetson Nano进行实际场景实验
- 深度学习数据集的收集,筛选,清理和标注等过程。
我们Highlight几个重点:
TLT入门非常容易。使用TLT训练AI模型不需要AI或深度学习方面的专业知识。具有深度学习基础知识的用户可以开始使用简单的spec文件和预先训练的模型来构建自己的定制模型。
预训练的模型也可以从NGC下载。该工具包包含一个命令行界面(CLI),可以从Jupyter笔记本运行,这些笔记本包装在Docker容器中。TLT由一些简单的命令组成,例如数据增强,训练,修剪和模型导出。TLT的输出是经过训练的模型,可以使用DeepStream和TensorRT在NVIDIA边缘设备上进行部署以进行推理。
TLT旨在在具有NVIDIA GPU的x86系统上运行,例如基于GPU的工作站或DGX系统,或者可以在具有NVIDIA GPU的任何云中运行。
TensorRT是一个高性能的深度学习推理(Inference)优化器,可以为深度学习应用提供低延迟、高吞吐率的部署推理。TensorRT可用于对超大规模数据中心、嵌入式平台或自动驾驶平台进行推理加速。TensorRT现已能支持TensorFlow、Caffe、Mxnet、Pytorch等几乎所有的深度学习框架,将TensorRT和NVIDIA的GPU结合起来,能在几乎所有的框架中进行快速和高效的部署推理。
TensorRT加速DL Inference的能力来源于optimizer和runtime。其优化原理包括四个方面:
-Layer & Tensor fusion: 将整个网络中的convolution、bias和ReLU层进行融合,调用一个统一的kernel进行处理,让数据传输变快,kernel lauch时间减少,实现加速。此外,还会消除一些output未被使用的层、聚合一些相似的参数和相同的源张量。
-Mix precision:使用混合精度,降低数据的大小,减少计算量。
-kernel auto-tuning:基于采用的硬件平台、输入的参数合理的选择一些层的算法,比如不同卷积的算法,自动选择GPU上的kernel或者tensor core等。
-Dynamic tensor memory:tensorrt在运行中会申请一块memory,最大限度的重复利用此内存,让计算变得高效。