主要内容

量子化的神经网络

在数字硬件、数字存储在二进制字。二进制字是固定长度的序列的比特(1和0)。数据类型定义了硬件组件或软件功能如何解释这1和0的序列。数字表示为两个整数(通常称为定点)或扩展浮点数据类型。

大多数pretrained神经网络和神经网络训练使用深度学习工具箱™使用单精度浮点数据类型。即使是小训练神经网络需要大量的内存,并要求硬件,可以执行浮点运算。这些限制可以抑制部署低功耗微控制器和fpga的深度学习的能力。

使用深度学习工具箱模型量化库支持包,你可以量化网络使用8位整数数据类型。金宝app

了解数字转换和部署所需的产品深入学习网下载188bet金宝搏络GPU, FPGA,或CPU环境,看看量化工作流先决条件

精度和范围

8位整数数据类型扩展有限精度和范围相比,单精度浮点数据类型。有几种铸造时的数值考虑数量从一个更大的浮点数据类型到较小的固定长度的数据类型。

  • 精度损失:精度损失是一种舍入误差。精度损失发生时,是四舍五入为最接近的数字所表示的字符数据类型。对于领带这轮:

    • 正数的方向最接近可表示的价值正无穷。

    • 负数的方向最接近可表示的值负无穷。

    在MATLAB®您可以执行这种类型的舍入使用函数。

  • 下溢:下溢是一种精度损失。下溢值小于最小值时可表示的数据类型。当这种情况发生时,饱和烃值为零。

  • 溢出:当一个值大于最大的值,数据类型可以表示,发生溢出。当发生溢出,浸透到最大的价值表示的字符的值的数据类型。

直方图的动态范围

使用深层网络量化器应用程序收集和可视化的动态范围重量和偏见的卷积层和完全连接层网络,和网络中的所有层的激活。应用程序分配一个权重按比例缩小的8位整数数据类型,偏见,和激活的卷积的层网络。这个应用程序显示一个直方图动态范围的每一个参数。下面的步骤描述如何将这些直方图。

  1. 考虑下面的值为参数记录运动时一个网络。

    值为参数记录的示意图表示。

  2. 找到理想的二进制表示每个记录值的参数。

    最重要的一点一点(MSB)是最左边的二进制字。这个数量的价值的最重要源泉。每个值的MSB用黄色突出显示。

    理想的二进制表示为每一个记录值表所示,用黄色突出显示的最高有效位。

  3. 通过调整二进制字,您可以看到使用的比特分配记录的参数值。MSB在每一列的总和,高亮显示为绿色,给一个聚合的记录值。

    和MSB的每一列中底部的表和高亮显示为绿色。

  4. 每一位位置的MSB计数显示热图。热图,深蓝色的区域对应于一个更大的数量的MSB的一些位置。

    MSB计数显示为一个热图深色区域对应于更多的MSB的位置。

  5. 深层网络量化器应用程序分配一个数据类型可以避免溢出,覆盖范围,并允许下溢。需要额外的符号位代表signedness的价值。

    下图显示了一个示例的一个数据类型表示从2位3到23,包括符号位。

    表的原始值的二进制表示,该地区从2 ^ 3 - 2 ^ 3和符号位列凸显了一个边界框。

  6. 指定数据类型后,任何位以外的数据类型被删除。由于分配一个较小的固定长度的数据类型,精度损失,溢出和下溢可能发生价值所不能表示的数据类型。

    表值的二进制表示,non-representable位显示为灰色。一张桌子在右边显示了8位二进制表示形式和量化值。

    在本例中,值0.03125,遭受一个下溢,所以量化值为0。精度值2.1遭受一些损失,所以量化值是2.125。16.250的值大于最大可表示的数据类型的值,这个值溢出和量化值浸透到15.874。

    同一个表,代表下溢的情况下,精度损失,溢出强调正确的表。

  7. 深层网络量化器应用程序显示这个为每个可学的热点图直方图参数卷积层和完全连接层的网络。灰色区域的直方图显示的部分不能代表的数据类型。

    热图的示意图表示直方图显示的深度网络量化器的应用。

另请参阅

应用程序

功能