Mathworks R2017b升级版,加强深度学习转换CUDA代码推断速度再提升
扫描二维码
随时随地手机看文章
Mathworks 推出了包含 MATLAB 和 Simulink 产品系列的 Release 2017b(R2017b),该版本大大加强了 MATLAB 对深度学习的支持,并简化了工程师、研究人员及其他领域专家设计、训练和部署模型的方式。该更新版本从数据标注、模型搭建、训练与推断还有最后的模型部署方面完整地支持深度学习开发流程。此外,MATLAB 这次更新最大的亮点是新组件 GPU Coder,它能自动将深度学习模型代码转换为 NVIDIA GPU 的 CUDA 代码,GPU Coder 转换后的 CUDA 代码可以脱离 MATLAB 环境直接高效地执行推断。经 MATLAB 内部基准测试显示,GPU Coder 产生的 CUDA 代码,比 TensorFlow 的性能高 7 倍,比 Caffe2 的性能高 4.5 倍。
媒体采访了中国资深应用工程师陈建平,陈建平从 MATLAB 中的数据标注开始沿着深度学习模型的开发、训练、调试到最后使用 GPU Coder 部署高性能模型,为我们介绍了 MATLAB 这一次更新针对深度学习所做的努力。本文将沿着 MATLAB 深度学习开发过程简要介绍这次更新的要点,同时重点向大家展示能自动将模型转化为 CUDA 代码的 GPU Coder 模块。
数据标注对于计算机视觉来说,Computer Vision System Toolbox 中的 Ground Truth Labeler app 可提供一种交互式的方法半自动地标注一系列图像。除了目标检测与定位外,该工具箱现在还支持语义分割,它能对图像中的像素区域进行分类。陈建平说:「我们现在的标注工具可以直接半自动地完成任务,它可以像 Photoshop 中的魔棒工具一样自动标注出像素层级的类别,我们选中图片后工具会自动将对象抠出来。在我们完成初始化的图像语义分割后,工具会使用自动化的手段把后续行驶过程中的其它元素都抠出来。因为中间和后续过程都是以机器为主导完成的,所以我们只需要在前期使用少量的人力就能完成整个标注过程。」
这种半自动方法确实可以大大提升标注的效率,特别是标注车道边界线和汽车边界框等视觉系统目标。在这种自动标注框架下,算法可以快速地完成整个数据集的标注,而随后我们只需要少量的监督与验证就能构建一个精确的数据集。如下所示,MATLAB 文档向我们展示了如何创建车道线自动标注。
我们可以使用不同的算法,如能自动检测车道线特征的 Auto Lane DetecTIon、使用聚合通道特征(Aggregate Channel Features/ACF)检测车辆的 ACF Vehicle Detector 和使用 Kanade-Lucas_Tomasi(KLT)在小间隔内追踪一个或多个 ROI 的算法等。如果我们选择自动算法,那么接下来设置 ROI、最大车道数、车道线宽度等参数后就可以直接运行自动标注。若视频经过人工微调与校验,并达到不错的效果,我们就可以选择「Accept」完成标注任务。