模型加速方法、装置、集成电路和存储介质与流程

文档序号:30559438发布日期:2022-06-29 03:28阅读:110来源:国知局
模型加速方法、装置、集成电路和存储介质与流程

1.本技术涉及电子电路技术领域,特别是涉及一种模型加速方法、装置、集成电路、存储介质和计算机程序产品。


背景技术:

2.在数据处理过程中,例如利用深度神经网络进行图像数据处理,需要进行大量的卷积计算,在此过程中,集成电路发挥了重要作用。由于部分场景的深度神经网络搭载平台的性能有限,所以需要降低神经网络模型的计算量。
3.传统技术中,卷积计算量一般占深度神经网络的总计算量的90%,通常使用量化的方式降低深度神经网络的计算精度,但是,对于深度神经网络来说,这种方法仍需要消耗大量的计算资源和运行时间,使得对深度神经网络的推理速度的加速效果较为一般。


技术实现要素:

4.基于此,有必要针对上述技术问题,提供一种能够有效提升深度神经网络的推理效率的模型加速方法、装置、集成电路、计算机可读存储介质和计算机程序产品。
5.第一方面,本技术提供了一种模型加速方法。所述方法包括:根据训练后的待加速模型的激活函数类型,得到与所述训练后的待加速模型相匹配的操作融合方式;所述操作融合方式表示所述训练后的待加速模型的卷积、激活和量化操作的融合方式;根据所述训练后的待加速模型的操作融合方式,对所述训练后的待加速模型的卷积参数、激活系数和量化参数进行融合运算,得到所述卷积参数、所述激活系数和所述量化参数的融合结果;根据所述融合结果,对输入到所述训练后的待加速模型中的卷积数据进行推理加速,得到所述卷积数据的推理加速结果。
6.在其中一个实施例中,根据训练后的待加速模型的激活函数类型,得到与所述训练后的待加速模型相匹配的操作融合方式,包括:当所述训练后的待加速模型的激活函数类型为单一处理类型时,确定与所述训练后的待加速模型相匹配的融合方式为卷积、激活和量化操作融合方式;所述根据所述训练后的待加速模型的操作融合方式,对所述训练后的待加速模型的卷积参数、激活系数和量化参数进行融合运算,得到所述卷积参数、所述激活系数和所述量化参数的融合结果,包括:利用所述训练后的待加速模型的激活系数和量化系数,对所述训练后的待加速模型的卷积权重进行融合,得到融合后的卷积权重;利用所述训练后的待加速模型的激活系数、量化系数和量化偏置值,对所述训练后的待加速模型的卷积偏置值进行融合,得到融合后的卷积偏置值;将所述融合后的卷积权重和所述融合后的卷积偏置值,作为所述卷积、激活和量
化操作融合方式的融合结果。
7.在其中一个实施例中,根据所述融合结果,对输入到所述训练后的待加速模型中的卷积数据进行推理加速,得到所述卷积数据的推理加速结果,包括:对所述卷积数据进行卷积推理处理,并将所述卷积推理处理中所调用的卷积权重和卷积偏置值,分别对应更新为所述融合后的卷积权重和所述融合后的卷积偏置值,得到所述卷积数据的卷积推理结果;将所述卷积推理结果,作为所述推理加速结果。
8.在其中一个实施例中,根据训练后的待加速模型的激活函数类型,得到与所述训练后的待加速模型相匹配的操作融合方式,包括:当所述训练后的待加速模型的激活函数类型为分段处理类型时,确定与所述训练后的待加速模型相匹配的融合方式为激活和量化操作融合方式;所述根据所述训练后的待加速模型的操作融合方式,对所述训练后的待加速模型的卷积参数、激活系数和量化参数进行融合运算,得到所述卷积参数、所述激活系数和所述量化参数的融合结果,包括:利用所述训练后的待加速模型的量化系数,对所述训练后的待加速模型的激活系数进行融合,得到融合后的激活系数,作为所述激活和量化操作融合方式的融合结果。
9.在其中一个实施例中,根据所述融合结果,对输入到所述训练后的待加速模型中的卷积数据进行推理加速,得到所述卷积数据的推理加速结果,包括:对所述卷积数据进行卷积推理处理,得到所述卷积数据的卷积后结果;对所述卷积后结果和所述融合后的激活系数进行激活函数运算,得到所述卷积数据的激活函数运算结果,作为所述推理加速结果。
10.在其中一个实施例中,根据所述训练后的待加速模型的操作融合方式,对所述训练后的待加速模型的卷积参数、激活系数和量化参数进行融合运算,得到所述卷积参数、所述激活系数和所述量化参数的融合结果,包括:根据所述训练后的待加速模型的操作融合方式,对所述训练后的待加速模型的卷积参数、激活系数和量化参数进行离线融合运算,得到所述卷积参数、所述激活系数和所述量化参数的离线融合结果;所述离线融合运算在进行所述卷积推理加速之前离线处理完成。
11.第二方面,本技术还提供了一种模型加速装置。所述装置包括:融合方式确定模块,用于根据训练后的待加速模型的激活函数类型,得到与所述训练后的待加速模型相匹配的操作融合方式;所述操作融合方式表示所述训练后的待加速模型的卷积、激活和量化操作的融合方式;参数融合运算模块,用于根据所述训练后的待加速模型的操作融合方式,对所述训练后的待加速模型的卷积参数、激活系数和量化参数进行融合运算,得到所述卷积参数、所述激活系数和所述量化参数的融合结果;卷积推理加速模块,用于根据所述融合结果,对输入到所述训练后的待加速模型中的卷积数据进行推理加速,得到所述卷积数据的推理加速结果。
12.第三方面,本技术还提供了一种集成电路。所述集成电路包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
根据训练后的待加速模型的激活函数类型,得到与所述训练后的待加速模型相匹配的操作融合方式;所述操作融合方式表示所述训练后的待加速模型的卷积、激活和量化操作的融合方式;根据所述训练后的待加速模型的操作融合方式,对所述训练后的待加速模型的卷积参数、激活系数和量化参数进行融合运算,得到所述卷积参数、所述激活系数和所述量化参数的融合结果;根据所述融合结果,对输入到所述训练后的待加速模型中的卷积数据进行推理加速,得到所述卷积数据的推理加速结果。
13.第四方面,本技术还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:根据训练后的待加速模型的激活函数类型,得到与所述训练后的待加速模型相匹配的操作融合方式;所述操作融合方式表示所述训练后的待加速模型的卷积、激活和量化操作的融合方式;根据所述训练后的待加速模型的操作融合方式,对所述训练后的待加速模型的卷积参数、激活系数和量化参数进行融合运算,得到所述卷积参数、所述激活系数和所述量化参数的融合结果;根据所述融合结果,对输入到所述训练后的待加速模型中的卷积数据进行推理加速,得到所述卷积数据的推理加速结果。
14.第五方面,本技术还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:根据训练后的待加速模型的激活函数类型,得到与所述训练后的待加速模型相匹配的操作融合方式;所述操作融合方式表示所述训练后的待加速模型的卷积、激活和量化操作的融合方式;根据所述训练后的待加速模型的操作融合方式,对所述训练后的待加速模型的卷积参数、激活系数和量化参数进行融合运算,得到所述卷积参数、所述激活系数和所述量化参数的融合结果;根据所述融合结果,对输入到所述训练后的待加速模型中的卷积数据进行推理加速,得到所述卷积数据的推理加速结果。
15.上述模型加速方法、装置、集成电路、存储介质和计算机程序产品,根据训练后的待加速模型的激活函数类型,得到与训练后的待加速模型相匹配的操作融合方式;操作融合方式表示训练后的待加速模型的卷积、激活和量化操作的融合方式;根据训练后的待加速模型的操作融合方式,对训练后的待加速模型的卷积参数、激活系数和量化参数进行融合运算,得到卷积参数、激活系数和量化参数的融合结果;根据融合结果,对输入到训练后的待加速模型中的卷积数据进行推理加速,得到卷积数据的推理加速结果。采用本方法,在模型进行卷积、激活和量化操作时,根据训练后的待加速模型的操作融合方式,对训练后的待加速模型的卷积参数、激活系数和量化参数进行融合运算,并利用融合运算得到的融合结果对训练后的待加速模型中的卷积数据进行推理加速,无需在电路上分别进行三次操作的运算,从而有效地节省了激活、量化操作的推理运算的电路资源和运算时间,因而本方法不仅降低了推理电路的电路资源,还提升了深度神经网络的推理效率。
附图说明
16.图1为一个实施例中模型加速方法的流程示意图;图2为一个实施例中获取卷积参数、激活系数和量化参数的融合结果步骤的流程示意图;图3为另一个实施例中模型加速方法的流程示意图;图4为一个实施例中模型加速装置的结构框图。
具体实施方式
17.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
18.在一个实施例中,如图1所示,提供了一种模型加速方法,本实施例以该方法应用于集成电路进行举例说明,其中,该集成电路可以是fpga(field programmable gate array,现场可编程逻辑门阵列)芯片,也可以是神经网络运算电路。可以理解的是,该方法也可以应用于具有乘法、加法计算能力的服务器或终端,还可以应用于包括该终端和该服务器的系统,并通过该终端和该服务器的交互实现。本实施例中,该方法包括以下步骤:步骤s101,根据训练后的待加速模型的激活函数类型,得到与训练后的待加速模型相匹配的操作融合方式;操作融合方式表示训练后的待加速模型的卷积、激活和量化操作的融合方式。
19.其中,激活函数类型指的是待加速模型的激活函数的计算方式的类型。
20.具体地,集成电路获取待加速模型,并检测待加速模型的激活函数的所属类型,得到待加速模型的激活函数类型;根据训练后的待加速模型的激活函数类型,查询预先编辑并存储的操作融合指令,得到与训练后的待加速模型相匹配的操作融合指令,该操作融合指令表示训练后的待加速模型的卷积、激活和量化操作的融合方式。
21.步骤s102,根据训练后的待加速模型的操作融合方式,对训练后的待加速模型的卷积参数、激活系数和量化参数进行融合运算,得到卷积参数、激活系数和量化参数的融合结果。
22.其中,卷积参数包括卷积权值、卷积偏置值;激活系数包括激活函数的系数;量化参数包括量化系数和量化偏置值。
23.其中,融合运算指的是将训练后的待加速模型的卷积、激活和量化操作进行融合;例如将卷积、激活和量化这三个操作融合为一个卷积操作,从而仅通过卷积操作就可以实现卷积、激活和量化操作;再例如将激活和量化这两个操作融合为一个激活函数操作,从而仅通过激活函数操作就可以实现激活和量化操作。
24.其中,融合结果指的是将卷积参数、激活系数和量化参数中的至少两个参数进行融合后得到的结果。
25.具体地,集成电路根据训练后的待加速模型的操作融合方式,来融合训练后的待加速模型的卷积参数、激活系数和量化参数,得到卷积参数、激活系数和量化参数的融合结果;集成电路将融合结果进行存储。由此,集成电路将融合结果作为训练后的待加速模型进行推理加速处理的依据。
26.需要说明的是,集成电路通过融合运算获取融合结果的过程,可以发生在步骤s103之前,由于在步骤s103之前得到融合结果,无需损耗推理加速过程中的计算资源,能够有效提升推理加速过程的运行效率。
27.步骤s103,根据融合结果,对输入到训练后的待加速模型中的卷积数据进行推理加速,得到卷积数据的推理加速结果。
28.其中,推理指的是使用训练后的模型处理数据,例如,使用训练后的待加速模型进行预测或数据运算;进而推理加速指的是加快训练后的模型处理数据的速度。
29.具体地,集成电路将输入到训练后的待加速模型中的卷积数据,发送到存储有融合结果的推理电路中,进行相应的推理计算,得到卷积数据的推理加速结果。
30.上述模型加速方法中,根据训练后的待加速模型的激活函数类型,得到与训练后的待加速模型相匹配的操作融合方式;操作融合方式表示训练后的待加速模型的卷积、激活和量化操作的融合方式;根据训练后的待加速模型的操作融合方式,对训练后的待加速模型的卷积参数、激活系数和量化参数进行融合运算,得到卷积参数、激活系数和量化参数的融合结果;根据融合结果,对输入到训练后的待加速模型中的卷积数据进行推理加速,得到卷积数据的推理加速结果。采用本方法,在模型进行卷积、激活和量化操作时,根据训练后的待加速模型的操作融合方式,对训练后的待加速模型的卷积参数、激活系数和量化参数进行融合运算,并利用融合运算得到的融合结果对训练后的待加速模型中的卷积数据进行推理加速,无需在电路上分别进行三次操作的运算,从而有效地节省了激活、量化操作的推理运算的电路资源和运算时间,因而本方法不仅降低了推理电路的电路资源,还提升了深度神经网络的推理效率。
31.在一个实施例中,上述步骤s101,根据训练后的待加速模型的激活函数类型,得到与训练后的待加速模型相匹配的操作融合方式,具体包括如下内容:当训练后的待加速模型的激活函数类型为单一处理类型时,确定与训练后的待加速模型相匹配的融合方式为卷积、激活和量化操作融合方式。
32.其中,单一处理类型的激活函数指的是对所有的卷积数据都是同一个公式的激活函数。例如,修正线性单元(rectified linear unit,relu),即激活函数relu。
33.其中,量化操作可以是针对本层的反量化,也可以是针对下一层的输入的量化。
34.具体地,对于激活函数属于单一处理类型的训练后的待加速模型,集成电路将卷积、激活函数和量化(包括单次量化或多次连续量化融合后得到的融合量化)操作进行融合。
35.如图2所示,上述步骤s102,根据训练后的待加速模型的操作融合方式,对训练后的待加速模型的卷积参数、激活系数和量化参数进行融合运算,得到卷积参数、激活系数和量化参数的融合结果,具体包括如下内容:步骤s201,利用训练后的待加速模型的激活系数和量化系数,对训练后的待加速模型的卷积权重进行融合,得到融合后的卷积权重。
36.步骤s202,利用训练后的待加速模型的激活系数、量化系数和量化偏置值,对训练后的待加速模型的卷积偏置值进行融合,得到融合后的卷积偏置值。
37.步骤s203,将融合后的卷积权重和融合后的卷积偏置值,作为卷积、激活和量化操作融合方式的融合结果。
38.其中,量化系数指的是量化缩放系数。
39.需要说明的是,在集成电路中,对于特征图(卷积数据的一种形式),若不考虑卷积数据的并行处理,即每次只处理特征图上的一个像素值,则实现一次卷积、激活和量化操作,分别需要一次卷积运算的所需资源、激活函数操作所需一个乘法器、以及量化操作所需的一个乘法器和一个加法器;而本方法考虑到卷积运算本身就是乘法器和加法器的集成,因此本方法将卷积、激活和量化操作进行融合运算,则本方法仅需一次卷积运算的所需资源即可完成卷积、激活和量化操作。
40.具体地,集成电路将训练后的待加速模型的激活系数、量化系数与卷积权重进行相乘,得到融合后的卷积权重;将训练后的待加速模型的激活系数和量化系数进行相乘,得到相应的乘积,再将乘积和量化偏置值进行相加,得到融合后的卷积偏置值;将融合后的卷积权重和融合后的卷积偏置值,作为卷积、激活和量化操作融合方式的融合结果并存储到负责处理卷积推理的部件中。
41.举例说明,假设训练后的待加速模型的激活函数为relu,属于单一处理类型,则其卷积、激活和量化操作融合方式可以通过如下公式表示:(w * f + b) * alpha * q_scale + q_bias= (w * alpha * q_scale) * f + alpha * q_scale * b + q_bias= w_f * f + b_f其中,w为卷积权值;f为输入训练后的待加速模型的特征图;b为卷积偏置值;alpha为激活函数relu的系数(即激活系数);q_scale为量化缩放系数;q_bias为量化偏置值;w_f为融合后的卷积权值;b_f为融合后的卷积偏置值。
42.将融合后的卷积权值w_f = w * alpha * q_scale,以及融合后的卷积偏置值b_f = alpha * q_scale * b + q_bias,作为卷积、激活和量化操作融合方式的融合结果。
43.本实施例中,通过对卷积、激活和量化操作进行融合运算,则仅需一次卷积运算的所需资源即可完成卷积、激活和量化操作,无需在电路上分别进行三次操作的运算,从而有效地节省了激活、量化操作的推理运算的电路资源,实现了推理电路成本和电路面积的减少,从而降低了深度神经网络的推理电路的功耗。
44.在一个实施例中,上述步骤s103,根据融合结果,对输入到训练后的待加速模型中的卷积数据进行推理加速,得到卷积数据的推理加速结果,具体包括如下内容:对卷积数据进行卷积推理处理,并将卷积推理处理中所调用的卷积权重和卷积偏置值,分别对应更新为融合后的卷积权重和融合后的卷积偏置值,得到卷积数据的卷积推理结果;将卷积推理结果,作为推理加速结果。
45.其中,推理加速结果指的是训练后的待加速模型中的某一层量化后的输出结果,或者是指训练后的待加速模型最终的输出结果。
46.具体地,集成电路在对卷积数据进行卷积推理处理的过程中,从存储到负责处理卷积推理的部件中,获取融合后的卷积权重和融合后的卷积偏置值,并使用融合后的卷积权重和融合后的卷积偏置值,来对卷积推理处理中的卷积权重和卷积偏置值进行对应更新,进而使用融合后的卷积权重和融合后的卷积偏置值对卷积数据进行卷积推理处理,得到卷积推理结果,卷积推理结果可以看作训练后的待加速模型进行卷积、激活、量化操作后的推理加速结果。
47.举例说明,对输入训练后的待加速模型的特征图f进行卷积推理,原始的卷积推理过程可以通过如下公式表示:r = conv(w, f, b)其中,r为原始的卷积推理结果,w为卷积权值,f为输入训练后的待加速模型的特征图;b为卷积偏置值。
48.使用融合后的卷积权值w_f = w * alpha * q_scale,以及融合后的卷积偏置值b_f = alpha * q_scale * b + q_bias,对原始的卷积推理过程进行加速,即仅通过一次卷积推理来实现卷积、激活和量化操作,进而加速后的卷积推理过程可以通过如下公式表示:r_out = conv(w_f, f, b_f)其中,r_out为卷积、激活、量化操作后的推理加速结果。
49.本实施例中,通过将卷积推理处理过程中的卷积权重和卷积偏置值,分别对应更新为融合后的卷积权重和融合后的卷积偏置值,不仅有效地节省了激活、量化操作的推理运算的电路资源,而且还可以在卷积推理处理之前利用训练后的待加速模型中已确定的各项参数来得到融合结果,无需消耗卷积推理过程中的计算资源,从而减少了卷积推理加速的运行时间,提升了深度神经网络的推理效率。
50.在一个实施例中,上述步骤s101,根据训练后的待加速模型的激活函数类型,得到与训练后的待加速模型相匹配的操作融合方式,具体包括如下内容:当训练后的待加速模型的激活函数类型为分段处理类型时,确定与训练后的待加速模型相匹配的融合方式为激活和量化操作融合方式。
51.其中,分段处理类型的激活函数指的是对取值在不同区间的卷积数据采用不同公式的激活函数。例如,参数化修正线性单元(parametric rectified linear unit,prelu),即激活函数prelu。
52.具体地,对于激活函数属于分段处理类型的训练后的待加速模型,集成电路将激活函数和量化(包括单次量化或多次连续量化融合后得到的融合量化)操作进行融合。
53.以激活函数prelu为例进行说明,在x》0时,激活函数prelu的系数为alpha1,在x《0时,激活函数prelu的系数为alpha2,可以看出激活函数在卷积数据x取值范围在不同区间内,具有不同的计算方式,使得激活函数prelu与卷积运算不能直接融合;可以将激活函数与量化操作进行融合,融合后的alpha_f,在x》0时,alpha_f= alpha1 * q_scale,在x《0时,alpha_f= alpha2 * q_scale。
54.上述步骤s102,根据训练后的待加速模型的操作融合方式,对训练后的待加速模型的卷积参数、激活系数和量化参数进行融合运算,得到卷积参数、激活系数和量化参数的融合结果,具体包括如下内容:利用训练后的待加速模型的量化系数,对训练后的待加速模型的激活系数进行融合,得到融合后的激活系数,作为激活和量化操作融合方式的融合结果。
55.具体地,集成电路将训练后的待加速模型的量化系数与激活系数进行相乘,得到融合后的激活系数,作为激活和量化操作融合方式的融合结果,并存储到负责处理激活函数的部件中。
56.举例说明,假设训练后的待加速模型的激活函数为prelu,属于分段处理类型,则
其激活和量化操作融合方式可以通过如下公式表示:alpha_f = alpha * q_scale其中,alpha_f为融合后的激活系数,alpha为激活函数prelu的系数(即激活系数);q_scale为量化缩放系数。
57.本实施例中,对激活和量化操作进行融合运算,则仅需激活函数的所需资源即可完成激活和量化操作,无需在电路上分别进行两次操作的运算,从而有效地节省了量化操作的推理运算的电路资源,实现了推理电路成本和电路面积的减少,从而降低了深度神经网络的推理电路的功耗。
58.在一个实施例中,上述步骤s103,根据融合结果,对输入到训练后的待加速模型中的卷积数据进行推理加速,得到卷积数据的推理加速结果,具体包括如下内容:对卷积数据进行卷积推理处理,得到卷积数据的卷积后结果;对卷积后结果和融合后的激活系数进行激活函数运算,得到卷积数据的激活函数运算结果,作为推理加速结果。
59.其中,推理加速结果指的是训练后的待加速模型中的某一层量化后的输出结果,或者是指训练后的待加速模型最终的输出结果。
60.具体地,集成电路先对卷积数据进行卷积推理处理,得到卷积数据的卷积后结果;再对卷积后结果和融合后的激活系数进行激活函数运算,并将激活函数运算中所调用的激活系数,更新为融合后的激活系数,得到卷积数据的激活函数运算结果,激活函数运算结果可以看作训练后的待加速模型进行卷积、激活、量化操作后的推理加速结果。
61.举例说明,对对输入训练后的待加速模型的特征图f进行卷积推理,得到特征图f的卷积后结果r_conv,进而对卷积后结果r_conv进行激活函数运算和量化操作,可以通过如下公式表示:r_conv * alpha * q_scale + q_bias其中,alpha为激活函数prelu的系数(即激活系数);q_scale为量化缩放系数;q_bias为量化偏置值,而r_conv = conv(w, f, b)。
62.使用融合后的激活系数对上述公式进行推理加速,得到:r_conv * alpha * q_scale + q_bias= r_conv * alpha_f + q_bias本实施例中,通过将激活函数运算过程中的激活系数,更新为融合后的激活系数,不仅有效地节省了量化操作的推理运算的电路资源,而且还可以在激活函数运算之前利用训练后的待加速模型中已确定的各项参数来得到融合结果,无需消耗激活函数运算过程中的计算资源,从而减少了激活函数运算的运行时间,提升了深度神经网络的推理效率。
63.在一个实施例中,上述步骤s102,根据训练后的待加速模型的操作融合方式,对训练后的待加速模型的卷积参数、激活系数和量化参数进行融合运算,得到卷积参数、激活系数和量化参数的融合结果,具体包括如下内容:根据训练后的待加速模型的操作融合方式,对训练后的待加速模型的卷积参数、激活系数和量化参数进行离线融合运算,得到卷积参数、激活系数和量化参数的离线融合结果;离线融合运算在进行卷积推理加速之前离线处理完成。
64.具体地,由于本实施例中的待加速模型是训练后的待加速模型,则该模型中的各项参数(例如卷积权值、量化缩放系数、量化偏置值、量化偏置值、激活系数等)已经确定,所以可以在卷积推理或激活函数运算之前,提前计算得到融合结果,不需要在卷积推理或激
活函数运算时同步计算,以减少集成电路进行推理运算的资源,从而实现深度神经网络的推理加速。
65.进一步地,根据训练后的待加速模型的操作融合方式,对训练后的待加速模型的卷积参数、激活系数和量化参数进行离线融合运算,可以在卷积推理或激活函数运算之前的任意时间运行一次,离线融合运算更不会消耗卷积推理或激活函数运算的计算资源,得到离线融合结果后,将离线融合结果存储至对应处理的部件中,以便后续处理时及时调用。
66.本实施例中,在训练后的模型进行卷积运算或激活函数运算之前,根据训练后模型的参数,利用离线融合运算得到卷积参数、激活系数和量化参数的离线融合结果,减少了计算资源和计算时间消耗,进一步提升了深度神经网络的推理效率。
67.在一个实施例中,如图3所示,提供了另一种模型加速方法,以该方法应用于集成电路为例进行说明,包括以下步骤:步骤s301,判断训练后的待加速模型的激活函数类型。
68.步骤s302,当训练后的待加速模型的激活函数类型为单一处理类型时,确定与训练后的待加速模型相匹配的融合方式为卷积、激活和量化操作融合方式。
69.步骤s303,利用训练后的待加速模型的激活系数和量化系数,对训练后的待加速模型的卷积权重进行融合,得到融合后的卷积权重。
70.步骤s304,利用训练后的待加速模型的激活系数、量化系数和量化偏置值,对训练后的待加速模型的卷积偏置值进行融合,得到融合后的卷积偏置值。
71.步骤s305,将融合后的卷积权重和融合后的卷积偏置值,作为卷积、激活和量化操作融合方式的融合结果。
72.步骤s306,对卷积数据进行卷积推理,并将卷积推理中所调用的卷积权重和卷积偏置值,分别对应更新为融合后的卷积权重和融合后的卷积偏置值,得到卷积数据的卷积推理结果。
73.步骤s307,将卷积推理结果,作为推理加速结果。
74.步骤s308,当训练后的待加速模型的激活函数类型为分段处理类型时,确定与训练后的待加速模型相匹配的融合方式为激活和量化操作融合方式。
75.步骤s309,利用训练后的待加速模型的量化系数,对训练后的待加速模型的激活系数进行融合,得到融合后的激活系数,作为激活和量化操作融合方式的融合结果。
76.步骤s310,对卷积数据进行卷积推理,得到卷积数据的卷积后结果;对卷积后结果和融合后的激活系数进行激活函数运算,得到卷积数据的激活函数运算结果,作为推理加速结果。
77.上述模型加速方法,具有以下有益效果:在模型进行卷积、激活和量化操作时,根据训练后的待加速模型的操作融合方式,对训练后的待加速模型的卷积参数、激活系数和量化参数进行融合运算,并利用融合运算得到的融合结果对训练后的待加速模型中的卷积数据进行推理加速,无需在电路上分别进行三次操作的运算,从而有效地节省了激活、量化操作的推理运算的电路资源和运算时间,因而本方法不仅降低了推理电路的电路资源,还提升了深度神经网络的推理效率。
78.应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有
明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
79.基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的模型加速方法的模型加速装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个模型加速装置实施例中的具体限定可以参见上文中对于模型加速方法的限定,在此不再赘述。
80.在一个实施例中,如图4所示,提供了一种模型加速装置400,包括:融合方式确定模块401、参数融合运算模块402和卷积推理加速模块403,其中:融合方式确定模块401,用于根据训练后的待加速模型的激活函数类型,得到与训练后的待加速模型相匹配的操作融合方式;操作融合方式表示训练后的待加速模型的卷积、激活和量化操作的融合方式。
81.参数融合运算模块402,用于根据训练后的待加速模型的操作融合方式,对训练后的待加速模型的卷积参数、激活系数和量化参数进行融合运算,得到卷积参数、激活系数和量化参数的融合结果。
82.卷积推理加速模块403,用于根据融合结果,对输入到训练后的待加速模型中的卷积数据进行推理加速,得到卷积数据的推理加速结果。
83.在一个实施例中,融合方式确定模块401,还用于当训练后的待加速模型的激活函数类型为单一处理类型时,确定与训练后的待加速模型相匹配的融合方式为卷积、激活和量化操作融合方式;参数融合运算模块402,还用于利用训练后的待加速模型的激活系数和量化系数,对训练后的待加速模型的卷积权重进行融合,得到融合后的卷积权重;利用训练后的待加速模型的激活系数、量化系数和量化偏置值,对训练后的待加速模型的卷积偏置值进行融合,得到融合后的卷积偏置值;将融合后的卷积权重和融合后的卷积偏置值,作为卷积、激活和量化操作融合方式的融合结果。
84.在一个实施例中,卷积推理加速模块403,还用于对卷积数据进行卷积推理处理,并将卷积推理处理中所调用的卷积权重和卷积偏置值,分别对应更新为融合后的卷积权重和融合后的卷积偏置值,得到卷积数据的卷积推理结果;将卷积推理结果,作为推理加速结果。
85.在一个实施例中,融合方式确定模块401,还用于当训练后的待加速模型的激活函数类型为分段处理类型时,确定与训练后的待加速模型相匹配的融合方式为激活和量化操作融合方式;参数融合运算模块402,还用于利用训练后的待加速模型的量化系数,对训练后的待加速模型的激活系数进行融合,得到融合后的激活系数,作为激活和量化操作融合方式的融合结果。
86.在一个实施例中,卷积推理加速模块403,还用于对卷积数据进行卷积推理处理,得到卷积数据的卷积后结果;对卷积后结果和融合后的激活系数进行激活函数运算,得到卷积数据的激活函数运算结果,作为推理加速结果。
87.在一个实施例中,参数融合运算模块402,还用于根据训练后的待加速模型的操作
融合方式,对训练后的待加速模型的卷积参数、激活系数和量化参数进行离线融合运算,得到卷积参数、激活系数和量化参数的离线融合结果;离线融合运算在进行卷积推理加速之前离线处理完成。
88.上述模型加速装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于集成电路中的处理器中,也可以以软件形式存储于集成电路中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
89.在一个实施例中,还提供了一种集成电路,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
90.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
91.在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
92.需要说明的是,本技术所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
93.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistive random access memory,mram)、铁电存储器(ferroelectric random access memory,fram)、相变存储器(phase change memory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
94.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
95.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1