CN113112009A - 用于神经网络数据量化的方法、装置和计算机可读存储介质 - Google Patents
用于神经网络数据量化的方法、装置和计算机可读存储介质 Download PDFInfo
- Publication number
- CN113112009A CN113112009A CN202010033831.4A CN202010033831A CN113112009A CN 113112009 A CN113112009 A CN 113112009A CN 202010033831 A CN202010033831 A CN 202010033831A CN 113112009 A CN113112009 A CN 113112009A
- Authority
- CN
- China
- Prior art keywords
- neural network
- network data
- quantization
- data
- sets
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
Abstract
本披露公开了用于神经网络数据量化的方法、量化装置和计算机可读存储介质,其中量化装置可以包括在组合处理装置中,该组合处理装置还可以包括通用互联接口和其他处理装置。所述量化装置与其他处理装置进行交互,共同完成用户指定的计算操作。组合处理装置还可以包括存储装置,该存储装置分别与设备和其他处理装置连接,用于该设备和其他处理装置的数据。本披露的方案针对神经网络数据进行划分,被划分到同一量化集内的神经网络数据可以进行统一的量化操作,从而达到加快处理速度的目的。
Description
技术领域
本披露一般地涉及人工智能领域。更具体地,本披露涉及一种用于用于对神经网络数据进行量化的方法、装置、集成电路和计算机可读存储介质。
背景技术
深度学习已被人工智能领域广泛的使用,在包括图像分类、目标检测、自然语言处理等任务上被证实效果十分理想。随着深度学习的模型预测越来越准确,网络越来越深,神经网络消耗的内存大小成为问题,尤其是在移动设备上。
模型大小不仅是内存容量问题,也是内存带宽问题。模型在每次预测时需要使用模型的权重,图像相关的应用程序通常需要实时处理大量数据,这意味着内存、CPU和电池的快速消耗。
为了节省能耗,神经网络的学习、训练或使用通常会采取量化的手段。所谓量化就是将神经网络中信息量较大的浮点数转换为信息量较小的浮点数或定点数,而如何有效的转换将影响神经网络的速度及精准度。
发明内容
为了至少解决在上述背景技术部分所描述的问题,对神经网络数据进行分别或统一的量化操作,从而达到减少运算量和加快处理速度的目的,本披露提出如下的技术方案及其多个实施例。
在一个方面中,本披露提出了一种用于对神经网络数据进行量化的方法,包括:获取针对于多组神经网络数据中的每组神经网络数据的量化相关值,以得到与所述多组神经网络数据对应的多个量化相关值;将所述多个量化相关值中的每个分别与所述多个量化相关值中的极值求比值,以获得多个比值;根据多个预定的阈值范围对所述多个比值进行划分,以便将与所述多个比值的每个相关联的每组神经网络数据划分到不同的量化集;以及对于处于同一量化集内的一组或多组神经网络数据执行统一的量化操作。
在另一方面中,本披露还公开了一种用于对神经网络数据进行量化的设备,包括:至少一个处理器;至少一个存储器,其存储有计算机程序代码,当所述计算机程序代码由所述至少一个处理器执行时,使得所述设备执行上述的方法。
在又一方面中,本披露进一步公开了一种计算机可读存储介质,其上存储有用于对神经网络数据进行量化的计算机程序代码,当所述计算机程序代码由处理器运行时,执行上述的方法。
在一个方面中,本披露公开了一种集成电路装置,包括:存储单元,其配置用于存储多组神经网络数据;量化相关值单元,其配置用于获取针对于多组神经网络数据中的每组神经网络数据的量化相关值,以得到与所述多组神经网络数据对应的多个量化相关值;比值单元,其配置用于将所述多个量化相关值中的每个分别与所述多个量化相关值中的极值求比值,以获得多个比值;划分单元,其配置用于根据多个预定的阈值范围对所述多个比值进行划分,以便将与所述多个比值的每个相关联的每组神经网络数据划分到不同的量化集;以及量化单元,其配置用于对于处于同一量化集内的一组或多组神经网络数据执行统一的量化操作。
通过利用本披露的方法、装置和计算机可读存储介质,可以对多组神经网络数据进行量化操作。特别地,本披露的方案还可以进一步将多组神经网络数据进行划分,被归类于同一量化集的一组或多组神经网络数据可以执行统一的量化操作,不但可以确保量化误差减少,还可以达到减少运算量和加快处理速度的效能。
附图说明
通过结合附图,可以更好地理解本披露的上述特征,并且其众多目的、特征和优点对于本领域技术人员而言是显而易见的。下面描述中的附图仅仅是本披露的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可根据这些附图获得其他的附图,其中:
图1是示出根据本披露实施例的神经网络的结构示意图;
图2是示出根据本披露实施例的目标层的输出通道划分示意图;
图3是示出根据本披露实施例的神经网络数据量化的方法流程图;
图4是示出根据本披露另一实施例的神经网络数据量化的方法流程图;
图5是示出根据本披露实施例的多组神经网络数据划分不同量化集执行量化操作的示意图;
图6是示出根据本披露实施例的集成电路装置的示意性结构框图;
图7是示出根据本披露实施例的一种组合处理装置的结构图;以及
图8是示出根据本披露实施例的一种板卡的结构示意图。
具体实施方式
下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本披露一部分实施例,而不是全部的实施例。基于本披露中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本披露保护的范围。
本披露的技术方案提供了一种用于神经网络数据量化的方法、装置和计算机可读存储介质。具体地,本披露提出通过将神经网络数据划分成多个量化集,并且处于同一量化集可以执行统一的量化操作。
应当理解,本申请关于上述的量化方案阐述了许多具体细节以便提供对本披露所述多个实施例的透彻理解。然而,本领域普通技术人员在本申请公开内容的教导下,可以在没有这些具体细节的情况下实践本披露描述的多个实施例。在其他情况下,本申请公开的内容并没有详细描述公知的方法、过程和组件,以避免不必要地模糊本披露描述的实施例。进一步,该描述也不应被视为限制本披露的多个实施例的范围。
下面将结合附图,对本披露的多个实施例中的技术方案进行清楚和完整地描述。
图1是示出根据本披露实施例的神经网络100的结构示意图。
一般来说,人工神经网络(ANN)是一种处理设备(以软件、硬件或两者的组合实现),其包含大量“人工神经元”的处理单元(就像人脑中的神经元一样)。人工神经元协同工作以解决具体问题。ANN通常被组织在包括许多互连的人工神经元的层中。基本的ANN由三层组成:第一层“输入”单元,其连接到第二层“隐藏”单元,其中第二层通过被隐藏节点连接到第三层“输出”单元。人工神经网络进一步分为单层神经网络和多层神经网络,而卷积神经网络(convolutional neural network,缩写CNN)就是一种多层深度神经网络,其被广泛运用于图像处理、语音识别等领域。本披露的方案就是针对卷积神经网络而提出来的用于神经网络数据量化的方法。CNN一共有5个层级结构,分别是:输入层、卷积层、激活层、池化层以及输出层。
1、输入层
卷积神经网络的输入层可以处理多维数据,常见地,一维卷积神经网络的输入层接收一维或二维数组,其中一维数组通常为时间或频谱采样;二维数组可能包含多个通道;二维卷积神经网络的输入层接收二维或三维数组;三维卷积神经网络的输入层接收四维数组。与传统神经网络/机器学习一样,神经网络需要对输入的数组进行预处理操作,常见的在输入层中进行预处理的方法有:去均值、归一化及PCA/SVD降维等。
2、卷积层
卷积层的功能是对输入数据进行特征提取,其内部包含多个卷积核,组成卷积核的每个元素都对应一个权重系数和一个偏差量,类似于一个前馈神经网络的神经元。人的大脑识别图片的过程中,并不是一下子将整张图片同时识别,而是对于图片中的每一个特征首先局部感知,然后更高层次地对局部进行综合操作,从而得到全局信息。卷积层参数包括卷积核大小、步长和填充,三者共同决定了卷积层输出特征图的尺寸,是卷积神经网络的超参数。卷积层内每个神经元都与前一层中位置接近的区域的多个神经元相连,该区域的大小取决于卷积核的大小。卷积核在工作时,会有规律地扫过输入特征,对输入特征做矩阵元素乘法求和并叠加偏差量。
3、激活层
所谓激活,实际上是对卷积层的输出结果做一次非线性映射。常用的激励函数有:Sigmoid函数、Tanh函数、ReLU函数、Leaky、ReLU函数、ELU函数及Maxout函数等。对于激活层的建议如下:首先利用ReLU函数处理数据,因为其迭代速度快,但是有可能效果不佳。如果ReLU函数失效的情况下,可以考虑使用Leaky ReLU函数或者Maxout函数,此时一般情况下都可以解决问题,而Tanh函数则在文本和音频处理有比较好的效果。
4、池化层
池化:也称为欠采样或下采样。该层主要用于特征降维,压缩数据和参数的数量,减小过拟合,同时提高模型的容错性。池化方法主要有:最大池化和平均池化。在卷积层进行特征提取后,输出的特征图会被传递至池化层进行特征选择和信息过滤。池化层包含预设定的池化函数,其功能是将特征图中单个点的结果替换为其相邻区域的特征图统计量。池化层选取池化区域与卷积核扫描特征图步骤相同,该步骤由池化大小、步长和填充进行控制。
5、输出层(全连接层)
经过前面若干次卷积+激活+池化后,终于来到了输出层,全连接层位于卷积神经网络隐藏层的最后部分,并只向其它全连接层传递信号。特征图在全连接层中会失去空间拓扑结构,被展开为向量并通过激励函数。按表征学习观点,卷积神经网络中的卷积层和池化层能够对输入数据进行特征提取,全连接层的作用则是对提取的特征进行非线性组合以得到输出,即全连接层本身不被期望具有特征提取能力,而是试图利用现有的高阶特征完成学习目标。另外在全连接层还可以进行局部归一化(LRN)、数据增强等操作,以便增加神经网络的鲁棒性。
卷积神经网络是一类包含卷积计算且具有深度结构的前馈神经网络,已成为当前语音分析和图像识别领域的研究热点。它的权值共享网络结构使之更类似于生物神经网络,降低了网络模型的复杂度,减少了权值的数量。该优点在网络的输入是多维图像时表现的更为明显,使图像可以直接作为网络的输入,避免了传统识别算法中复杂的特征提取和数据重建过程。
上面结合图1描述了可以实施本披露技术方案的神经网络的示例结构图。可以理解的是,上文关于神经网络的介绍仅仅是示例性的,并且神经网络的结构并不受图中所示结构的限制,本领域技术人员根据需要可以对图中所示结构做出修改,例如在隐藏层中增加一个或多个新的层和对应算子。在对神经网络的实际应用中,可以预先通过大量的样本数据或样本数据集(包含输入数据和输出数据)对初始神经网络进行训练,并在训练完成后获得训练后的神经网络。经过训练后的神经网络对于将来真实环境的输入数据能尝试给出一个正确的输出结果。
在一个或多个实施例中,神经网络的训练过程可以分为两个阶段,第一阶段是信号的正向处理,从输入层经过隐藏层,最后到达输出层。第二阶段是反向传播梯度,从输出层到隐藏层,最后到输入层,根据梯度依次调节神经网络中每层的权值和偏置。
在神经网络进行训练或微调过程中,神经网络的数据可以是高精度数据格式。以浮点数为例,根据计算机体系结构可知,基于浮点数的运算表示法则和定点数的运算表示法则,比较同样长度的定点运算和浮点运算可以发现,浮点运算计算模式更为复杂,需要更多的逻辑器件来构成浮点运算器。另一方面,从体积来说,浮点运算器的体积也比定点运算器的体积要大。并且,浮点运算器需要消耗更多的系统资源去处理,不仅如此,浮点运算器占用的芯片面积和功耗相比于定点运算器都要大很多倍。
基于上述技术问题的描述,在隐藏层中的一个或多个层里,针对可以忽略微小偏差的层,例如:卷积层或全连接层,进行浮点转定点的量化处理,从而加快数据处理的速度。但是当量化的数据过于庞大时,若是对所有的数据选择同样的量化参数进行量化,反而会导致量化误差变大。因此,本披露提出一种用于神经网络数据量化的方法,根据不同数据之间的量化分布的差异,自适应的判断是否需要进行分别量化操作或统一量化操作。
在一个或多个实施例中,待量化数据可以是神经网络的神经元、权值、梯度、偏置中的至少一种数据。下面的待量化数据是以神经网络中目标层的神经元和权值这两种数据为例,并且根据以下公式进行量化操作:
Fx≈Ix×scale (1)
公式(1)中,Fx为数据量化前的浮点值,scale为量化参数,Ix为数据x量化后的n位二进制表示值,而
公式(2)中,为通过量化处理后的值,round为进行四舍五入的取整运算,需要说明的是,此处不仅仅局限于round这一种取整运算,也可以采用其他的取整运算方法,例如:采用向上取整、向下取整、向零取整等取整运算,来替换公式(2)中的round取整运算。
公式(3)中,absmax表示绝对值的最大值,n表示Ix的bit数,ceil表示向上取整。在本披露的实施例中,基于方便对神经网络数据进行划分,是采用ceil表示这种取整的方式,也可以采用其他的取整运算方法,例如:采用四舍五入取整、向下取整、向零取整等取整运算。进一步,公式(3)是将绝对值的最大值作为判断量化分布的基准。
图2是示出根据本披露实施例的目标层的输出通道划分示意图。为了更好的理解本方案,这里的目标层是以卷积层为例来说明的,但本披露的目标层不仅限于卷积层,只要是具有多个输出通道的一个或多个隐藏层(例如全连接层)都可以作为本披露的目标层。
如图2所示,在一个实施例中,当数据层对卷积层输入多组神经网络数据211~21n(n为正整数)时,卷积层可以通过多次卷积计算来提取输入的神经网络数据中的关键特征,并且可作为下一层输入的特征图221~22m(m为正整数)。一般来说,单个卷积核通常是三维矩阵,因此需要用到宽度、高度和深度这三个参数。由于权值矩阵使用宽度和高度表示,因此单个卷积核中权值矩阵的数量和卷积的深度保持一致。也就是说,输入的神经网络数据的输入通道数1~n(n为正整数)与权值矩阵的数量或卷积的深度相同。
进一步,卷积层通常采用二维卷积计算方式对图像数据进行卷积,以每个像素为中心对周围邻域进行卷积计算。例如,当要进行卷积的数为3*3,就以像素为中心,圈选四周邻域共九个数为一次计算数量。换句话说,将每邻域9个像素求和变为一个像素,可按序计算出卷积核211~21n(n为正整数),并且通过加权累加再加上偏置就可以输出特征图特征图1。最后,结合多个输出特征图221~m就能构成特征图像。
如前所述,为提高数据处理的速度,可以通过将高精度数据格式(例如浮点数)转换成低精度数据格式(例如定点数)的量化处理。但是,在一次要针对大量的数据执行量化操作时,如果将所有的数据选择同样的量化参数进行量化,反而可能会导致量化误差变大。因此本披露实施例将以输出通道作为将多组神经网络数据划分的基准,通过分别或统一执行量化操作,可以达到减少量化误差和加快运算速度的目的。具体划分与量化操作方案将在下面结合图3和图4做出描述。
图3是示出根据本披露实施例的神经网络数据量化的方法300流程图。神经网络数据进行图像处理时,方法300通过输入层对目标层输送待量化的神经网络数据。该神经网络数据可以是神经网络的神经元、权值、梯度、偏置中的至少一种数据。由此,本披露通过方法300可以将神经网络中的权值数据进行量化。在一个或多个实施例中,前述的目标层可以是卷积层或全连接层。当该目标层是卷积层时,神经网络数据是该卷积层中以输出通道为单位的所有权值或者部分权值,而该输出通道是该卷积层的所有输出通道或者部分输出通道。进一步来说,有关下面描述中的目标层将以卷积层作为示例性说明,本领域技术人员通过此处的示例性描述,也可以想到用隐藏层中的其它层(例如全连接层)来实现本披露方案。
在一个场景中,方法300接收到待量化的神经网络数据后,可以根据卷积层的所有输出通道数,将待量化的神经网络数据划分成多组神经网络数据,其中每组神经网络数据中都包括最大值或绝对值最大值。在一个或多个实施例中,方法300进行卷积前的量化操作时,会将卷积层中每层的待量化的神经网络数据所对应的最大值和最小值保存下来。此实施例可以根据保存的最大值和最小值来获取绝对值最大值,并不用为了获得绝对值再耗费额外的资源去处理量化的神经网络数据。
如图3所示,在步骤301处,方法300获取针对于多组神经网络数据中的每组神经网络数据的量化相关值,以得到与多组神经网络数据对应的多个量化相关值,该量化相关值可以是每组神经网络数据的最大值或绝对值最大值。
在一个或多个实施例中,绝对值最大值可以作为上述式(1)~(3)执行量化操作的参数之一,因此此实施例可以将绝对值最大值作为每组神经网络数据的量化相关值。可选地,在一些场景中,本领域技术人员也能通过对上述说明想到将最大值取代绝对值最大值作为执行量化的基准。
进一步,在步骤302处,方法300将多个量化相关值中的每个分别与多个量化相关值中的极值求比值,以获得多个比值。如前所述,量化相关值可以是绝对值最大值,而且多个量化相关值中的极值可以是多个量化相关值中的最大值或最小值。例如,选取多组神经网络数据中每组的绝对值最大值,可以获得多个绝对值最大值,并且从这些绝对值最大值之中选取一个最大值(以下简称“第一参数”)和一个最小值(以下简称“第二参数”)。接着,方法300将多个量化相关值分别与第二参数进行比较可以获得多个比值。可选地或可替代地,也可以将多个量化相关值分别与第一参数进行比较可以获得另一多个比值。本披露的比值是采用ceil表示这种取整的方式,也可以采用其他的取整运算方法,例如:采用四舍五入取整、向下取整、向零取整等取整运算。
在获得多个比值后,在步骤303处,方法300根据多个预定的阈值范围对多个比值进行划分,以便将与多个比值的每个相关联的每组神经网络数据划分到不同的量化集。关于该阈值范围,本领域技术人员可以根据实际操作需要进行灵活的设定。例如,该多个阈值范围可以根据阈值与多个比值之间的关系来划分,将该比值小于阈值设定为第一阈值范围,相反,该比值大于阈值设定为第二阈值范围。在一个实施例中,该阈值可以是预设的经验值或低精度数据格式的位宽。以低精度数据格式的位宽为例,当其是8位定点型数据时,可以将阈值设定为8。
进一步,可以根据第一阈值范围和第二阈值范围对该多个比值进行划分,该划分方式如下,当比值在第一阈值范围内,与该比值所相关联的每组神经网络数据将划分在第一量化集,其余大于阈值的比值,则是依照比值大小(从小到大)依序划分到第二量化集、第三量化集….第N量化集(N为正整数)中。在一个场景中,具有相同比值的每组神经网络数据将被划分到同样的量化集。
根据前述多个阈值范围将每组神经网络数据划分到多个不同的量化集后,在步骤304处,方法300对于处在同一量化集内的一组或多组神经网络数据执行统一的量化操作。在同一量化集内的一组或多组神经网络数据都有每组对应的绝对值最大值,从该多个绝对值最大值中选出最大值作为上述的式(3)的absmax参数进行运算,并且结合上述的式(1)和(2)的运算就可以同时完成对同一量化集内的一组或多组神经网络数据的量化操作。在一个或多个实施例中,量化操作包括将高精度数据格式表示的神经网络数据量化成低精度数据格式表示的神经网络数据。
根据图3所披露的量化方法,通过划分成多个不同量化集,进而将同一量化集的神经网络数据执行统一的量化操作,可以确保量化误差减少,进而达到减少运算量和加快处理速度的效能。图4是示出根据本披露另一实施例的神经网络数据量化的方法400的流程图。通过前文和下面的描述,本领域技术人员能够理解图4为图3的进一步实施方案,并且关于图3描述的技术细节同样也适用于图4所示出的内容。
神经网络数据进行图像处理时,方法400通过输入层对目标层输送待量化的神经网络数据。如前面所提到的,该神经网络数据可以是神经网络的神经元、权值、梯度、偏置中的至少一种数据。由此,此实施例是通过方法400可以将神经网络中的权值数据进行量化。如前所述,该目标层可以是卷积层或全连接层。进一步,有关下面描述中的目标层将以卷积层作为示例性说明。
如图4所示,在步骤401处,方法400接收到待量化的神经网络数据后,可以根据卷积层的所有输出通道数,将待量化的神经网络数据划分成与输出通道数相同数量的多组神经网络数据,其中多组神经网络数据中的每组都包括最大值或绝对值最大值。在一个或多个实施例中,绝对值最大值可以作为上述式(1)~(3)执行量化操作的参数之一。因此本披露的技术方案可以绝对值最大值来作为每组神经网络数据的量化相关值。可选地,在一些场景中,本领域技术人员也能通过对上述说明想到将最大值取代绝对值最大值作为执行量化的基准。
接着,在步骤402处,方法400选取多组神经网络数据中每组的绝对值最大值,以获得多个绝对值最大值,如前述绝对值最大值可以作为执行量化操作的参数之一。因此,在步骤403处,从多个绝对值最大值之中选取一个最大值(以下简称“第一参数”)和一个最小值(以下简称“第二参数”),通过方法400将多个量化相关值分别与第二参数进行比较可以获得多个比。可选地或可替代地,也可以将多个量化相关值分别与第一参数进行比较可以获得另一多个比值。本披露的比值是采用ceil表示这种取整的方式,也可以采用其他的取整运算方法,例如:采用四舍五入取整、向下取整、向零取整等取整运算。
在获得多个比值后,在步骤404处,方法400根据多个预定的阈值范围对多个比值进行划分,以便将与多个比值的每个相关联的每组神经网络数据划分到不同的量化集。关于该阈值(或者阈值范围),本领域技术人员可以根据实际操作需要进行灵活的设定。关于该阈值范围,本领域技术人员可以根据实际操作需要进行灵活的设定。例如,该多个阈值范围可以根据阈值与多个比值之间的关系来划分,将该比值小于阈值设定为第一阈值范围,相反,该比值大于阈值设定为第二阈值范围。在一个实施例中,该阈值可以是预设的经验值或低精度数据格式的位宽。以低精度数据格式的位宽为例,当其是8位定点型数据时,可以将阈值设定为8。
进一步,可以根据第一阈值范围和第二阈值范围对该多个比值进行划分,该划分方式如下,当比值在第一阈值范围内,该比值所相关联的每组神经网络数据划分在第一量化集,其余大于阈值的比值,则是依照比值大小(从小到大)依序划分在第二量化集、第三量化集….第N量化集(N为正整数)中。在一个场景中,具有相同比值的每组神经网络数据将被划分到同样的量化集。
根据前述多个阈值范围将每组神经网络数据划分到多个不同的量化集后,在步骤405处,方法400根据一组或多组神经网络数据中绝对值最大值来确定量化参数。在同一量化集内的一组或多组神经网络数据都有每组对应的绝对值最大值,从这些绝对值最大值中选出最大值作为上述的式(3)的absmax参数进行运算,在步骤406处,结合上述的式(1)和(2)的运算就可以同时完成对同一量化集内的一组或多组神经网络数据的量化操作。在一个或多个实施例中,量化操作包括将高精度数据格式表示的神经网络数据量化成低精度数据格式表示的神经网络数据。
可选地或可替代地,本披露的技术方案可以将最大值取代绝对值最大值作为每组神经网络数据对应的量化相关值。本领域技术人员通过前文根据量化相关值取得多个比值,从而根据该多个比值对多组神经网络数据进行划分成多个不同量化集,进而将同一量化集执行统一量化操作的实施例,可以想到量化相关值由最大值替换成绝对值最大值的其他实施例,此处为了简明的目的,不再赘述。
在结合图3和图4描述了划分成多个量化集,并将同一量化集执行统一量化操作方案后,下文通过图5的具体说明对多组神经网络数据通过相应的绝对值最大值之间比值的大小来作为划分的基准,并将划分统一量化集的多组神经网络数据进行统一量化操作。
图5是示出根据本披露实施例的多组神经网络数据划分不同量化集执行量化操作500的示意图。
如图5所示,目标层有6个输出通道数,待量化的神经网络数据被划分成第一组神经网络数据501(以下简称“第一组”)、第二组神经网络数据502(以下简称“第二组”)、第三组神经网络数据503(以下简称“第三组”)、第四组神经网络数据504(以下简称“第四组”)、第五组神经网络数据505(以下简称“第五组”)和第六组神经网络数据506(以下简称“第六组”)。以上示例性的仅列举六组,本领域技术人员可以想到实际应用的数量组可能大大超过此数量。
接着,通过卷积前的量化操作,将卷积层中每层的待量化的神经网络数据所对应的最大值和最小值保存下来,并且根据保存的最大值和最小值来获取绝对值最大值。通过操作500可以获知第一组至第六组的绝对值最大值按序为0.7、0.4、3.6、3.5、1.9和4,其中这六组中的绝对值最大值当中的最大值和绝对值最大值当中的最小值分别为4(以下简称“第一参数”)和0.4(以下简称“第二参数”)。操作500将每组的绝对值最大值分别与第二参数进行比较可以获得多个比值依序为2、1、9、9、5和10。此实施例的比值是采用ceil表示这种取整的方式,也可以采用其他的取整运算方法,例如:采用四舍五入取整、向下取整、向零取整等取整运算。
在完成获得多个比值后,根据多个预定的阈值范围对多个比值进行划分,以便将与多个比值的每个相关联的每组神经网络数据划分到不同的量化集。关于该阈值(或者阈值范围),本领域技术人员可以根据实际操作需要进行灵活的设定。例如,该多个阈值范围可以根据阈值与多个比值之间的关系来划分,当阈值设定为8时,第一组、第二组和第五组的比值小于8,因此,将第一组511、第二组512和第五组515的神经网络数据划分在第一量化集51。相反,第三组513、第四组514和第六组516的比值大于8,而且第三组和第四组的比值同样都是9,因此,可以将第三组513和第四组514的神经网络数据划分在第二量化集52。另外,第六组516的比值是10,所以第六组的的神经网络数据将单独被划分在第三量化集53。
在完成多组神经网络数据的划分后,操作500将根据不同量化集,选取量化参数以执行量化操作。通过查找第一量化集中的第一组、第二组和第五组的神经网络数据的绝对值最大值为0.7、0.4和1.9,其中该三个绝对值最大值中以1.9最大,因此1.9可以作为第一量化集所对应的第一量化参数。
类似地,通过查找第二量化集中的第三组和第四组的神经网络数据的绝对值最大值为3.6和3.5,其中该二个绝对值最大值中以3.6最大,因此3.6可以作为第二量化集所对应的第二量化参数。同样地,第三量化集中的第六组的神经网络数据的绝对值最大值4就是第三量化集所对应的第三量化参数。
进一步,将该第一量化参数、第二量化参数和第三量化参数分别作为上述的式(3)的absmax参数进行运算,并且结合上述的式(1)和(2)的运算就可以分别完成对第一量化集、第二量化集和第三量化集内的一组或多组神经网络数据的量化操作。
图6是示出根据本披露实施例的集成电路装置600的示意性结构框图。通过下文的描述,本领域技术人员可以理解图6的集成电路装置支持本披露结合图3和图4描述的技术方案,并且关于图3和图4描述的技术细节同样也适用于图6所示出的内容。
如图6中所示,此实施例的集成电路装置600总体上可以包括:存储单元602、量化相关值单元604、比值单元606、划分单元608和量化单元610。在一些场景中,存储单元602用于存储输入层对目标层输送待量化的多组神经网络数据,该多组神经网络数据可以是神经网络的神经元、权值、梯度、偏置中的至少一种数据。由此,本披露是通过集成电路装置600将神经网络中的权值数据进行量化。在一个或多个实施例中,前述的目标层可以是卷积层或全连接层。
在一个实施例中,集成电路装置600为了进行量化操作,通过划分单元608根据卷积层的所有输出通道数,将待量化的神经网络数据划分成多组神经网络数据,其中每组神经网络数据中都包括最大值或绝对值最大值。在一些实施例中,绝对值最大值可以作为上述式(1)~(3)执行量化操作的参数之一,因此此实施例将绝对值最大值作为判断量化差的基准。可选地或可替代地,本领域技术人员也能通过对上述说明想到将最大值取代绝对值最大值作为执行量化的基准。
在一个场景中,通过量化相关值单元604获取针对于多组神经网络数据中的每组神经网络数据的量化相关值,以得到与多组神经网络数据对应的多个量化相关值,该量化相关值可以是每组神经网络数据的最大值或绝对值最大值。并且通过比值单元将多个量化相关值中的每个分别与多个量化相关值中的极值求比值,以获得多个比值。
由于量化相关值可以是绝对值最大值,而且多个量化相关值中的极值可以是多个量化相关值中的最大值或最小值。例如,选取多组神经网络数据中每组的绝对值最大值,可以获得多个绝对值最大值,并且从多个绝对值最大值之中选取一个最大值(以下简称“第一参数”)和一个最小值(以下简称“第二参数”)。接着,比值单元606将多个量化相关值分别与第二参数进行比较可以获得多个比值。可选地或可替代地,也可以将多个量化相关值分别与第一参数进行比较可以获得另一多个比值。
接着,划分单元608接收来自比值单元606所输出的比值,根据多个预定的阈值范围对多个比值进行划分,以便将与多个比值的每个相关联的每组神经网络数据划分到不同的量化集。关于该阈值范围,本领域技术人员可以根据实际操作需要进行灵活的设定。例如,该多个阈值范围可以根据阈值与多个比值之间的关系来划分,将该比值小于阈值设定为第一阈值范围,相反,该比值大于阈值设定为第二阈值范围。在一个实施例中,该阈值可以是预设的经验值或低精度数据格式的位宽。以低精度数据格式的位宽为例,当其是8位定点型数据时,可以将阈值设定为8。
进一步,可以根据第一阈值范围和第二阈值范围对该多个比值进行划分,该划分方式为:当比值在第一阈值范围内,该比值所相关联的每组神经网络数据划分在第一量化集,其余大于阈值的比值,则是依照比值大小(从小到大)依序划分为第二量化集、第三量化集….第N量化集(N为正整数)。在一个场景中,具有相同比值的每组神经网络数据将被划分到同样的量化集。
根据前述多个阈值范围将每组神经网络数据划分到多个不同的量化集后,量化单元610对于处于同一量化集内的一组或多组神经网络数据执行统一的量化操作。在同一量化集内的一组或多组神经网络数据都有每组对应的绝对值最大值,从该多个绝对值最大值中选出最大值作为上述的式(3)的absmax参数进行运算,并且结合上述的式(1)和(2)的运算就可以同时完成对同一量化集内的一组或多组神经网络数据的量化操作。
图7是示出根据本披露实施例的一种组合处理装置700的结构图。如图所示,该组合处理装置700包括具有前述量化装置702,其可以配置用于执行前述结合附图所描述的量化方法。在一个或多个实施例中,该量化装置702也可以是前述的用于量化的设备、集成电路装置(如上述图6所揭露)和计算机可读存储介质。另外,该组合处理装置700还包括通用互联接口704和其他处理装置706。根据本披露的量化装置702可以通过通用互联接口704与其他处理装置706进行交互,共同完成用户指定的操作。
根据本披露的方案,该其他处理装置可以包括中央处理器(“CPU”)、图形处理器(“GPU”)、人工智能处理器等通用和/或专用处理器中的一种或多种类型的处理器,其数目可以不做限制而是根据实际需要来确定。在一个或多个实施例中,该其他处理装置可以包括前述的基准硬件平台或基准运算装置,从而其可以与包括测试硬件平台的测试装置形成一个测试的系统。在一个或多个实施例中,该其他处理装置可以作为本披露的测试装置(其可以具体化为人工智能相关运算装置)与外部数据和控制的接口,执行包括但不限于数据搬运,完成对本机器学习运算装置的开启、停止等的基本控制;其他处理装置也可以和机器学习相关运算装置协作共同完成运算任务。
根据本披露的方案,该通用互联接口可以用于在测试装置与其他处理装置间传输数据和控制指令。例如,该测试装置可以经由所述通用互联接口从其他处理装置中获取所需的输入数据,写入该测试装置片上的存储装置(或称存储器)。进一步,该测试装置可以经由所述通用互联接口从其他处理装置中获取控制指令,写入测试装置片上的控制缓存。替代地或可选地,通用互联接口也可以读取测试装置的存储模块中的数据并传输给其他处理装置。
可选的,该组合处理装置700还可以包括存储装置708,其可以分别与所述量化装置702和所述其他处理装置706连接。在一个或多个实施例中,存储装置可以用于保存所述量化装置702和所述其他处理装置706的数据,尤其是卷积层中每层的待量化的神经网络数据所对应的最大值和最小值。
根据应用场景的不同,本披露的组合处理装置700可以作为手机、机器人、无人机、视频监控设备等设备的SOC片上系统,有效降低控制部分的核心面积,提高处理速度,降低整体功耗。在此情况下,该组合处理装置700的通用互联接口704与设备的某些部件相连接。某些部件例如摄像头、显示器、鼠标、键盘、网卡或wifi接口。
在一些实施例里,本披露还公开了一种芯片,其包括了上述测试装置或组合处理装置700。在另一些实施例里,本披露还公开了一种芯片封装结构,其包括了上述芯片。
在一些实施例里,本披露还公开了一种板卡,其包括了上述芯片封装结构。参阅图8,其提供了前述的示例性板卡800,板卡800除了包括上述芯片802以外,还可以包括其他的配套部件,该配套部件包括但不限于:存储器件804、接口装置806和控制器件808。
所述存储器件804与所述芯片封装结构内的芯片802通过总线连接,用于存储数据。所述存储器件804可以包括多组存储单元810。每一组所述存储单元810与所述芯片802通过总线连接。可以理解,每一组所述存储单元810可以是DDR SDRAM(“Double Data RateSDRAM,双倍速率同步动态随机存储器”)。
DDR不需要提高时钟频率就能加倍提高SDRAM的速度。DDR允许在时钟脉冲的上升沿和下降沿读出数据。DDR的速度是标准SDRAM的两倍。在一个实施例中,所述存储器件804可以包括4组所述存储单元810。每一组所述存储单元810可以包括多个DDR4颗粒(芯片)。在一个实施例中,所述芯片内部可以包括4个72位DDR4控制器,上述72位DDR4控制器中64bit用于传输数据,8bit用于ECC校验。
在一个实施例中,每一组所述存储单元810包括多个并联设置的双倍速率同步动态随机存储器。DDR在一个时钟周期内可以传输两次数据。在所述芯片中设置控制DDR的控制器,用于对每个所述存储单元的数据传输与数据存储的控制。
所述接口装置806与所述芯片封装结构内的芯片802电连接。所述接口装置806用于实现所述芯片802与外部设备812(例如服务器或计算机)之间的数据传输。例如在一个实施例中,所述接口装置806可以为标准PCIE接口。比如,待处理的数据由服务器通过标准PCIE接口传递至所述芯片802,实现数据转移。在另一个实施例中,所述接口装置806还可以是其他的接口,本披露并不限制上述其他的接口的具体表现形式,所述接口单元能够实现转接功能即可。另外,所述芯片802的计算结果仍由所述接口装置806传送回外部设备812(例如服务器)。
所述控制器件808与所述芯片802电连接。所述控制器件808用于对所述芯片802的状态进行监控。具体地,所述芯片802与所述控制器件808可以通过SPI接口电连接。所述控制器件808可以包括单片机(Micro Controller Unit,MCU)。在一个或多个实施例中,所述芯片802可以包括多个处理芯片、多个处理核或多个处理电路,可以带动多个负载。因此,所述芯片802可以处于多负载和轻负载等不同的工作状态。通过所述控制器件808可以实现对所述芯片中多个处理芯片、多个处理和/或多个处理电路的工作状态的调控。
在一些实施例里,本披露还公开了一种电子设备或装置,其包括了上述板卡。根据不同的应用场景,电子设备或装置可以包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本披露并不受所描述的动作顺序的限制,因为依据本披露,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本披露所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本披露所提供的几个实施例中,应该理解到,所披露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、光学、声学、磁性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本披露各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,当本披露的技术方案可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本披露各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
在本披露的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。上述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
依据以下条款可更好地理解前述内容:
条款A1、一种用于对神经网络数据进行量化的方法,包括:
获取针对于多组神经网络数据中的每组神经网络数据的量化相关值,以得到与所述多组神经网络数据对应的多个量化相关值;
将所述多个量化相关值中的每个分别与所述多个量化相关值中的极值求比值,以获得多个比值;
根据多个预定的阈值范围对所述多个比值进行划分,以便将与所述多个比值的每个相关联的每组神经网络数据划分到不同的量化集;以及
对于处于同一量化集内的一组或多组神经网络数据执行统一的量化操作。
条款A2、根据条款A1所述的方法,其中所述每组神经网络数据的量化相关值是每组神经网络数据的最大值或绝对值最大值。
条款A3、根据条款A1或A2所述的方法,其中所述多个量化相关值中的极值是多个量化相关值中的最大值或最小值。
条款A4、根据条款A1所述的方法,进一步包括:
在获取所述量化相关值前,根据所述神经网络的目标层的输出通道来将神经网络数据划分成所述多组神经网络数据。
条款A5、根据条款A4所述的方法,其中所述目标层是所述神经网络的卷积层或全连接层。
条款A6、根据条款A1所述的方法,其中所述神经网络数据包括所述神经网络的神经元、权值、偏置和梯度中的至少一种数据。
条款A7、根据条款A1-A6的任意一项所述的方法,其中所述量化操作包括将高精度数据格式表示的神经网络数据量化成低精度数据格式表示的神经网络数据。
条款A8、根据条款A7所述的方法,其中对于处于同一量化集内的一组或多组神经网络数据执行统一的量化操作包括:
根据所述一组或多组神经网络数据中的绝对值最大值和低精度数据格式数据的位宽来确定量化参数;以及
使用所述量化参数来对所述一组或多组神经网络数据执行所述统一的量化操作。
条款A9、一种用于对神经网络数据进行量化的设备,包括:
至少一个处理器;
至少一个存储器,其存储有计算机程序代码,当所述计算机程序代码由所述至少一个处理器执行时,使得所述设备执行根据权利要求1-8的任意一项所述的方法。
条款A10、一种计算机可读存储介质,其上存储有用于对神经网络数据进行量化的计算机程序代码,当所述计算机程序代码由处理器运行时,执行根据条款A1-A8的任意一项所述的方法。
条款A11、一种集成电路装置,包括:
存储单元,其配置用于存储多组神经网络数据;
量化相关值单元,其配置用于获取针对于多组神经网络数据中的每组神经网络数据的量化相关值,以得到与所述多组神经网络数据对应的多个量化相关值;
比值单元,其配置用于将所述多个量化相关值中的每个分别与所述多个量化相关值中的极值求比值,以获得多个比值;
划分单元,其配置用于根据多个预定的阈值范围对所述多个比值进行划分,以便将与所述多个比值的每个相关联的每组神经网络数据划分到不同的量化集;以及
量化单元,其配置用于对于处于同一量化集内的一组或多组神经网络数据执行统一的量化操作。
条款A12、根据条款A11所述的集成电路装置,其中所述每组神经网络数据的量化相关值是每组神经网络数据的最大值或绝对值最大值。
条款A13、根据条款A11或A12所述的集成电路装置,其中所述多个量化相关值中的极值是多个量化相关值中的最大值或最小值。
条款A14、根据条款A11所述的集成电路装置,其中所述划分单元还配置用于:
在获取所述量化相关值前,根据所述神经网络的目标层的输出通道来将所述神经网络数据划分成所述多组神经网络数据。
条款A15、根据条款A14所述的集成电路装置,其中所述目标层是所述神经网络的卷积层或全连接层。
条款A16、根据条款A11所述的集成电路装置,其中所述神经网络数据包括所述神经网络的神经元、权值、偏置和梯度中的至少一种数据。
条款A17、根据条款A11-A16的任意一项所述的集成电路装置,其中所述量化单元配置用于将高精度数据格式表示的神经网络数据量化成低精度数据格式表示的神经网络数据。
条款A18、根据条款A17所述的集成电路装置,其中所述量化单元配置用于:
根据所述一组或多组神经网络数据中的绝对值最大值和低精度数据格式数据的位宽来确定量化参数;以及
使用所述量化参数来对所述一组或多组神经网络数据执行所述统一的量化操作。
条款A19、一种板卡,包括根据条款A11-A18的任意一项所述的集成电路装置。
以上对本披露实施例进行了详细介绍,本文中应用了具体个例对本披露的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本披露的方法及其核心思想;同时,对于本领域的一般技术人员,依据本披露的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本披露的限制。
应当理解,本披露的权利要求、说明书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本披露的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本披露说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
以上对本披露实施例进行了详细介绍,本文中应用了具体个例对本披露的原理及实施方式进行了阐述,以上实施例的说明仅用于帮助理解本披露的方法及其核心思想。同时,本领域技术人员依据本披露的思想,基于本披露的具体实施方式及应用范围上做出的改变或变形之处,都属于本披露保护的范围。综上所述,本说明书内容不应理解为对本披露的限制。
Claims (19)
1.一种用于对神经网络数据进行量化的方法,包括:
获取针对于多组神经网络数据中的每组神经网络数据的量化相关值,以得到与所述多组神经网络数据对应的多个量化相关值;
将所述多个量化相关值中的每个分别与所述多个量化相关值中的极值求比值,以获得多个比值;
根据多个预定的阈值范围对所述多个比值进行划分,以便将与所述多个比值的每个相关联的每组神经网络数据划分到不同的量化集;以及
对于处于同一量化集内的一组或多组神经网络数据执行统一的量化操作。
2.根据权利要求1所述的方法,其中所述每组神经网络数据的量化相关值是每组神经网络数据的最大值或绝对值最大值。
3.根据权利1或2所述的方法,其中所述多个量化相关值中的极值是多个量化相关值中的最大值或最小值。
4.根据权利要求1所述的方法,进一步包括:
在获取所述量化相关值前,根据所述神经网络的目标层的输出通道来将神经网络数据划分成所述多组神经网络数据。
5.根据权利要求4所述的方法,其中所述目标层是所述神经网络的卷积层或全连接层。
6.根据权利要求1所述的方法,其中所述神经网络数据包括所述神经网络的神经元、权值、偏置和梯度中的至少一种数据。
7.根据权利要求1-6的任意一项所述的方法,其中所述量化操作包括将高精度数据格式表示的神经网络数据量化成低精度数据格式表示的神经网络数据。
8.根据权利要求7所述的方法,其中对于处于同一量化集内的一组或多组神经网络数据执行统一的量化操作包括:
根据所述一组或多组神经网络数据中的绝对值最大值和低精度数据格式数据的位宽来确定量化参数;以及
使用所述量化参数来对所述一组或多组神经网络数据执行所述统一的量化操作。
9.一种用于对神经网络数据进行量化的设备,包括:
至少一个处理器;
至少一个存储器,其存储有计算机程序代码,当所述计算机程序代码由所述至少一个处理器执行时,使得所述设备执行根据权利要求1-8的任意一项所述的方法。
10.一种计算机可读存储介质,其上存储有用于对神经网络数据进行量化的计算机程序代码,当所述计算机程序代码由处理器运行时,执行根据权利要求1-8的任意一项所述的方法。
11.一种集成电路装置,包括:
存储单元,其配置用于存储多组神经网络数据;
量化相关值单元,其配置用于获取针对于多组神经网络数据中的每组神经网络数据的量化相关值,以得到与所述多组神经网络数据对应的多个量化相关值;
比值单元,其配置用于将所述多个量化相关值中的每个分别与所述多个量化相关值中的极值求比值,以获得多个比值;
划分单元,其配置用于根据多个预定的阈值范围对所述多个比值进行划分,以便将与所述多个比值的每个相关联的每组神经网络数据划分到不同的量化集;以及
量化单元,其配置用于对于处于同一量化集内的一组或多组神经网络数据执行统一的量化操作。
12.根据权利要求11所述的集成电路装置,其中所述每组神经网络数据的量化相关值是每组神经网络数据的最大值或绝对值最大值。
13.根据权利11或12所述的集成电路装置,其中所述多个量化相关值中的极值是多个量化相关值中的最大值或最小值。
14.根据权利要求11所述的集成电路装置,其中所述划分单元还配置用于:
在获取所述量化相关值前,根据所述神经网络的目标层的输出通道来将所述神经网络数据划分成所述多组神经网络数据。
15.根据权利要求14所述的集成电路装置,其中所述目标层是所述神经网络的卷积层或全连接层。
16.根据权利要求11所述的集成电路装置,其中所述神经网络数据包括所述神经网络的神经元、权值、偏置和梯度中的至少一种数据。
17.根据权利要求11-16的任意一项所述的集成电路装置,其中所述量化单元配置用于将高精度数据格式表示的神经网络数据量化成低精度数据格式表示的神经网络数据。
18.根据权利要求17所述的集成电路装置,其中所述量化单元配置用于:
根据所述一组或多组神经网络数据中的绝对值最大值和低精度数据格式数据的位宽来确定量化参数;以及
使用所述量化参数来对所述一组或多组神经网络数据执行所述统一的量化操作。
19.一种板卡,包括根据权利要求11-18的任意一项所述的集成电路装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010033831.4A CN113112009B (zh) | 2020-01-13 | 2020-01-13 | 用于神经网络数据量化的方法、装置和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010033831.4A CN113112009B (zh) | 2020-01-13 | 2020-01-13 | 用于神经网络数据量化的方法、装置和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113112009A true CN113112009A (zh) | 2021-07-13 |
CN113112009B CN113112009B (zh) | 2023-04-18 |
Family
ID=76709036
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010033831.4A Active CN113112009B (zh) | 2020-01-13 | 2020-01-13 | 用于神经网络数据量化的方法、装置和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113112009B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024043604A1 (ko) * | 2022-08-22 | 2024-02-29 | 삼성전자 주식회사 | 신경망을 통해 이미지를 처리하는 방법 및 그 전자 장치 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190012559A1 (en) * | 2017-07-06 | 2019-01-10 | Texas Instruments Incorporated | Dynamic quantization for deep neural network inference system and method |
CN109388779A (zh) * | 2017-08-03 | 2019-02-26 | 珠海全志科技股份有限公司 | 一种神经网络权重量化方法和神经网络权重量化装置 |
CN109558945A (zh) * | 2017-09-25 | 2019-04-02 | 三星电子株式会社 | 对人工神经网络及浮点神经网络进行量化的方法及装置 |
CN109740739A (zh) * | 2018-12-29 | 2019-05-10 | 北京中科寒武纪科技有限公司 | 神经网络计算装置、神经网络计算方法及相关产品 |
CN109740754A (zh) * | 2018-12-29 | 2019-05-10 | 北京中科寒武纪科技有限公司 | 神经网络计算装置、神经网络计算方法及相关产品 |
CN109993298A (zh) * | 2017-12-29 | 2019-07-09 | 百度在线网络技术(北京)有限公司 | 用于压缩神经网络的方法和装置 |
CN109993296A (zh) * | 2019-04-01 | 2019-07-09 | 北京中科寒武纪科技有限公司 | 量化实现方法及相关产品 |
CN110222821A (zh) * | 2019-05-30 | 2019-09-10 | 浙江大学 | 基于权重分布的卷积神经网络低位宽量化方法 |
CN110245753A (zh) * | 2019-05-27 | 2019-09-17 | 东南大学 | 一种基于幂指数量化的神经网络压缩方法 |
CN110363279A (zh) * | 2018-03-26 | 2019-10-22 | 华为技术有限公司 | 基于卷积神经网络模型的图像处理方法和装置 |
-
2020
- 2020-01-13 CN CN202010033831.4A patent/CN113112009B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190012559A1 (en) * | 2017-07-06 | 2019-01-10 | Texas Instruments Incorporated | Dynamic quantization for deep neural network inference system and method |
CN109388779A (zh) * | 2017-08-03 | 2019-02-26 | 珠海全志科技股份有限公司 | 一种神经网络权重量化方法和神经网络权重量化装置 |
CN109558945A (zh) * | 2017-09-25 | 2019-04-02 | 三星电子株式会社 | 对人工神经网络及浮点神经网络进行量化的方法及装置 |
CN109993298A (zh) * | 2017-12-29 | 2019-07-09 | 百度在线网络技术(北京)有限公司 | 用于压缩神经网络的方法和装置 |
CN110363279A (zh) * | 2018-03-26 | 2019-10-22 | 华为技术有限公司 | 基于卷积神经网络模型的图像处理方法和装置 |
CN109740739A (zh) * | 2018-12-29 | 2019-05-10 | 北京中科寒武纪科技有限公司 | 神经网络计算装置、神经网络计算方法及相关产品 |
CN109740754A (zh) * | 2018-12-29 | 2019-05-10 | 北京中科寒武纪科技有限公司 | 神经网络计算装置、神经网络计算方法及相关产品 |
CN109993296A (zh) * | 2019-04-01 | 2019-07-09 | 北京中科寒武纪科技有限公司 | 量化实现方法及相关产品 |
CN110245753A (zh) * | 2019-05-27 | 2019-09-17 | 东南大学 | 一种基于幂指数量化的神经网络压缩方法 |
CN110222821A (zh) * | 2019-05-30 | 2019-09-10 | 浙江大学 | 基于权重分布的卷积神经网络低位宽量化方法 |
Non-Patent Citations (2)
Title |
---|
孙彦丽等: "基于剪枝与量化的卷积神经网络压缩方法", 《计算机科学》 * |
雷小康等: "基于FPGA的卷积神经网络定点加速", 《计算机应用》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024043604A1 (ko) * | 2022-08-22 | 2024-02-29 | 삼성전자 주식회사 | 신경망을 통해 이미지를 처리하는 방법 및 그 전자 장치 |
Also Published As
Publication number | Publication date |
---|---|
CN113112009B (zh) | 2023-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108108811B (zh) | 神经网络中的卷积计算方法和电子设备 | |
EP4020321A1 (en) | Data processing method, apparatus, computer device, and storage medium | |
JP2022501676A (ja) | データ処理方法、装置、コンピュータデバイス、及び記憶媒体 | |
JP2022501678A (ja) | データ処理方法、装置、コンピュータデバイス、及び記憶媒体 | |
CN111027691B (zh) | 用于神经网络运算、训练的装置、设备及板卡 | |
US11544542B2 (en) | Computing device and method | |
US20220108150A1 (en) | Method and apparatus for processing data, and related products | |
US20230229917A1 (en) | Hybrid multipy-accumulation operation with compressed weights | |
CN110909870B (zh) | 训练装置及方法 | |
WO2021082725A1 (zh) | Winograd卷积运算方法及相关产品 | |
CN112765540A (zh) | 数据处理方法、装置及相关产品 | |
CN113112009B (zh) | 用于神经网络数据量化的方法、装置和计算机可读存储介质 | |
CN112085176A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN112308201A (zh) | 神经网络量化方法、装置、芯片、电子设备及板卡 | |
CN113469333B (zh) | 执行神经网络模型的人工智能处理器、方法及相关产品 | |
EP4024287A1 (en) | Method and apparatus for processing data, and related product | |
CN113112008B (zh) | 用于神经网络数据量化的方法、装置和计算机可读存储介质 | |
CN113111997B (zh) | 用于神经网络数据量化的方法、装置和相关产品 | |
CN114692865A (zh) | 一种神经网络量化训练方法、装置及相关产品 | |
CN111125627A (zh) | 用于池化多维矩阵的方法及相关产品 | |
CN114580625A (zh) | 用于训练神经网络的方法、设备和计算机可读存储介质 | |
CN111144559A (zh) | 用于训练神经网络的设备、方法和集成电路板卡 | |
CN112784206A (zh) | winograd卷积运算方法、装置、设备及存储介质 | |
CN112085151A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN113033760A (zh) | 用于测试神经网络中算子精度的方法、测试装置及其系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |