看到如何使量子化、校准和验证深在MATLAB神经网络®使用白盒方法性能和精度之间的权衡,然后部署量子化款嵌入式GPU和FPGA硬件板。
使用深度学习工具箱™模型量化图书馆,你可以量化Squeezenet等深层神经网络。在校准过程中,所需的工具收集范围重量、偏见,并激活,然后提供可视化表示直方图分布校准动态范围的两个尺度。然后可以部署量化网络使用NVIDIA GPU编码器™®杰森®AGX Xavier达到2 x加速性能和内存使用减少4 x,和只有3%(精度损失相比,单精度的实现。
了解如何使用该工具Xilinx数字转换和部署网络®ZCU102板连接到一个高速相机。最初的深层神经网络45帧每秒的吞吐量。使用深度学习工具箱模型量化库,可以量化网络INT8,提高到139帧每秒的吞吐量,同时保持正确的预测结果。
在这个演示中,我们将展示工作流来量化深度学习网络和部署它们从MATLAB gpu和fpga。
部署深度学习网络边缘设备是具有挑战性的深度学习网络计算密集型的。例如,简单的网络AlexNet超过200 MB时更大的像VGG-16以北500 MB。
量化有助于减少网络的大小,将网络中使用浮点值转换为小bit-widths同时保持精度损失降到最低。
从R2020a开始,我们释放能力量化深度学习算法使用一个白盒,易于使用的迭代工作流程。这种方法有助于你做出性能和精度之间的权衡。
看到这个工作流在行动,让我们举个例子检测缺陷的螺母和螺栓,您可能会发现在制造业。
假设这是检查生产线的一部分,所以我们需要使用高速摄像机处理120帧/秒。
需求从系统工程将包括指标的准确性,延迟的网络,和整体的硬件成本,…
和他们经常开车的折衷选择在网络的设计和实现。
这个应用程序包括…
1)预处理逻辑,并选择一个感兴趣的区域,调整大小……
2)使用pretrained网络来检测是否有缺陷的一部分,…
3)最后后处理注释结果在屏幕上。
让我们开始与量化工作流通过观察部署嵌入式gpu。
量化和部署运行在NVIDIA gpu杰森AGX Xavier达到2 x加速性能和减少内存4 x,和只有大约3%(精度损失相比,单精度的实现。
这个示例使用Squeezenet消耗5 MB的磁盘内存。
开始,我们首先从插件下载深度学习量化支持包浏览器,然后启动应用程序。金宝app
一旦我们加载网络数字转换为GPU的目标,然后我们校准的数据存储已经建立。校准运行所需的图像通过网络收集一组权重范围,偏见,和激活。
校准的可视化表示直方图分布动态范围的两个尺度。直方图显示的灰色数据不能代表的量子化的类型,而蓝色显示了可以用量化的类型。最后,深色更高频率垃圾箱。
如果这是可接受的,我们量化网络和负载数据存储来验证量化网络的准确性。
这里是结果。记忆已经减少了74%,不会损失(准确性与原始浮点网络测量在一个桌面GPU。
一旦我们确认结果和出口dlquantizer工作流对象,我们可以使用GPU编码器量化网络部署在NVIDIA杰森。
我们运行推理缺陷。png,我们预计这个形象归类为有缺陷的螺栓。
现在让我们将注意力转向量化和部署网络Xilinx ZCU102董事会。网络使用34 MB的内存可学的参数和运行时内存200 MB。
与这些5行MATLAB代码,我们可以加载单精度ZCU102董事会上运行的比特流。我们看到它使用84 MB的内存45帧每秒的吞吐量。这是对我们的高速摄影机不够快。
让我们选择为FPGA数字转换。
一旦量化工作流程完成后,我们可以出口量化网络MATLAB工作区。
量化网络需要运行在一个处理器INT8量子化的,所以我们将使用INT8版本的下载zcu102比特流。
编译后,参数已经减少到68 MB,我们可以运行网络139帧每秒。我们得到正确的预测结果。
所以你可以看到,深度学习量子化程序帮助你减少对gpu深入学习网络的大小和fpga,同时尽量减少损失精度。如果你有兴趣了解更多,看看深度学习工具箱模型量化图书馆R2020a或最新R2020b。
你也可以从下面的列表中选择一个网站:
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。