CN112308201A - 神经网络量化方法、装置、芯片、电子设备及板卡 - Google Patents

神经网络量化方法、装置、芯片、电子设备及板卡 Download PDF

Info

Publication number
CN112308201A
CN112308201A CN201910702813.8A CN201910702813A CN112308201A CN 112308201 A CN112308201 A CN 112308201A CN 201910702813 A CN201910702813 A CN 201910702813A CN 112308201 A CN112308201 A CN 112308201A
Authority
CN
China
Prior art keywords
quantization
neural network
layer
target
calculation
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.)
Withdrawn
Application number
CN201910702813.8A
Other languages
English (en)
Inventor
不公告发明人
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cambricon Technologies Corp Ltd
Original Assignee
Cambricon Technologies Corp Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Cambricon Technologies Corp Ltd filed Critical Cambricon Technologies Corp Ltd
Priority to CN201910702813.8A priority Critical patent/CN112308201A/zh
Priority to PCT/CN2020/086183 priority patent/WO2021017546A1/zh
Publication of CN112308201A publication Critical patent/CN112308201A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections

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)
  • Image Analysis (AREA)

Abstract

本公开涉及神经网络量化方法、装置、芯片、电子设备及板卡,所述方法包括选定目标神经网络的目标量化层,所述目标量化层包括所述目标神经网络的计算层中的一层或多层;对选定的所述目标量化层进行量化。根据本公开各实施例,能够在实现神经网络量化的同时,降低量化造成的网络精度损失。

Description

神经网络量化方法、装置、芯片、电子设备及板卡
技术领域
本公开涉及神经网络应用领域,尤其涉及一种神经网络量化方法、装置、芯片、电子设备及板卡。
背景技术
随着人工智能和物联网技术的发展,神经网络算法在移动端设备的计算需求增加,一般神经网络模型参数为浮点类型,神经网络会占用大量的存储空间用于保存模型参数,并且在计算过程中占用大量的访存和计算资源。因此,现有技术中通常会对神经网络进行量化,以减少神经网络的资源占用。
但是现有的神经网络量化方式,容易产生较大的量化误差,导致量化后的神经网络的精度损失较大。
发明内容
本公开提出了一种神经网络量化方法、装置、芯片、电子设备及板卡,以在实现神经网络量化的同时,降低量化造成的网络精度损失。
根据本公开的第一方面,提供了一种神经网络量化方法,所述方法包括:
选定目标神经网络的目标量化层,所述目标量化层包括所述目标神经网络的计算层中的一层或多层;
对选定的所述目标量化层进行量化。
根据本公开的第二方面,提供了一种神经网络量化方法,所述方法包括:
计算得到目标神经网络全网络量化后的网络精度损失;
若所述网络精度损失达到或超过预设精度损失阈值,则执行本公开的第一方面所述的方法。
根据本公开的第三方面,提供了一种神经网络量化装置,所述装置包括:
选择模块,被配置为选定目标神经网络的目标量化层,所述目标量化层包括所述目标神经网络的计算层中的一层或多层;
量化模块,被配置为对选定的所述目标量化层进行量化。
根据本公开的第四方面,提供了一种神经网络量化装置,所述装置包括:
全网络量化评价模块,被配置为计算得到目标神经网络全网络量化后的网络精度损失;
本公开的第三方面所述的装置。
本公开的第五方面提供一种人工智能芯片,所述芯片包括本公开的第三方面所述的装置。
本公开的第六方面提供一种电子设备,所述电子设备包括本公开的第五方面所述的人工智能芯片。
本公开的第七方面提供一种板卡,其特征在于,所述板卡包括:存储器件、接口装置和控制器件以及本公开的第五方面所述的人工智能芯片;
其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;
所述存储器件,用于存储数据;
所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;
所述控制器件,用于对所述人工智能芯片的状态进行监控。
根据本公开的各方面的技术方案,可以通过对神经网络各计算层进行选择性量化,只是对神经网络中部分计算层进行针对性量化,在实现量化的同时,又可以降低量化造成的网络精度损失。
另外,由于选定了满足预定量化条件的计算层,作为目标量化层,可以进一步保证选择的目标量化层在量化后的精度损失较小,从而可以进一步降低量化造成的网络精度损失。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出本公开实施例提供的一种神经网络量化方法的方法流程图。
图2示出本公开实施例提供的一种神经网络量化方法的量化过程流程图。
图3示出本公开实施例提供的另一种神经网络量化方法的方法流程图。
图4示出本公开实施例提供的又一种神经网络量化方法的方法流程图。
图5示出本公开实施例提供的另一种神经网络量化方法的量化过程流程图。
图6示出本公开实施例中的一种神经网络的构架示意图。
图7示出本公开实施例提供的一种神经网络量化装置的模块结构示意图。
图8示出本公开实施例提供的另一种神经网络量化装置的模块结构示意图。
图9示出根据本公开实施例的板卡的结构框图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
应当理解,本公开的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本公开说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本公开。如在本公开说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本公开说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
本公开实施例中出现的“多个”是指两个或两个以上。本公开实施例中出现的第一、第二等描述,仅作示意与区分描述对象之用,没有次序之分,也不表示本公开实施例中对设备个数的特别限定,不能构成对本公开实施例的任何限制。
图6提供了一种神经网络构架示意图,如图6所示,神经网络构架可以包括多层结构,该多层结构如图6所示,可以包括:输入层、卷积层1、batchnorm层、卷积层2、中间层(依据不同功能的神经网络构架具有不同的中间层,该中间层可以为至少一层)、卷积层n、全连接层、激活(例如激活函数:softmax)层。对于神经网络构架,对于计算量较大的层可以称为计算层,例如卷积层、全连接层等等,当然在实际应用中,上述计算层还可以包含其他类型的层,另外,本申请提供的图6中的神经网络构架仅仅是为了举例说明,本申请中的神经网络并不局限如图6所示的构架。
根据本公开实施例的神经网络量化方法可应用于处理器中,该处理器可以是通用处理器,例如CPU(Central Processing Unit,中央处理器),也可以是用于执行人工智能运算的人工智能处理器(IPU)。人工智能运算可包括机器学习运算,类脑运算等。其中,机器学习运算包括神经网络运算、k-means运算、支持向量机运算等。该人工智能处理器可例如包括GPU(Graphics Processing Unit,图形处理单元)、NPU(Neural-Network ProcessingUnit,神经网络处理单元)、DSP(Digital Signal Process,数字信号处理单元)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)芯片中的一种或组合。本公开对处理器的具体类型不作限制。
在一种可能的实现方式中,本公开中所提及的处理器可包括多个处理单元,每个处理单元可以独立运行所分配到的各种任务,如:卷积运算任务、池化任务或全连接任务等。本公开对处理单元及处理单元所运行的任务不作限制。
图1示出本公开实施例提供的一种神经网络量化方法的方法流程图。所述方法可以在如图6所示的神经网络构架下实现,当然,也可以在其他的神经网络构架下实现,对应所述方法所应用的神经网络的具体构架,本公开不作限定。如图1所示的方法可以由神经网络芯片执行,也可以采用通用芯片或包含芯片的电子设备来实现,该通用芯片可以是中央处理器CPU、图像处理器GPU等。具体的,如图1所示,本公开提供的一种神经网络量化方法的一种实施例可以包括:
S110:选定目标神经网络的目标量化层,所述目标量化层包括所述目标神经网络的计算层中的一层或多层。
其中,所述目标神经网络可以是需要量化的任意神经网络,所述任意神经网络的计算层可以包括卷积层、全连接层、LRN归一化层、反卷积层、Reorg层、Mormalize归一化层中的任意一种或多种。当然,在本公开其他实施例提供的其他神经网络构架中,也可以包括其他的计算层。
其中,选定的目标量化层可以是目标神经网络的部分计算层,只针对符合预定量化条件的部分计算层进行量化,可以降低因量化导致的网络精度损失。当然,在本公开一些实施例中,如果目标神经网络的全部计算层均符合预定量化条件,也可以对目标神经网络的全部计算层进行量化。
本公开一种可能的实现方式中,选定神经网络的目标量化层的方式可以包括:
选定所述目标神经网络的计算层中满足预定量化条件的计算层,作为所述目标量化层。
其中,通过述预定量化条件设定,可以筛选出量化前后精度损失较少的计算层。这样,只针对量化前后精度损失较少的计算层进行量化,而对量化前后精度损失较大的计算层不进行量化,在实现对目标神经网络量化的同时,保证目标神经网络的精度损失较小。具体的,在本公开一些实施例中,所述预定量化条件设定的标准,可以是能够选出量化前后精度损失在可接受范围内的计算层,具体的,所述预定量化条件的设定,本公开不作限定。
本公开一种可能的实现方式中,选定所述目标神经网络的计算层中满足预定量化条件的计算层,作为所述目标量化层可以包括:
计算得到所述目标神经网络的各计算层的预定量化参数;
根据所述各计算层的预定量化参数,选定所述各计算层中满足预定量化条件的一层或多层作为所述目标量化层。
在本公开一些可能的实现方式中,所述各计算层的所述预定量化参数可以是该计算层的输出数据的量化误差参数、权值数据的量化误差参数、计算量、算子类型中的任意一种或多种。当然,在本公开的其他实现方式中,所述预定量化参数也可以是其他类型的参数,具体的,本公开对此不作限定。所述预定量化参数作为各计算层是否可以进行量化的量化评价指标。预定量化参数,可以通过对目标神经网络输入测试数据,进行初步量化(例如低精度量化)而得到。经过初步量化求得预定量化参数后,可根据预定量化参数,选定所述各计算层中满足预定量化条件的一层或多层作为所述目标量化层,并对目标量化层进行量化。
进一步的,在本公开一种可能的实现方式中,根据所述各计算层的预定量化参数,选定所述各计算层中满足预定量化条件的一层或多层作为所述目标量化层可以包括:
根据所述各计算层的预定量化参数,计算得到量化参数阈值;
在所述目标神经网络的计算层中,选定所述预定量化参数与所述量化误差阈值满足预设数值关系的计算层,作为所述目标量化层。
其中,所述预设数值关系可以是数值大小关系,比如在本公开一些实施方式中,所述预设数值关系可以是所述预设量化参数大于或等于所述量化参数阈值。而在本公开其他一些实施例中,所述预设数值关系也可以是所述预设量化参数小于所述量化参数阈值。具体的,可以所述预定量化参数的类型决定。
本公开一种可能的实现方式中,所述预定量化参数包括计算层的量化误差参数,例如计算层的输出数据的量化误差参数或者权值数据的量化误差参数,对应的,根据所述各计算层的预定量化参数,选定所述各计算层中满足预定量化条件的一层或多层作为所述目标量化层可以包括:
根据所述各计算层的量化误差参数,计算得到量化误差参数阈值;
在所述目标神经网络的计算层中,选定量化误差参数的均值大于所述量化参数阈值的计算层,作为所述目标量化层。
本公开一种可能的实现方式中,所述预定量化参数包括输出数据的量化误差参数,对应的,所述计算得到所述目标神经网络的各计算层的预定量化参数可以包括:
计算得到各计算层的量化评价数据{o1,o2,o3,…,oN},其中,1~N为各计算层编号;
对所述各计算层的所述量化评价数据{o1,o2,o3,…,oN}进行量化得到量化后数据{o′1,o′2,o′3,…,o′N};
根据所述量化评价数据和所述量化后数据,计算得到所述各计算层的量化误差参数{y0,y1,y2,…,yN}。
本公开一种可能的实现方式中,所述量化误差参数阈值的计算方式可以包括:
计算得到各计算层中每个计算层的多个量化评价数据对应的量化误差参数的均值
Figure BDA0002151265890000081
例如,可以在输入多个输入数据的情况下,计算得到各计算层的多个量化误差参数,并针对各计算层,分别计算该层的多个量化误差参数的均值
Figure BDA0002151265890000082
根据所述各计算层的所述均值
Figure BDA0002151265890000083
采用预定的数据分析方式计算得到所述量化误差参数阈值m。
其中,在本公开一些可能的实现方式中,所述量化评价数据可以是浮点输出数据、输入数据、权值数据等任意量化前后会产生数据误差的数据中的一种或多种。
其中,N表示目标神经网络的计算层的总层数,在确定所述量化误差参数阈值m后,可以根据第i层计算层的所述均值
Figure BDA0002151265890000091
(第i层的量化误差参数的均值)与所述阈值m的大小关系,确定该第i层是否作为目标量化层。
本公开可能的实现方式中,计算得到m的数据分析方式可以采用基于箱型图的数据分析方法、基于正态分布的一元离群点检测方法、基于K近邻的密度检测方法等数据分析方法。本公开一种可能的实现方式中,采用基于正态分布的一元离群点检测方法,计算得到量化误差参数数据的均值μ和方差σ,则阈值m为(μ+k×σ),其中,k可以是任意实数,比如k=1,则阈值为μ+σ,对应的,量化误差参数数据中小于阈值的数据占68.27%。如果k=1.96,则阈值我μ+1.96×σ,则量化误差参数数据中小于阈值的数据占95%。具体的,k的确定可以以预期的量化后精度的高低来确定,如果需要量化后的神经网络精度更高(即量化前后精度损失更小),则k可以设置为更小的数值,具体的,本公开实现方式中可以根据实际的量化后精度需求来确定k或确定所述阈值,本公开对此不作限定。
本公开可能的实现方式中,所述量化误差参数可以包括信号-量化噪声比SQNR、L2距离、KL距离、Wasserstein距离中的任意一种或多种。
图2示出本公开实施例提供的一种神经网络量化方法的量化过程流程图。
具体的,如图2所示,本公开一种可能的实现方式中,所述量化误差参数可以是信号-量化噪声比SQNR,对应的,所述根据所述量化评价数据和所述量化后数据,计算得到所述各计算层的量化误差参数可以包括:
计算每个所述量化评价数据和其对应的量化后数据的量化误差;
将每个所述量化评价数据的平方,除以其对应的量化误差的平方,计算得到所述SQNR。
其中,SQNR的定义为原始信号x的平方除以量化误差n的平方,其中,量化误差表征量化后信号相对于量化前信号的差异或损失。SQNR反映了最大标称信号强度与量化误差之间的关系,SQNR越大则表示量化误差越小。具体的,SQNR的表达式为:
Figure BDA0002151265890000101
对应的,
Figure BDA0002151265890000102
由于量化步长
Figure BDA0002151265890000103
远小于x,所以可以认为量化误差n是均值为0的均匀分布:
Figure BDA0002151265890000104
Figure BDA0002151265890000105
从SQNR的计算表达式可以看出,增大原始信号x、减小原始信号取值范围可使信噪比增大。SQNR是一个比较好的量化误差的衡量参数,因为它能够综合考虑信号的大值的保留和分布的集中性的要求。
具体的,如图2所示,以SQNR作为量化误差参数,对目标神经网络的选择性量化的过程为:
(1)对网络进行浮点正向推理计算得到各层的浮点输出值{o1,o2,o3,…,oN};该步骤可通过将测试数据输入网络来进行上述计算;
(2)对网络各层的输出值进行低精度量化得到量化后数据{o′1,o′2,o′3,…,o′N};这里的低精度,可以是比针对目标计算层进行量化的量化精度低的任意精度,本领域技术人员可根据需要来设定。
(3)计算各层输出数据的量化误差SQNR:{y0,y1,y2,…,yN};其中可以以{o1,o2,o3,…,oN}作为原始信号x,根据{o′1,o′2,o′3,…,o′N}和{o1,o2,o3,…,oN}确定量化误差n,根据以上计算SQNR的公式来计算各层输出数据的量化误差SQNR:{y0,y1,y2,…,yN}。
(4)使用多个输入计算得到多个量化误差后,统计各层的平均量化误差SQNR:
Figure BDA0002151265890000111
(5)对各层的平均量化误差进行数据分析,得到量化误差阈值m;
(6)对于
Figure BDA0002151265890000112
的层进行量化,对于
Figure BDA0002151265890000113
的层不量化,得到量化后网络。
S120:对选定的所述目标量化层进行量化。
本公开可能的实现方式中,可以根据权值的量化参数或输入数据的量化参数对所述目标量化层进行量化。
图3示出本公开实施例提供的另一种神经网络量化方法的方法流程图。具体的,如图3所示,所述方法可以包括:
S210:计算得到目标神经网络全网络量化后的网络精度损失,其中,网络精度损失表征全网络量化后的目标神经网络的量化后精度相对于目标神经网络的原始精度的损失或差异。这里的精度包括网络的预测精度或识别精度。
S220:若所述网络精度损失达到或超过预设精度损失阈值,则选定目标神经网络的目标量化层,所述目标量化层包括所述目标神经网络的计算层中的一层或多层。
其中,全网络量化是指对目标神经网络的所有层均进行量化,所述预设精度损失阈值可以根据对全网络量化后的神经网络的精度损失要求来确定。
其中,所述目标神经网络可以是需要量化的任意神经网络,所述任意神经网络的计算层可以包括卷积层、全连接层、LRN归一化层、反卷积层、Reorg层、Mormalize归一化层中的任意一种或多种。当然,在本公开其他实施例提供的其他神经网络构架中,也可以包括其他的计算层。
其中,选定的目标量化层可以是目标神经网络的部分计算层,只针对符合预定量化条件的部分计算层进行量化,可以降低因量化导致的网络精度损失。当然,在本公开一些实施例中,如果目标神经网络的全部计算层均符合预定量化条件,也可以对目标神经网络的全部计算层进行量化。
本公开一种可能的实现方式中,选定神经网络的目标量化层的方式可以包括:
选定所述目标神经网络的计算层中满足预定量化条件的计算层,作为所述目标量化层。
其中,通过述预定量化条件设定,可以筛选出量化前后精度损失较少的计算层。这样,只针对量化前后精度损失较少的计算层进行量化,而对量化前后精度损失较大的计算层不进行量化,在实现对目标神经网络量化的同时,保证目标神经网络的精度损失较小。具体的,在本公开一些实施例中,所述预定量化条件设定的标准,可以是能够选出量化前后精度损失在可接受范围内的计算层,具体的,所述预定量化条件的设定,本公开不作限定。
本公开一种可能的实现方式中,选定所述目标神经网络的计算层中满足预定量化条件的计算层,作为所述目标量化层可以包括:
计算得到所述目标神经网络的各计算层的预定量化参数;
根据所述各计算层的预定量化参数,选定所述各计算层中满足预定量化条件的一层或多层作为所述目标量化层。
在本公开一些可能的实现方式中,所述各计算层的所述预定量化参数可以是该计算层的输出数据的量化误差参数、权值数据的量化误差参数、计算量、算子类型中的任意一种或多种。当然,在本公开的其他实现方式中,所述预定量化参数也可以是其他类型的参数,具体的,本公开对此不作限定。所述预定量化参数作为各计算层是否可以进行量化的量化评价指标。
进一步的,在本公开一种可能的实现方式中,根据所述各计算层的预定量化参数,选定所述各计算层中满足预定量化条件的一层或多层作为所述目标量化层可以包括:
根据所述各计算层的预定量化参数,计算得到量化参数阈值;
在所述目标神经网络的计算层中,选定所述预定量化参数与所述量化误差阈值满足预设数值关系的计算层,作为所述目标量化层。
其中,所述预设数值关系可以是数值大小关系,比如在本公开一些实施方式中,所述预设数值关系可以是所述预设量化参数大于或等于所述量化参数阈值。而在本公开其他一些实施例中,所述预设数值关系也可以是所述预设量化参数小于所述量化参数阈值。具体的,可以所述预定量化参数的类型决定。
本公开一种可能的实现方式中,所述预定量化参数包括计算层的量化误差参数,对应的,根据所述各计算层的预定量化参数,选定所述各计算层中满足预定量化条件的一层或多层作为所述目标量化层可以包括:
根据所述各计算层的量化误差参数,计算得到量化误差参数阈值;
在所述目标神经网络的计算层中,选定量化误差参数的均值大于所述量化参数阈值的计算层,作为所述目标量化层。
本公开一种可能的实现方式中,所述预定量化参数包括输出数据的量化误差参数,对应的,所述计算得到所述目标神经网络的各计算层的预定量化参数可以包括:
计算得到各计算层的浮点输出数据{o1,o2,o3,…,oN};
对所述各计算层的所述输出数据进行量化得到量化后数据{o′1,o′2,o′3,…,o′N};
根据所述输出数据和所述量化后数据,计算得到所述各计算层的量化误差参数{y0,y1,y2,…,yN}。
本公开一种可能的实现方式中,所述量化误差参数阈值的计算方式可以包括:
计算得到各计算层的量化误差参数的均值
Figure BDA0002151265890000141
根据所述各计算层的所述均值
Figure BDA0002151265890000142
采用预定的数据分析方式计算得到所述量化误差参数阈值m。
其中,N表示目标神经网络的计算层的总层数,在确定所述量化误差参数阈值m后,可以根据第i层计算层的所述均值
Figure BDA0002151265890000143
(第i层的量化误差参数的均值)与所述阈值m的大小关系,确定该第i层是否作为目标量化层。
本公开可能的实现方式中,计算得到m的数据分析方式可以采用基于箱型图的数据分析方法、基于正态分布的一元离群点检测方法、基于K近邻的密度检测方法等数据分析方法。本公开一种可能的实现方式中,采用基于正态分布的一元离群点检测方法,计算得到量化误差参数数据的均值μ和方差σ,则阈值m为(μ+k×σ)。
本公开可能的实现方式中,所述量化误差参数可以包括信号-量化噪声比SQNR、L2距离、KL距离、Wasserstein距离中的任意一种或多种。
S230:对选定的所述目标量化层进行量化。
本公开可能的实现方式中,可以根据权值的量化参数或输入数据的量化参数对所述目标量化层进行量化。
图4示出本公开实施例提供的又一种神经网络量化方法的方法流程图。具体的,如图4所示,所述方法可以包括:
S310:计算得到目标神经网络全网络量化后的网络精度损失。
S320:若所述网络精度损失低于所述预设精度损失阈值,则对所述目标神经网络进行全网络量化。
图5示出本公开实施例提供的另一种神经网络量化方法的量化过程流程图。如图5所示,量化过程整个流程如下:
(1)选取部分输入数据组成精度试探数据集。
(2)利用所述试探数据集,计算得到所述目标神经网络(float)的原始精度,和全网络量化后的目标神经网络(8bit)的量化后精度。
(3)根据所述原始数据和所述量化后精度,计算得到所述网络精度损失。
(4)若所述网络精度损失大于预设的精度损失阈值,则对目标神经网络
(5)若所述网络精度损失小于或等于预设的精度损失阈值,则对目标神经网络进行全网络量化(进行8bit计算)。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本公开并不受所描述的动作顺序的限制,因为依据本公开,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本公开所必须的。
进一步需要说明的是,虽然图1至图5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1至图5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
基于上述各种实现方式所述的方法,本公开还提供一种神经网络量化装置。图7示出本公开实施例提供的一种神经网络量化装置的模块结构示意图。具体的,如图7所示,所述装置可以包括:
选择模块101,被配置为选定目标神经网络的目标量化层,所述目标量化层包括所述目标神经网络的计算层中的一层或多层;
量化模块102,被配置为对选定的所述目标量化层进行量化。
本公开一种可能的实现方式中,所述选择模块101,可以进一步被配置为:
选定所述目标神经网络的计算层中满足预定量化条件的计算层,作为所述目标量化层。
本公开一种可能的实现方式中,所述目标神经网络的计算层包括卷积层、全连接层、LRN归一化层、反卷积层、Reorg层、Mormalize归一化层中的任意一种或多种。
本公开一种可能的实现方式中,所述选择模块101,进一步被配置为:
计算得到所述目标神经网络的各计算层的预定量化参数;
根据所述各计算层的预定量化参数,选定所述各计算层中满足预定量化条件的一层或多层作为所述目标量化层。
本公开一种可能的实现方式中,根据所述各计算层的预定量化参数,选定所述各计算层中满足预定量化条件的一层或多层作为所述目标量化层包括:
在所述目标神经网络的计算层中,选定所述预定量化参数满足预设数值条件的计算层,作为所述目标量化层。
本公开一种可能的实现方式中,所述计算层的预定量化参数包括所述计算层的输出数据的量化误差参数、权值数据的量化误差参数、计算量、算子类型中的任意一种或多种。
本公开一种可能的实现方式中,根据所述各计算层的预定量化参数,选定所述各计算层中满足预定量化条件的一层或多层作为所述目标量化层包括:
根据所述各计算层的预定量化参数,计算得到量化参数阈值;
在所述目标神经网络的计算层中,选定所述预定量化参数与所述量化误差阈值满足预设数值关系的计算层,作为所述目标量化层。
本公开一种可能的实现方式中,所述预定量化参数包括计算层的量化误差参数,对应的,根据所述各计算层的预定量化参数,选定所述各计算层中满足预定量化条件的一层或多层作为所述目标量化层包括:
根据所述各计算层的量化误差参数,计算得到量化误差参数阈值;
在所述目标神经网络的计算层中,选定量化误差参数的均值大于所述量化参数阈值的计算层,作为所述目标量化层。
本公开一种可能的实现方式中,所述预定量化参数包括输出数据的量化误差参数,对应的,所述计算得到所述目标神经网络的各计算层的预定量化参数包括:
计算得到各计算层的量化评价数据;
对所述各计算层的所述量化评价数据进行量化得到量化后数据;
根据所述量化评价数据和所述量化后数据,计算得到所述各计算层的量化误差参数。
本公开一种可能的实现方式中,所述根据所述各计算层的量化误差参数,计算得到量化误差参数阈值包括:
计算得到所述各计算层中每个计算层的多个量化评价数据对应的量化误差参数的均值;
根据所述各计算层的所述均值,计算得到所述量化误差参数阈值。
本公开一种可能的实现方式中,所述量化误差参数包括信号-量化噪声比SQNR、L2距离、KL距离、Wasserstein距离中的任意一种或多种。
本公开一种可能的实现方式中,所述根据所述各计算层的量化误差参数,计算得到量化误差参数阈值,包括采用下述任意一种计算方法计算得到所述量化误差参数阈值:
基于箱型图的数据分析方法、基于正态分布的一元离群点检测方法、基于K近邻的密度检测方法。本公开一种可能的实现方式中,所述量化评价数据包括输入数据、输出数据、权值数据中的任意一种或多种。
本公开一种可能的实现方式中,所述量化误差参数包括SQNR,对应的,所述根据所述量化评价数据和所述量化后数据,计算得到所述各计算层的量化误差参数包括:
计算每个所述量化评价数据和其对应的量化后数据的量化误差;
将每个所述量化评价数据的平方,除以其对应的量化误差的平方,计算得到所述SQNR。
对于上述装置中涉及到的与图1、图2对应的实现方式中相同或相似的流程,具体的执行方式可以按照图1、图2对应的各实现方式所提供的执行方式执行。
图8示出本公开实施例提供的另一种神经网络量化装置的模块结构示意图。具体的,如图8所示,所述装置可以包括:
全网络量化评价模块201,被配置为计算得到目标神经网络全网络量化后的网络精度损失;
还可以包括图7对应的实现方式所述的装置,即还可以包括选择模块202和量化模块203,对应的,若所述网络精度损失达到或超过预设精度损失阈值,则选择模块202进行目标量化层的选择,对应的,量化模块203对目标量化层进行选择性量化。
本公开一种可能的实现方式中,所述量化模块203,还可以被配置为:
若所述网络精度损失低于所述预设精度损失阈值,则对所述目标神经网络进行全网络量化。
本公开一种可能的实现方式中,所述全网络量化评价模块201,进一步被配置为:
选取部分输入数据组成精度试探数据集;
利用所述精度试探数据集,计算得到所述目标神经网络的原始精度,和全网络量化后的目标神经网络的量化后精度;
根据所述原始数据和所述量化后精度,计算得到所述网络精度损失。
对于上述装置中涉及到的与图1至图5对应的实现方式中相同或相似的流程,具体的执行方式可以按照图1至图5对应的各实现方式所提供的执行方式执行。
应该理解,上述的装置实施例仅是示意性的,本公开的装置还可通过其它的方式实现。例如,上述实施例中所述单元/模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,多个单元、模块或组件可以结合,或者可以集成到另一个系统,或一些特征可以忽略或不执行。
另外,若无特别说明,在本公开各个实施例中的各功能单元/模块可以集成在一个单元/模块中,也可以是各个单元/模块单独物理存在,也可以两个或两个以上单元/模块集成在一起。上述集成的单元/模块既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元/模块如果以硬件的形式实现时,该硬件可以是数字电路,模拟电路等等。硬件结构的物理实现包括但不局限于晶体管,忆阻器等等。若无特别说明,所述人工智能处理器可以是任何适当的硬件处理器,比如CPU、GPU、FPGA、DSP和ASIC等等。若无特别说明,所述存储单元可以是任何适当的磁存储介质或者磁光存储介质,比如,阻变式存储器RRAM(Resistive Random Access Memory)、动态随机存取存储器DRAM(Dynamic RandomAccess Memory)、静态随机存取存储器SRAM(Static Random-Access Memory)、增强动态随机存取存储器EDRAM(Enhanced Dynamic Random Access Memory)、高带宽内存HBM(High-Bandwidth Memory)、混合存储立方HMC(Hybrid Memory Cube)等等。
所述集成的单元/模块如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
在一种可能的实现方式中,还公开了一种人工智能芯片,其包括了上述各实现方式中所述的装置。
在一种可能的实现方式中,还公开了一种板卡,其包括存储器件、接口装置和控制器件以及上述人工智能芯片;其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;所述存储器件,用于存储数据;所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;所述控制器件,用于对所述人工智能芯片的状态进行监控。
图9示出根据本公开实施例的板卡的结构框图,参阅图9,上述板卡除了包括上述芯片389以外,还可以包括其他的配套部件,该配套部件包括但不限于:存储器件390、接口装置391和控制器件392;
所述存储器件390与所述人工智能芯片通过总线连接,用于存储数据。所述存储器件可以包括多组存储单元393。每一组所述存储单元与所述人工智能芯片通过总线连接。可以理解,每一组所述存储单元可以是DDR SDRAM(英文:Double Data Rate SDRAM,双倍速率同步动态随机存储器)。
DDR不需要提高时钟频率就能加倍提高SDRAM的速度。DDR允许在时钟脉冲的上升沿和下降沿读出数据。DDR的速度是标准SDRAM的两倍。在一个实施例中,所述存储装置可以包括4组所述存储单元。每一组所述存储单元可以包括多个DDR4颗粒(芯片)。在一个实施例中,所述人工智能芯片内部可以包括4个72位DDR4控制器,上述72位DDR4控制器中64bit用于传输数据,8bit用于ECC校验。可以理解,当每一组所述存储单元中采用DDR4-3200颗粒时,数据传输的理论带宽可达到25600MB/s。
在一个实施例中,每一组所述存储单元包括多个并联设置的双倍速率同步动态随机存储器。DDR在一个时钟周期内可以传输两次数据。在所述芯片中设置控制DDR的控制器,用于对每个所述存储单元的数据传输与数据存储的控制。
所述接口装置与所述人工智能芯片电连接。所述接口装置用于实现所述人工智能芯片与外部设备(例如服务器或计算机)之间的数据传输。例如在一个实施例中,所述接口装置可以为标准PCIE接口。比如,待处理的数据由服务器通过标准PCIE接口传递至所述芯片,实现数据转移。优选的,当采用PCIE 3.0X 16接口传输时,理论带宽可达到16000MB/s。在另一个实施例中,所述接口装置还可以是其他的接口,本公开并不限制上述其他的接口的具体表现形式,所述接口单元能够实现转接功能即可。另外,所述人工智能芯片的计算结果仍由所述接口装置传送回外部设备(例如服务器)。
所述控制器件与所述人工智能芯片电连接。所述控制器件用于对所述人工智能芯片的状态进行监控。具体的,所述人工智能芯片与所述控制器件可以通过SPI接口电连接。所述控制器件可以包括单片机(Micro Controller Unit,MCU)。如所述人工智能芯片可以包括多个处理芯片、多个处理核或多个处理电路,可以带动多个负载。因此,所述人工智能芯片可以处于多负载和轻负载等不同的工作状态。通过所述控制装置可以实现对所述人工智能芯片中多个处理芯片、多个处理和或多个处理电路的工作状态的调控。
在一种可能的实现方式中,公开了一种电子设备,其包括了上述人工智能芯片。电子设备包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。上述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
依据以下条款可更好地理解前述内容:
条款A1,一种神经网络量化方法,所述方法包括:
选定目标神经网络的目标量化层,所述目标量化层包括所述目标神经网络的计算层中的一层或多层;
对选定的所述目标量化层进行量化。
条款A2,如条款A1所述的一种神经网络量化方法,所述选定神经网络的目标量化层包括:
选定所述目标神经网络的计算层中满足预定量化条件的计算层,作为所述目标量化层。
条款A3,如条款A1或A2所述的一种神经网络量化方法,所述目标神经网络的计算层包括卷积层、全连接层、LRN归一化层、反卷积层、Reorg层、Mormalize归一化层中的任意一种或多种。
条款A4,如条款A2所述的一种神经网络量化方法,选定所述目标神经网络的计算层中满足预定量化条件的计算层,作为所述目标量化层包括:
计算得到所述目标神经网络的各计算层的预定量化参数;
根据所述各计算层的预定量化参数,选定所述各计算层中满足预定量化条件的一层或多层作为所述目标量化层。
条款A5,如条款A4所述的一种神经网络量化方法,根据所述各计算层的预定量化参数,选定所述各计算层中满足预定量化条件的一层或多层作为所述目标量化层包括:
在所述目标神经网络的计算层中,选定所述预定量化参数满足预设数值条件的计算层,作为所述目标量化层。
条款A6,如条款A4或A5所述的一种神经网络量化方法,所述计算层的预定量化参数包括所述计算层的输出数据的量化误差参数、权值数据的量化误差参数、计算量、算子类型中的任意一种或多种。
条款A7,如条款A4至A6中任意一项所述的一种神经网络量化方法,根据所述各计算层的预定量化参数,选定所述各计算层中满足预定量化条件的一层或多层作为所述目标量化层包括:
根据所述各计算层的预定量化参数,计算得到量化参数阈值;
在所述目标神经网络的计算层中,选定所述预定量化参数与所述量化误差阈值满足预设数值关系的计算层,作为所述目标量化层。
条款A8,如条款A4至A7中任意一项所述的一种神经网络量化方法,所述预定量化参数包括计算层的量化误差参数,对应的,根据所述各计算层的预定量化参数,选定所述各计算层中满足预定量化条件的一层或多层作为所述目标量化层包括:
根据所述各计算层的量化误差参数,计算得到量化误差参数阈值;
在所述目标神经网络的计算层中,选定量化误差参数的均值大于所述量化参数阈值的计算层,作为所述目标量化层。
条款A9,如条款A4至A8所述的一种神经网络量化方法,所述预定量化参数包括输出数据的量化误差参数,对应的,所述计算得到所述目标神经网络的各计算层的预定量化参数包括:
计算得到各计算层的量化评价数据;
对所述各计算层的所述量化评价数据进行量化得到量化后数据;
根据所述量化评价数据和所述量化后数据,计算得到所述各计算层的量化误差参数。
条款A10,如条款A8或A9所述的一种神经网络量化方法,所述根据所述各计算层的量化误差参数,计算得到量化误差参数阈值包括:
计算得到所述各计算层中每个计算层的多个量化评价数据对应的量化误差参数的均值;
根据所述各计算层的所述均值,计算得到所述量化误差参数阈值。
条款A11,如条款A8至A10所述的一种神经网络量化方法,所述量化误差参数包括信号-量化噪声比SQNR、L2距离、KL距离、Wasserstein距离中的任意一种或多种。
条款A12,如条款A10所述的一种神经网络量化方法,所述根据所述各计算层的量化误差参数,计算得到量化误差参数阈值,包括采用下述任意一种计算方法计算得到所述量化误差参数阈值:
基于箱型图的数据分析方法、基于正态分布的一元离群点检测方法、基于K近邻的密度检测方法。
条款A13,如条款A9所述的一种神经网络量化方法,所述量化评价数据包括输入数据、输出数据、权值数据中的任意一种或多种。
条款A14,如条款A9、A11、A13中任意一项所述的一种神经网络量化方法,所述量化误差参数包括SQNR,对应的,所述根据所述量化评价数据和所述量化后数据,计算得到所述各计算层的量化误差参数包括:
计算每个所述量化评价数据和其对应的量化后数据的量化误差;
将每个所述量化评价数据的平方,除以其对应的量化误差的平方,计算得到所述SQNR。
条款A15,一种神经网络量化方法,所述方法包括:
计算得到目标神经网络全网络量化后的网络精度损失;
若所述网络精度损失达到或超过预设精度损失阈值,则执行条款A1至A14中任意一项所述的方法。
条款A16,如条款A15所述的一种神经网络量化方法,若所述网络精度损失低于所述预设精度损失阈值,则对所述目标神经网络进行全网络量化。
条款A17,如条款A15或A16所述的一种神经网络量化方法,所述计算得到目标神经网络全网络量化后的网络精度损失包括:
选取部分输入数据组成精度试探数据集;
利用所述精度试探数据集,计算得到所述目标神经网络的原始精度,和全网络量化后的目标神经网络的量化后精度;
根据所述原始数据和所述量化后精度,计算得到所述网络精度损失。
条款A18,一种神经网络量化装置,所述装置包括:
选择模块,被配置为选定目标神经网络的目标量化层,所述目标量化层包括所述目标神经网络的计算层中的一层或多层;
量化模块,被配置为对选定的所述目标量化层进行量化。
条款A19,如条款A18所述的一种神经网络量化装置,所述选择模块,进一步被配置为:
选定所述目标神经网络的计算层中满足预定量化条件的计算层,作为所述目标量化层。
条款A20,如条款A18或A19所述的一种神经网络量化装置,所述目标神经网络的计算层包括卷积层、全连接层、LRN归一化层、反卷积层、Reorg层、Mormalize归一化层中的任意一种或多种。
条款A21,如条款A19所述的一种神经网络量化装置,所述选择模块,进一步被配置为:
计算得到所述目标神经网络的各计算层的预定量化参数;
根据所述各计算层的预定量化参数,选定所述各计算层中满足预定量化条件的一层或多层作为所述目标量化层。
条款A22,如条款A21所述的一种神经网络量化装置,根据所述各计算层的预定量化参数,选定所述各计算层中满足预定量化条件的一层或多层作为所述目标量化层包括:
在所述目标神经网络的计算层中,选定所述预定量化参数满足预设数值条件的计算层,作为所述目标量化层。
条款A23,如条款A21或A22所述的一种神经网络量化装置,所述计算层的预定量化参数包括所述计算层的输出数据的量化误差参数、权值数据的量化误差参数、计算量、算子类型中的任意一种或多种。
条款A24,如条款A21至A23中任意一项所述的一种神经网络量化装置,根据所述各计算层的预定量化参数,选定所述各计算层中满足预定量化条件的一层或多层作为所述目标量化层包括:
根据所述各计算层的预定量化参数,计算得到量化参数阈值;
在所述目标神经网络的计算层中,选定所述预定量化参数与所述量化误差阈值满足预设数值关系的计算层,作为所述目标量化层。
条款A25,如条款A21至A24中任意一项所述的一种神经网络量化装置,所述预定量化参数包括计算层的量化误差参数,对应的,根据所述各计算层的预定量化参数,选定所述各计算层中满足预定量化条件的一层或多层作为所述目标量化层包括:
根据所述各计算层的量化误差参数,计算得到量化误差参数阈值;
在所述目标神经网络的计算层中,选定量化误差参数的均值大于所述量化参数阈值的计算层,作为所述目标量化层。
条款A26,如条款A21至A25所述的一种神经网络量化装置,所述预定量化参数包括输出数据的量化误差参数,对应的,所述计算得到所述目标神经网络的各计算层的预定量化参数包括:
计算得到各计算层的量化评价数据;
对所述各计算层的所述量化评价数据进行量化得到量化后数据;
根据所述量化评价数据和所述量化后数据,计算得到所述各计算层的量化误差参数。
条款A27,如条款A25或A26所述的一种神经网络量化装置,所述根据所述各计算层的量化误差参数,计算得到量化误差参数阈值包括:
计算得到所述各计算层中每个计算层的多个量化评价数据对应的量化误差参数的均值;
根据所述各计算层的所述均值,计算得到所述量化误差参数阈值。
条款A28,如条款A25至A27中任意一项所述的一种神经网络量化装置,所述量化误差参数包括信号-量化噪声比SQNR、L2距离、KL距离、Wasserstein距离中的任意一种或多种。
条款A29,如条款A27所述的一种神经网络量化装置,所述根据所述各计算层的量化误差参数,计算得到量化误差参数阈值,包括采用下述任意一种计算方法计算得到所述量化误差参数阈值:
基于箱型图的数据分析方法、基于正态分布的一元离群点检测方法、基于K近邻的密度检测方法。
条款A30,如条款A26所述的一种神经网络量化装置,所述量化评价数据包括输入数据、输出数据、权值数据中的任意一种或多种。
条款A31,如条款A25、A28、A30中任意一项所述的一种神经网络量化装置,所述量化误差参数包括SQNR,对应的,所述根据所述量化评价数据和所述量化后数据,计算得到所述各计算层的量化误差参数包括:
计算每个所述量化评价数据和其对应的量化后数据的量化误差;
将每个所述量化评价数据的平方,除以其对应的量化误差的平方,计算得到所述SQNR。
条款A32,一种神经网络量化装置,所述装置包括:
全网络量化评价模块,被配置为计算得到目标神经网络全网络量化后的网络精度损失;
如条款A8至A31中任意一项所述的装置。
条款A33,如条款A32所述的一种神经网络量化装置,所述量化模块,还被配置为:
若所述网络精度损失低于所述预设精度损失阈值,则对所述目标神经网络进行全网络量化。
条款A34,如条款A32或A33所述的一种神经网络量化装置,所述全网络量化评价模块,进一步被配置为:
选取部分输入数据组成精度试探数据集;
利用所述精度试探数据集,计算得到所述目标神经网络的原始精度,和全网络量化后的目标神经网络的量化后精度;
根据所述原始数据和所述量化后精度,计算得到所述网络精度损失。
条款A35,一种人工智能芯片,所述芯片包括如条款A18至A34中任意一项所述的装置。
条款A36,一种电子设备,所述电子设备包括如条款A35所述的人工智能芯片。
条款A37,一种板卡,所述板卡包括:存储器件、接口装置和控制器件以及如条款A35所述的人工智能芯片;
其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;
所述存储器件,用于存储数据;
所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;
所述控制器件,用于对所述人工智能芯片的状态进行监控。
条款A38,根据条款A37所述的板卡,所述存储器件包括:多组存储单元,每一组所述存储单元与所述人工智能芯片通过总线连接,所述存储单元为:DDR SDRAM;
所述芯片包括:DDR控制器,用于对每个所述存储单元的数据传输与数据存储的控制;
所述接口装置为:标准PCIE接口。
若所述目标神经网络的计算层的预定量化参数满足预设量化条件,则确定该计算层为目标量化层。
以上对本公开实施例进行了详细介绍,本文中应用了具体个例对本公开的原理及实施方式进行了阐述,以上实施例的说明仅用于帮助理解本公开的方法及其核心思想。同时,本领域技术人员依据本公开的思想,基于本公开的具体实施方式及应用范围上做出的改变或变形之处,都属于本公开保护的范围。综上所述,本说明书内容不应理解为对本公开的限制。

Claims (10)

1.一种神经网络量化方法,其特征在于,所述方法包括:
选定目标神经网络的目标量化层,所述目标量化层包括所述目标神经网络的计算层中的一层或多层;
对选定的所述目标量化层进行量化。
2.如权利要求1所述的一种神经网络量化方法,其特征在于,所述选定神经网络的目标量化层包括:
选定所述目标神经网络的计算层中满足预定量化条件的计算层,作为所述目标量化层。
3.如权利要求2所述的一种神经网络量化方法,其特征在于,选定所述目标神经网络的计算层中满足预定量化条件的计算层,作为所述目标量化层包括:
计算得到所述目标神经网络的各计算层的预定量化参数;
根据所述各计算层的预定量化参数,选定所述各计算层中满足预定量化条件的一层或多层作为所述目标量化层。
4.一种神经网络量化方法,其特征在于,所述方法包括:
计算得到目标神经网络全网络量化后的网络精度损失;
若所述网络精度损失达到或超过预设精度损失阈值,则执行权利要求1至3中任意一项所述的方法。
5.如权利要求4所述的一种神经网络量化方法,其特征在于,若所述网络精度损失低于所述预设精度损失阈值,则对所述目标神经网络进行全网络量化。
6.一种神经网络量化装置,其特征在于,所述装置包括:
选择模块,被配置为选定目标神经网络的目标量化层,所述目标量化层包括所述目标神经网络的计算层中的一层或多层;
量化模块,被配置为对选定的所述目标量化层进行量化。
7.一种神经网络量化装置,其特征在于,所述装置包括:
全网络量化评价模块,被配置为计算得到目标神经网络全网络量化后的网络精度损失;
如权利要求6所述的装置。
8.一种人工智能芯片,其特征在于,所述芯片包括如权利要求6或7所述的装置。
9.一种电子设备,其特征在于,所述电子设备包括如权利要求8所述的人工智能芯片。
10.一种板卡,其特征在于,所述板卡包括:存储器件、接口装置和控制器件以及如权利要求8所述的人工智能芯片;
其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;
所述存储器件,用于存储数据;
所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;
所述控制器件,用于对所述人工智能芯片的状态进行监控。
CN201910702813.8A 2019-07-31 2019-07-31 神经网络量化方法、装置、芯片、电子设备及板卡 Withdrawn CN112308201A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910702813.8A CN112308201A (zh) 2019-07-31 2019-07-31 神经网络量化方法、装置、芯片、电子设备及板卡
PCT/CN2020/086183 WO2021017546A1 (zh) 2019-07-31 2020-04-22 神经网络量化方法、装置、芯片、电子设备及板卡

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910702813.8A CN112308201A (zh) 2019-07-31 2019-07-31 神经网络量化方法、装置、芯片、电子设备及板卡

Publications (1)

Publication Number Publication Date
CN112308201A true CN112308201A (zh) 2021-02-02

Family

ID=74485879

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910702813.8A Withdrawn CN112308201A (zh) 2019-07-31 2019-07-31 神经网络量化方法、装置、芯片、电子设备及板卡

Country Status (1)

Country Link
CN (1) CN112308201A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113642711A (zh) * 2021-08-16 2021-11-12 北京百度网讯科技有限公司 一种网络模型的处理方法、装置、设备和存储介质
CN116739039A (zh) * 2023-05-05 2023-09-12 北京百度网讯科技有限公司 分布式部署模型的量化方法、装置、设备和介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113642711A (zh) * 2021-08-16 2021-11-12 北京百度网讯科技有限公司 一种网络模型的处理方法、装置、设备和存储介质
CN113642711B (zh) * 2021-08-16 2023-10-31 北京百度网讯科技有限公司 一种网络模型的处理方法、装置、设备和存储介质
CN116739039A (zh) * 2023-05-05 2023-09-12 北京百度网讯科技有限公司 分布式部署模型的量化方法、装置、设备和介质

Similar Documents

Publication Publication Date Title
JP7146952B2 (ja) データ処理方法、装置、コンピュータデバイス、及び記憶媒体
EP4020329A1 (en) Data processing method and apparatus, computer equipment and storage medium
CN112085193B (zh) 一种神经网络的量化参数确定方法及相关产品
JP7146953B2 (ja) データ処理方法、装置、コンピュータデバイス、及び記憶媒体
CN110750351A (zh) 多核任务调度器、多核任务调度方法、装置及相关产品
CN112308201A (zh) 神经网络量化方法、装置、芯片、电子设备及板卡
EP4024283A1 (en) Method and apparatus for processing data, and related product
CN112784951B (zh) Winograd卷积运算方法及相关产品
CN113112009B (zh) 用于神经网络数据量化的方法、装置和计算机可读存储介质
CN111523653A (zh) 运算装置及方法
CN114143836B (zh) 基于边缘计算网关的负荷均衡方法、装置及终端
JP7060719B2 (ja) データを処理するための方法、装置、及び関連製品
CN111258537B (zh) 一种防止数据溢出的方法、装置和芯片
CN113298843B (zh) 数据量化处理方法、装置、电子设备和存储介质
JP7233636B2 (ja) データ量子化処理方法、装置、電子機器および記憶媒体
CN113112008B (zh) 用于神经网络数据量化的方法、装置和计算机可读存储介质
CN113626079A (zh) 数据处理方法及装置以及相关产品
CN113111997B (zh) 用于神经网络数据量化的方法、装置和相关产品
CN113112008A (zh) 用于神经网络数据量化的方法、装置和计算机可读存储介质
WO2021017546A1 (zh) 神经网络量化方法、装置、芯片、电子设备及板卡
CN115329925A (zh) 神经网络结构确定方法及装置以及相关产品
CN112085151A (zh) 数据处理方法、装置、计算机设备和存储介质
CN115329924A (zh) 神经网络结构确定方法及装置以及相关产品
CN112784207B (zh) 运算方法及相关产品
CN112434781A (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
WW01 Invention patent application withdrawn after publication

Application publication date: 20210202

WW01 Invention patent application withdrawn after publication