CN111767984A - 一种基于固定移位的8位整型全量化推理方法及装置 - Google Patents
一种基于固定移位的8位整型全量化推理方法及装置 Download PDFInfo
- Publication number
- CN111767984A CN111767984A CN202010519588.7A CN202010519588A CN111767984A CN 111767984 A CN111767984 A CN 111767984A CN 202010519588 A CN202010519588 A CN 202010519588A CN 111767984 A CN111767984 A CN 111767984A
- Authority
- CN
- China
- Prior art keywords
- point type
- fixed point
- adjustment value
- dynamic adjustment
- layer
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000013139 quantization Methods 0.000 title claims abstract description 30
- 238000006073 displacement reaction Methods 0.000 title abstract description 4
- 238000003062 neural network model Methods 0.000 claims abstract description 36
- 230000004913 activation Effects 0.000 claims abstract description 21
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 21
- 238000004364 calculation method Methods 0.000 claims description 17
- 239000011159 matrix material Substances 0.000 claims description 9
- 238000005070 sampling Methods 0.000 claims description 9
- 238000006243 chemical reaction Methods 0.000 claims description 6
- 238000009826 distribution Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000013527 convolutional neural network Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
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/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)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种基于固定移位的8位整型全量化推理方法及装置,方法包括:获取训练后保存的浮点型的神经网络模型;按照通道计算神经网络模型的每一层中每个通道的权重的第一动态调整值;使用KL散度算法计算每一层的激活值的第二动态调整值;将第一动态调整值和第二动态调整值由浮点型转换成定点型;根据总移位数,定点型的第一动态调整值和第二动态调整,计算每一层输入的定点目标动态调整值;将权重转换成定点权重;在进行推理的过程中,针对神经网络模型的每一层,根据定点型第二动态调整值将本层的输入转换成8位定点型,并根据定点权重和定点目标动态调整值计算得到本层的输出以作为下一层的输入;通过输出层输出8位定点型的结果数据。
Description
技术领域
本发明涉及数据处理技术领域,更具体地,涉及一种基于固定移位的8位整型全量化推理方法及装置。
背景技术
卷积神经网络(Convolutional Neural Networks,CNNs)在图像分类、目标检测、人脸识别等领域取得了优越的成果,但由于网络结构的复杂性和计算延时,在存储资源和计算资源相对不足的嵌入式平台实现CNNs的实时前向推理,需要在控制精度损失的条件下,压缩神经网络的模型大小以及提升模型计算效率。
现有技术中,对神经网络每一层进行均匀量化,对于权重和激活值进行量化,然后进行定点乘加,达到加速效果。但是现有技术存在以下问题:
1)激活值采用均匀量化,虽然计算量小,但是量化误差很大,几乎不可用。
2)权重按层量化,对于多通道卷积层误差远大于按通道量化。
3)现有技术在推理过程中依然需要进行浮点计算,在AI Chip这种仅支持定点运算的设备上不可用。
发明内容
鉴于上述问题,本发明提出了一种基于固定移位的8位整型全量化推理方法和相应的装置,其可以按通道全定点量化大大减小浮点转换到定点的误差,并且在推理过程中不涉及到浮点操作,全定点移位操作,不但可验证模型全量化后结果误差是否符合AI Chip需求,而且对于硬件更加友好。
根据本发明实施例的第一方面,提供一种基于固定移位的8位整型全量化推理方法,包括:
获取训练后保存的浮点型的神经网络模型;
按照通道计算所述神经网络模型的每一层中每个通道的权重的第一动态调整值;
使用KL散度算法计算所述神经网络模型的每一层的激活值的第二动态调整值;
将所述神经网络模型的每一层的第一动态调整值和所述第二动态调整值由浮点型转换成定点型;
确定总移位数,并根据所述总移位数,定点型的第一动态调整值和第二动态调整,计算所述每一层输入的定点目标动态调整值;
根据所述定点型的第一动态调整值将所述权重转换成定点权重;
在进行推理的过程中,针对所述神经网络模型的每一层,根据所述定点型第二动态调整值将本层的输入转换成8位定点型,并根据所述定点权重和所述定点目标动态调整值计算得到本层的输出以作为下一层的输入;
通过输出层输出8位定点型的结果数据。
在一个实施例中,优选地,使用KL散度算法计算所述神经网络模型的每一层的激活值的第二动态调整值,包括:
使用KL散度算法拟合出最小采样间隔的阈值;
根据所述阈值计算所述激活值的第二动态调整值。
在一个实施例中,优选地,采用第一公式将所述第一动态调整值由浮点型转换成定点型,所述第一公式为:
int(scaleweight*2M)
其中,scaleweight表示所述第一动态调整值,M表示所述第一动态值对应的浮点型转换成定点型的移位数;
采用第二公式将所述第二动态调整值由浮点型转换成定点型,所述第二公式为:
int(scaleactivate*2N)
其中,scaleactivate表示所述第二动态调整值,N表示所述第二动态值对应的浮点型转换成定点型的移位数;
采用第三公式计算所述每一层输入的定点目标动态调整值,所述第三公式为:
其中,scalein表示所述定点目标动态调整值,scaleactivate表示所述第二动态调整值,scaleweight表示所述第一动态调整值,M表示所述第一动态值对应的浮点型转换成定点型的移位数,N表示所述第二动态值对应的浮点型转换成定点型的移位数,Position表示所述总移位数。
在一个实施例中,优选地,采用第四公式根据所述定点型第二动态调整值将本层的输入转换成8位定点型,所述第四公式为:
bottomint8=(bottomint*scaleactivate)>>N>>Position
其中,bottomint8表示本层的8位定点型输入,bottomint表示本层的输入,>>表示右移位,N表示所述第二动态值对应的浮点型转换成定点型的移位数,Position表示所述总移位数;
根据所述定点权重和所述定点目标动态调整值计算得到本层的输出以作为下一层的输入,包括:
根据所述定点权重和所述定点目标动态调整值,采用矩阵点成算法得到本层的输出以作为下一层的输入。
在一个实施例中,优选地,通过输出层输出8位定点型的结果数据,包括:
将所述输出层的上一层的输出值向左移位Position,输出移位后的8位定点型的结果数据,其中,Position表示所述总移位数。
根据本发明实施例的第二方面,提供一种基于固定移位的8位整型全量化推理装置,包括:
获取模块,用于获取训练后保存的浮点型的神经网络模型;
第一计算模块,用于按照通道计算所述神经网络模型的每一层中每个通道的权重的第一动态调整值;
第二计算模块,用于使用KL散度算法计算所述神经网络模型的每一层的激活值的第二动态调整值;
第一转换模块,用于将所述神经网络模型的每一层的第一动态调整值和所述第二动态调整值由浮点型转换成定点型;
第三计算模块,用于确定总移位数,并根据所述总移位数,定点型的第一动态调整值和第二动态调整,计算所述每一层输入的定点目标动态调整值;
第二转换模块,用于根据所述定点型的第一动态调整值将所述权重转换成定点权重;
第四计算模块,用于在进行推理的过程中,针对所述神经网络模型的每一层,根据所述定点型第二动态调整值将本层的输入转换成8位定点型,并根据所述定点权重和所述定点目标动态调整值计算得到本层的输出以作为下一层的输入;
输出模块,用于通过输出层输出8位定点型的结果数据。
在一个实施例中,优选地,所述第二计算模块包括:
拟合单元,用于使用KL散度算法拟合出最小采样间隔的阈值;
计算单元,用于根据所述阈值计算所述激活值的第二动态调整值。
在一个实施例中,优选地,采用第一公式将所述第一动态调整值由浮点型转换成定点型,所述第一公式为:
int(scaleweight*2M)
其中,scaleweight表示所述第一动态调整值,M表示所述第一动态值对应的浮点型转换成定点型的移位数;
采用第二公式将所述第二动态调整值由浮点型转换成定点型,所述第二公式为:
int(scaleactivate*2N)
其中,scaleactivate表示所述第二动态调整值,N表示所述第二动态值对应的浮点型转换成定点型的移位数;
采用第三公式计算所述每一层输入的定点目标动态调整值,所述第三公式为:
其中,scalein表示所述定点目标动态调整值,scaleactivate表示所述第二动态调整值,scaleweight表示所述第一动态调整值,M表示所述第一动态值对应的浮点型转换成定点型的移位数,N表示所述第二动态值对应的浮点型转换成定点型的移位数,Position表示所述总移位数。
在一个实施例中,优选地,采用第四公式根据所述定点型第二动态调整值将本层的输入转换成8位定点型,所述第四公式为:
bottomint8=(bottomint*scaleactivate)>>N>>Position
其中,bottomint8表示本层的8位定点型输入,bottomint表示本层的输入,>>表示右移位,N表示所述第二动态值对应的浮点型转换成定点型的移位数,Position表示所述总移位数;
所述第四计算模块用于:
根据所述定点权重和所述定点目标动态调整值,采用矩阵点成算法得到本层的输出以作为下一层的输入。
在一个实施例中,优选地,所述输出模块用于:
将所述输出层的上一层的输出值向左移位Position,输出移位后的8位定点型的结果数据,其中,Position表示所述总移位数。
根据本发明实施例的第三方面,提供一种基于固定移位的8位整型全量化推理装置,包括:
存储器和处理器;
所述存储器用于保存所述处理器执行计算机程序时所使用的数据;
所述处理器用于执行计算机程序以实现上述第一方面所述的实施例中任意一项所述的方法。
根据本发明实施例的第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在设备上运行时,所述设备执行如第一方面实施例中任一项所述的方法。
本发明实施例中,可以按通道全定点量化大大减小浮点转换到定点的误差,并且在推理过程中不涉及到浮点操作,全定点移位操作,不但可验证模型全量化后结果误差是否符合AI Chip需求,而且对于硬件更加友好。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例的一种基于固定移位的8位整型全量化推理方法的流程图。
图2是本发明一个实施例的一种基于固定移位的8位整型全量化推理方法中步骤S103的流程图。
图3是本发明一个实施例的一种基于固定移位的8位整型全量化推理装置的框图。
图4是本发明一个实施例的一种基于固定移位的8位整型全量化推理装置中第二计算模块的框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
在本发明的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明一个实施例的一种基于固定移位的8位整型全量化推理方法的流程图,如图1所示,基于固定移位的8位整型全量化推理方法包括:
步骤S101,获取训练后保存的浮点型的神经网络模型。
步骤S102,按照通道计算所述神经网络模型的每一层中每个通道的权重的第一动态调整值。
步骤S103,使用KL散度算法计算所述神经网络模型的每一层的激活值的第二动态调整值。
步骤S104,将所述神经网络模型的每一层的第一动态调整值和所述第二动态调整值由浮点型转换成定点型。
在一个实施例中,优选地,采用第一公式将所述第一动态调整值由浮点型转换成定点型,所述第一公式为:
int(scaleweight*2M)
其中,scaleweight表示所述第一动态调整值,M表示所述第一动态值对应的浮点型转换成定点型的移位数;
采用第二公式将所述第二动态调整值由浮点型转换成定点型,所述第二公式为:
int(scaleactivate*2N)
其中,scaleactivate表示所述第二动态调整值,N表示所述第二动态值对应的浮点型转换成定点型的移位数。
步骤S105,确定总移位数,并根据所述总移位数,定点型的第一动态调整值和第二动态调整,计算所述每一层输入的定点目标动态调整值。
采用第三公式计算所述每一层输入的定点目标动态调整值,所述第三公式为:
其中,scalein表示所述定点目标动态调整值,scaleactivate表示所述第二动态调整值,scaleweight表示所述第一动态调整值,M表示所述第一动态值对应的浮点型转换成定点型的移位数,N表示所述第二动态值对应的浮点型转换成定点型的移位数,Position表示所述总移位数。
步骤S106,根据所述定点型的第一动态调整值将所述权重转换成定点权重。
步骤S107,在进行推理的过程中,针对所述神经网络模型的每一层,根据所述定点型第二动态调整值将本层的输入转换成8位定点型,并根据所述定点权重和所述定点目标动态调整值计算得到本层的输出以作为下一层的输入。
在一个实施例中,优选地,采用第四公式根据所述定点型第二动态调整值将本层的输入转换成8位定点型,所述第四公式为:
bottomint8=(bottomint*scaleactivate)>>N>>Position
其中,bottomint8表示本层的8位定点型输入,bottomint表示本层的输入,>>表示右移位,N表示所述第二动态值对应的浮点型转换成定点型的移位数,Position表示所述总移位数。
根据所述定点权重和所述定点目标动态调整值计算得到本层的输出以作为下一层的输入,包括:
根据所述定点权重和所述定点目标动态调整值,采用矩阵点成算法得到本层的输出以作为下一层的输入。
步骤S108,通过输出层输出8位定点型的结果数据。在一个实施例中,优选地,通过输出层输出8位定点型的结果数据,包括:
将所述输出层的上一层的输出值向左移位Position,输出移位后的8位定点型的结果数据,其中,Position表示所述总移位数。
在该实施例中,以按通道全定点量化大大减小浮点转换到定点的误差,并且在推理过程中不涉及到浮点操作,全定点移位操作,不但可验证模型全量化后结果误差是否符合AI Chip需求,而且对于硬件更加友好。
图2是本发明一个实施例的一种基于固定移位的8位整型全量化推理方法中步骤S103的流程图。
如图2所示,在一个实施例中,优选地,步骤S103包括步骤201-步骤S202:
步骤201,使用KL散度算法拟合出最小采样间隔的阈值。具体地,最小采样间隔的阈值通过以下步骤得出:
1)准备校准数据集
2)对每一个激活值设置bins为2048,设置采样间隔xmax/bins,根据校准数据集初始化激活值分布(采用对称量化获取每一个间隔样本的数量),其中,xmax表示激活值。
3)对分布归一化,设置target_bins为128,针对[target_bins,2048]的每一个threshold(阈值)执行以下步骤:
a)将[threshold,2048]的分布相加为threshold_sum,将原始distribution[threshold]赋值为threshold_sum,将新的分布叫做P矩阵。
b)划分间隔为threshold/(target_bins),对原始分布进行重新采样保证维度和P矩阵相同,叫Q矩阵。
步骤202,根据所述阈值计算所述激活值的第二动态调整值。
具体地,根据公式127/((threshold+0.5)*间隔)求得激活值的第二动态调整值。
图3是本发明一个实施例的一种基于固定移位的8位整型全量化推理装置的框图。
如图3所示,根据本发明实施例的第二方面,提供一种基于固定移位的8位整型全量化推理装置,包括:
获取模块31,用于获取训练后保存的浮点型的神经网络模型;
第一计算模块32,用于按照通道计算所述神经网络模型的每一层中每个通道的权重的第一动态调整值;
第二计算模块33,用于使用KL散度算法计算所述神经网络模型的每一层的激活值的第二动态调整值;
第一转换模块34,用于将所述神经网络模型的每一层的第一动态调整值和所述第二动态调整值由浮点型转换成定点型;
第三计算模块35,用于确定总移位数,并根据所述总移位数,定点型的第一动态调整值和第二动态调整,计算所述每一层输入的定点目标动态调整值;
第二转换模块36,用于根据所述定点型的第一动态调整值将所述权重转换成定点权重;
第四计算模块37,用于在进行推理的过程中,针对所述神经网络模型的每一层,根据所述定点型第二动态调整值将本层的输入转换成8位定点型,并根据所述定点权重和所述定点目标动态调整值计算得到本层的输出以作为下一层的输入;
输出模块38,用于通过输出层输出8位定点型的结果数据。
图4是本发明一个实施例的一种基于固定移位的8位整型全量化推理装置中第二计算模块的框图。
如图4所示,在一个实施例中,优选地,所述第二计算模块33包括:
拟合单元41,用于使用KL散度算法拟合出最小采样间隔的阈值;
计算单元42,用于根据所述阈值计算所述激活值的第二动态调整值。
在一个实施例中,优选地,采用第一公式将所述第一动态调整值由浮点型转换成定点型,所述第一公式为:
int(scaleweight*2M)
其中,scaleweight表示所述第一动态调整值,M表示所述第一动态值对应的浮点型转换成定点型的移位数;
采用第二公式将所述第二动态调整值由浮点型转换成定点型,所述第二公式为:
int(scaleactivate*2N)
其中,scaleactivate表示所述第二动态调整值,N表示所述第二动态值对应的浮点型转换成定点型的移位数;
采用第三公式计算所述每一层输入的定点目标动态调整值,所述第三公式为:
其中,scalein表示所述定点目标动态调整值,scaleactivate表示所述第二动态调整值,scaleweight表示所述第一动态调整值,M表示所述第一动态值对应的浮点型转换成定点型的移位数,N表示所述第二动态值对应的浮点型转换成定点型的移位数,Position表示所述总移位数。
在一个实施例中,优选地,采用第四公式根据所述定点型第二动态调整值将本层的输入转换成8位定点型,所述第四公式为:
bottomint8=(bottomint*scaleactivate)>>N>>Position
其中,bottomint8表示本层的8位定点型输入,bottomint表示本层的输入,>>表示右移位,N表示所述第二动态值对应的浮点型转换成定点型的移位数,Position表示所述总移位数;
所述第四计算模块37用于:
根据所述定点权重和所述定点目标动态调整值,采用矩阵点成算法得到本层的输出以作为下一层的输入。
在一个实施例中,优选地,所述输出模块38用于:
将所述输出层的上一层的输出值向左移位Position,输出移位后的8位定点型的结果数据,其中,Position表示所述总移位数。
根据本发明实施例的第三方面,提供一种基于固定移位的8位整型全量化推理装置,包括:
存储器和处理器;
所述存储器用于保存所述处理器执行计算机程序时所使用的数据;
所述处理器用于执行计算机程序以实现上述第一方面所述的实施例中任意一项所述的方法。
根据本发明实施例的第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在设备上运行时,所述设备执行如第一方面实施例中任一项所述的方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁盘或光盘等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上对本发明所提供的一种便捷式多功能设备进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种基于固定移位的8位整型全量化推理方法,其特征在于,包括:
获取训练后保存的浮点型的神经网络模型;
按照通道计算所述神经网络模型的每一层中每个通道的权重的第一动态调整值;
使用KL散度算法计算所述神经网络模型的每一层的激活值的第二动态调整值;
将所述神经网络模型的每一层的第一动态调整值和所述第二动态调整值由浮点型转换成定点型;
确定总移位数,并根据所述总移位数,定点型的第一动态调整值和第二动态调整,计算所述每一层输入的定点目标动态调整值;
根据所述定点型的第一动态调整值将所述权重转换成定点权重;
在进行推理的过程中,针对所述神经网络模型的每一层,根据所述定点型第二动态调整值将本层的输入转换成8位定点型,并根据所述定点权重和所述定点目标动态调整值计算得到本层的输出以作为下一层的输入;
通过输出层输出8位定点型的结果数据。
2.根据权利要求1所述的方法,其特征在于,使用KL散度算法计算所述神经网络模型的每一层的激活值的第二动态调整值,包括:
使用KL散度算法拟合出最小采样间隔的阈值;
根据所述阈值计算所述激活值的第二动态调整值。
3.根据权利要求1所述的方法,其特征在于,采用第一公式将所述第一动态调整值由浮点型转换成定点型,所述第一公式为:
int(scaleweight*2M)
其中,scaleweight表示所述第一动态调整值,M表示所述第一动态值对应的浮点型转换成定点型的移位数;
采用第二公式将所述第二动态调整值由浮点型转换成定点型,所述第二公式为:
int(scaleactivate*2N)
其中,scaleactivate表示所述第二动态调整值,N表示所述第二动态值对应的浮点型转换成定点型的移位数;
采用第三公式计算所述每一层输入的定点目标动态调整值,所述第三公式为:
其中,scalein表示所述定点目标动态调整值,scaleactivate表示所述第二动态调整值,scaleweight表示所述第一动态调整值,M表示所述第一动态值对应的浮点型转换成定点型的移位数,N表示所述第二动态值对应的浮点型转换成定点型的移位数,Position表示所述总移位数。
4.根据权利要求3所述的方法,其特征在于,采用第四公式根据所述定点型第二动态调整值将本层的输入转换成8位定点型,所述第四公式为:
bottomint8=(bottomint*scaleactivate)>>N>>Position
其中,bottomint8表示本层的8位定点型输入,bottomint表示本层的输入,>>表示右移位,N表示所述第二动态值对应的浮点型转换成定点型的移位数,Position表示所述总移位数;
根据所述定点权重和所述定点目标动态调整值计算得到本层的输出以作为下一层的输入,包括:
根据所述定点权重和所述定点目标动态调整值,采用矩阵点成算法得到本层的输出以作为下一层的输入。
5.根据权利要求4所述的方法,其特征在于,通过输出层输出8位定点型的结果数据,包括:
将所述输出层的上一层的输出值向左移位Position,输出移位后的8位定点型的结果数据,其中,Position表示所述总移位数。
6.一种基于固定移位的8位整型全量化推理装置,其特征在于,包括:
获取模块,用于获取训练后保存的浮点型的神经网络模型;
第一计算模块,用于按照通道计算所述神经网络模型的每一层中每个通道的权重的第一动态调整值;
第二计算模块,用于使用KL散度算法计算所述神经网络模型的每一层的激活值的第二动态调整值;
第一转换模块,用于将所述神经网络模型的每一层的第一动态调整值和所述第二动态调整值由浮点型转换成定点型;
第三计算模块,用于确定总移位数,并根据所述总移位数,定点型的第一动态调整值和第二动态调整,计算所述每一层输入的定点目标动态调整值;
第二转换模块,用于根据所述定点型的第一动态调整值将所述权重转换成定点权重;
第四计算模块,用于在进行推理的过程中,针对所述神经网络模型的每一层,根据所述定点型第二动态调整值将本层的输入转换成8位定点型,并根据所述定点权重和所述定点目标动态调整值计算得到本层的输出以作为下一层的输入;
输出模块,用于通过输出层输出8位定点型的结果数据。
7.根据权利要求6所述的装置,其特征在于,所述第二计算模块包括:
拟合单元,用于使用KL散度算法拟合出最小采样间隔的阈值;
计算单元,用于根据所述阈值计算所述激活值的第二动态调整值。
8.根据权利要求6所述的装置,其特征在于,采用第一公式将所述第一动态调整值由浮点型转换成定点型,所述第一公式为:
int(scaleweight*2M)
其中,scaleweight表示所述第一动态调整值,M表示所述第一动态值对应的浮点型转换成定点型的移位数;
采用第二公式将所述第二动态调整值由浮点型转换成定点型,所述第二公式为:
int(scaleactivate*2N)
其中,scaleactivate表示所述第二动态调整值,N表示所述第二动态值对应的浮点型转换成定点型的移位数;
采用第三公式计算所述每一层输入的定点目标动态调整值,所述第三公式为:
其中,scalein表示所述定点目标动态调整值,scaleactivate表示所述第二动态调整值,scaleweight表示所述第一动态调整值,M表示所述第一动态值对应的浮点型转换成定点型的移位数,N表示所述第二动态值对应的浮点型转换成定点型的移位数,Position表示所述总移位数。
9.根据权利要求8所述的装置,其特征在于,采用第四公式根据所述定点型第二动态调整值将本层的输入转换成8位定点型,所述第四公式为:
bottomint8=(bottomint*scaleactivate)>>N>>Position
其中,bottomint8表示本层的8位定点型输入,bottomint表示本层的输入,>>表示右移位,N表示所述第二动态值对应的浮点型转换成定点型的移位数,Position表示所述总移位数;
所述第四计算模块用于:
根据所述定点权重和所述定点目标动态调整值,采用矩阵点成算法得到本层的输出以作为下一层的输入。
10.根据权利要求9所述的装置,其特征在于,所述输出模块用于:
将所述输出层的上一层的输出值向左移位Position,输出移位后的8位定点型的结果数据,其中,Position表示所述总移位数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010519588.7A CN111767984A (zh) | 2020-06-09 | 2020-06-09 | 一种基于固定移位的8位整型全量化推理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010519588.7A CN111767984A (zh) | 2020-06-09 | 2020-06-09 | 一种基于固定移位的8位整型全量化推理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111767984A true CN111767984A (zh) | 2020-10-13 |
Family
ID=72720433
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010519588.7A Pending CN111767984A (zh) | 2020-06-09 | 2020-06-09 | 一种基于固定移位的8位整型全量化推理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111767984A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107644254A (zh) * | 2017-09-09 | 2018-01-30 | 复旦大学 | 一种卷积神经网络权重参数量化训练方法及系统 |
CN109685198A (zh) * | 2017-10-19 | 2019-04-26 | 三星电子株式会社 | 用于量化神经网络的参数的方法和装置 |
CN109902745A (zh) * | 2019-03-01 | 2019-06-18 | 成都康乔电子有限责任公司 | 一种基于cnn的低精度训练与8位整型量化推理方法 |
US20190340492A1 (en) * | 2018-05-04 | 2019-11-07 | Microsoft Technology Licensing, Llc | Design flow for quantized neural networks |
CN110555508A (zh) * | 2018-05-31 | 2019-12-10 | 北京深鉴智能科技有限公司 | 人工神经网络调整方法和装置 |
CN110610237A (zh) * | 2019-09-17 | 2019-12-24 | 普联技术有限公司 | 模型的量化训练方法、装置及存储介质 |
-
2020
- 2020-06-09 CN CN202010519588.7A patent/CN111767984A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107644254A (zh) * | 2017-09-09 | 2018-01-30 | 复旦大学 | 一种卷积神经网络权重参数量化训练方法及系统 |
CN109685198A (zh) * | 2017-10-19 | 2019-04-26 | 三星电子株式会社 | 用于量化神经网络的参数的方法和装置 |
US20190340492A1 (en) * | 2018-05-04 | 2019-11-07 | Microsoft Technology Licensing, Llc | Design flow for quantized neural networks |
CN110555508A (zh) * | 2018-05-31 | 2019-12-10 | 北京深鉴智能科技有限公司 | 人工神经网络调整方法和装置 |
CN109902745A (zh) * | 2019-03-01 | 2019-06-18 | 成都康乔电子有限责任公司 | 一种基于cnn的低精度训练与8位整型量化推理方法 |
CN110610237A (zh) * | 2019-09-17 | 2019-12-24 | 普联技术有限公司 | 模型的量化训练方法、装置及存储介质 |
Non-Patent Citations (1)
Title |
---|
朱倩倩: "《深度神经网络的仿生矩阵约简与量化方法》", 《计算机应用》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109543816B (zh) | 一种基于权重捏合的卷积神经网络计算方法和系统 | |
CN111783961A (zh) | 基于激活定点拟合的卷积神经网络训练后量化方法及系统 | |
CN109767000A (zh) | 基于Winograd算法的神经网络卷积方法及装置 | |
CN112200300B (zh) | 卷积神经网络运算方法及装置 | |
CN111814973B (zh) | 一种适用于神经常微分方程网络计算的存内计算系统 | |
CN111985495A (zh) | 模型部署方法、装置、系统及存储介质 | |
CN110929865A (zh) | 网络量化方法、业务处理方法及相关产品 | |
CN112925637A (zh) | 用于一边缘运算网络的负载平衡装置及方法 | |
CN111950715A (zh) | 基于自适应动态移位的8位整型全量化推理方法及装置 | |
CN111967608A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN118036661B (zh) | 大语言模型混合精度量化方法、装置、电子设备及介质 | |
CN112990438A (zh) | 基于移位量化操作的全定点卷积计算方法、系统及设备 | |
CN116700920A (zh) | 云原生混合部署集群资源调度方法及装置 | |
CN111383157A (zh) | 图像处理方法、装置、车载运算平台、电子设备及系统 | |
CN110210611B (zh) | 一种用于卷积神经网络计算的动态自适应数据截断方法 | |
CN114065121A (zh) | 一种求解伊辛模型的计算方法及设备 | |
CN111767984A (zh) | 一种基于固定移位的8位整型全量化推理方法及装置 | |
CN110276448B (zh) | 一种模型压缩方法及装置 | |
CN116912483A (zh) | 目标检测方法、电子设备以及存储介质 | |
CN112613521B (zh) | 基于数据转换的多层次数据分析系统及方法 | |
US20220207346A1 (en) | Data processing method and device used in neural network | |
CN117332809A (zh) | 神经网络推理芯片、方法及终端设备 | |
CN114298291A (zh) | 一种模型量化处理系统及一种模型量化处理方法 | |
CN114065923A (zh) | 一种卷积神经网络的压缩方法、系统及加速装置 | |
CN110955530A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201013 |