一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

LSTM模型优化方法、加速器、装置及介质与流程

2021-10-24 06:01:00 来源:中国专利 TAG:加速器 介质 装置 模型 优化

lstm模型优化方法、加速器、装置及介质
技术领域
1.本发明涉及计算机硬件加速领域,尤其涉及一种lstm模型优化方法、加速器、装置及介质。


背景技术:

2.基于长短时记忆模型(long short

term memory,lstm)的循环神经网络(recurrent neural network,rnn)是一种处理序列数据的神经网络模型,它有效解决了梯度消失和爆炸问题,并在智能认知领域被广泛地应用,比如语音识别、行为识别和自然语言处理等。但在实际工程应用实践中,却面临着诸多问题。传统的计算平台无法承载lstm如此大的数据计算量。在嵌入式应用中,特别是自动驾驶等时延性要求极高的领域,lstm模型本身由于其巨大的参数量,以及海量的训练数据和推断测试数据,导致在训练模型和模型推断中,不仅计算复杂度高,且计算平台的功耗也非常大。这在功耗性要求极高的嵌入式设备中,很难部署模型。
3.针对lstm模型稀疏化后的硬件加速计算,业界引入delta算法,通过利用序列数据数值相似性,对序列数据的稀疏性进行构建、挖掘,并对lstm模型进行重构和算法加速,但这种方法受限于序列数据的时间依赖性,需要相邻时刻输入数据具有较高相似度,应用范围存在明显局限,且基于delta的lstm模型重构硬件加速实现复杂,不利于硬件部署。


技术实现要素:

4.有鉴于此,本技术实施例提供一种lstm模型优化方法、加速器、装置及介质,本技术旨在提高lstm硬件加速器的能效比,且实现简单,易于部署。
5.本技术实施例提供了一种lstm模型优化方法,所述方法包括:
6.获取剪枝后的lstm网络的权重矩阵;
7.基于所述权重矩阵,获取所述权重矩阵的权值稀疏度;
8.获取输入序列的稀疏度;
9.基于所述权值稀疏度以及所述输入序列的稀疏度,对运算模式进行判断;
10.若所述运算模式判定为稀疏运算模式,则对所述输入序列按照所述稀疏运算模式进行计算。
11.在一实施例中,所述基于所述权值稀疏度以及所述输入序列的稀疏度,对运算模式进行判断,包括:
12.若所述权值稀疏度大于或者等于权值稀疏度阈值和/或所述输入序列的稀疏度大于或者等于输入序列稀疏度阈值,则判定为所述稀疏运算模式。
13.在一实施例中,所述对所述输入序列按照所述稀疏运算模式进行计算,包括:
14.对所述权重矩阵进行平衡调整;
15.将所述输入序列与调整后的权重矩阵进行乘法计算。
16.在一实施例中,所述对所述权重矩阵进行平衡调整,包括:
17.统计所述权重矩阵中有效权重的个数;
18.将所述有效权重的个数除以所述权重矩阵的行数,获得每行的有效权重平均数;
19.基于所述有效权重平均数,调整所述权重矩阵每行的有效权重个数。
20.在一实施例中,所述获取输入序列的稀疏度,包括:
21.对预设数量个运算周期内的输入序列的零值个数或者连续零值个数执行零值检测,获得输入序列的稀疏度。
22.在一实施例中,所述基于所述权值系数度以及所述输入序列的稀疏度,对运算模式进行判断,还包括:
23.若所述权值稀疏度小于权值稀疏度阈值和/或所述输入序列的稀疏度小于输入序列稀疏度阈值,则判定为密集运算模式;
24.其中,在所述判定为密集运算模式的步骤之后,还包括:
25.若所述运算模式判定为密集运算模式,则对所述输入序列按照所述密集运算模式进行计算。
26.在一实施例中,所述对所述输入序列按照所述密集运算模式进行计算,包括:
27.基于输入序列的向量维度数以及lstm网络隐藏层的节点数,将所述输入序列进行多次分块,生成多个分块向量;
28.将所述多个分块向量,按照流水线控制方式进行并行计算。
29.为实现上述目的,还提供一种lstm模型优化装置,所述装置包括:
30.获取数据模块,用于获取剪枝后的lstm网络的权重矩阵;基于所述权重矩阵,获取所述权重矩阵的权值稀疏度;获取输入序列的稀疏度;
31.运算模式判断模块,用于基于所述权值稀疏度以及所述输入序列的稀疏度,对运算模式进行判断;
32.计算模块,用于若所述运算模式判定为稀疏运算模式,则对所述输入序列按照所述稀疏运算模式进行计算。
33.为实现上述目的,还提供一种lstm硬件加速器,包括存储器,处理器及存储在所述存储器上并可在所述处理器上运行的lstm模型优化方法程序,所述处理器执行所述lstm模型优化方法程序时实现上述任一所述的lstm模型优化方法的步骤。
34.为实现上述目的,还提供一种计算机存储介质,所述计算机存储介质上存储有lstm模型优化方法程序,所述lstm模型优化方法程序被处理器执行时实现上述任一所述的lstm模型优化方法的步骤。
35.本技术实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:获取剪枝后的lstm网络的权重矩阵;基于所述权重矩阵,获取所述权重矩阵的权值稀疏度;获取输入序列的稀疏度;通过准确获取权值稀疏度以及输入序列的稀疏度,为后续进行运算模式的判断提供数据支持。
36.基于所述权值稀疏度以及所述输入序列的稀疏度,对运算模式进行判断;通过对权值稀疏度以及输入序列的稀疏度,对稀疏运算模式或者密集运算模式进行判断,进行相对应的运算模式的计算,提高lstm硬件加速器的计算效率与速度。
37.若所述运算模式判定为稀疏运算模式,则对所述输入序列按照所述稀疏运算模式进行计算;对所述输入序列按照所述稀疏运算模式进行计算。通过对权值稀疏度与权值稀
疏度阈值之间的比较以及输入序列的稀疏度与输入序列稀疏度阈值之间的比较,完成对运算模式的判断,当判定为稀疏运算模式,则利用稀疏运算模式对输入序列进行计算,提高lstm硬件加速器在稀疏化场景下的适应性。本发明显著增强了lstm硬件加速器的整体性能和适用范围,提高lstm硬件加速器的能效比,且实现方式相对简单,便于硬件部署。
附图说明
38.图1为本技术lstm模型优化方法的第一实施例;
39.图2为本技术lstm模型优化方法第一实施例步骤s160的具体实施步骤;
40.图3为本技术lstm模型优化方法涉及的pe阵列示意图;
41.图4为本技术lstm模型优化方法第一实施例步骤s161的具体实施步骤;
42.图5为本技术lstm硬件加速器的计算方法第一实施例步骤s130的具体实施步骤;
43.图6为本技术lstm模型优化方法的第二实施例;
44.图7为本技术lstm模型优化方法第二实施例步骤s280的具体实施步骤;
45.图8为本技术lstm可重构硬件加速器系统的示意图;
46.图9为本技术lstm模型优化装置的示意图;
47.图10为本技术lstm硬件加速器的示意图。
具体实施方式
48.应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
49.本发明实施例的主要解决方案是:获取剪枝后的lstm网络的权重矩阵;基于所述权重矩阵,获取所述权重矩阵的权值稀疏度;获取输入序列的稀疏度;基于所述权值稀疏度以及所述输入序列的稀疏度,对运算模式进行判断;若所述运算模式判定为稀疏运算模式,则对所述输入序列按照所述稀疏运算模式进行计算;本技术旨在提高lstm硬件加速器的能效比,且实现简单,易于部署。
50.为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
51.参照图1,图1为本技术lstm模型优化方法的第一实施例,所述方法包括:
52.步骤s110:获取剪枝后的lstm网络的权重矩阵。
53.具体地,基于长短时记忆模型(long short

term memory,lstm)的循环神经网络(recurrent neural network,rnn)是一种处理序列数据的神经网络模型,它有效解决了梯度消失和爆炸问题,并在智能认知领域被广泛地应用,比如语音识别、行为识别和自然语言处理等。
54.具体地,剪枝操作是对lstm网络进行压缩,以减少lstm网络的存储和计算成本。其中对lstm网络进行压缩的方法,主要包括但不限于参数修剪与共享(parameter pruning and sharing)、低秩因子分解(low

rank factorization)、转移/紧凑卷积滤波器(transferred/compact convolutional filters)以及知识蒸馏(knowledge distillation)。
55.具体地,权重矩阵是使用数据集对lstm网络训练并剪枝后获得的权重组成的矩阵。
56.步骤s120:基于所述权重矩阵,获取所述权重矩阵的权值稀疏度。
57.具体地,权重矩阵的权值稀疏度可以通过统计权重矩阵中零值的个数进行计算,可以线下进行统计。
58.步骤s130:获取输入序列的稀疏度。
59.具体地,输入序列可以是当前输入lstm网络中的数据,其中,所述输入序列的稀疏度需要线上统计,对当前输入lstm网络的数据进行统计;另外需要说明的是输入序列的稀疏度是对输入序列中的零值进行统计。
60.步骤s140:基于所述权值稀疏度以及所述输入序列的稀疏度,对运算模式进行判断。
61.具体地,运算模式包括稀疏运算模式与密集运算模式,两种运算模式的计算方式不一样,对不同类型的输入序列执行不同的计算方式,即保证lstm网络的正确计算,又提高lstm网络的计算效率,节省计算成本。
62.在一实施例中,所述基于所述权值稀疏度以及所述输入序列的稀疏度,对运算模式进行判断,包括:
63.若所述权值稀疏度大于或者等于权值稀疏度阈值和/或所述输入序列的稀疏度大于或者等于输入序列稀疏度阈值,则判定为所述稀疏运算模式。
64.其中,所述权值稀疏度阈值与所述输入序列稀疏度阈值可以根据需要进行动态调整,在此不作限定。
65.需要另外说明的是,若所述权值稀疏度大于或者等于权值稀疏度阈值和/或所述输入序列的稀疏度大于或者等于输入序列稀疏度阈值,则判定为稀疏运算模式,包括三种情况:第一、若权值稀疏度大于或者等于权值稀疏度阈值,则判定为稀疏运算模式;第二、若输入序列的稀疏度大于或者等于输入序列稀疏度阈值,则判定为稀疏运算模式;第三、若权值稀疏度大于或者等于权值稀疏度阈值且输入序列的稀疏度大于或者等于输入序列稀疏度阈值,则判定为稀疏运算模式;三种情况在本实施例中都适用,在此不作限定。
66.步骤s150:若所述运算模式判定为稀疏运算模式,则对所述输入序列按照所述稀疏运算模式进行计算。
67.具体地,将输入序列输入lstm网络后,按照稀疏运算模式进行计算。
68.在上述实施例中,存在的有益效果为:获取剪枝后的lstm网络的权重矩阵;基于所述权重矩阵,获取所述权重矩阵的权值稀疏度;获取输入序列的稀疏度;通过准确获取权值稀疏度以及输入序列的稀疏度,为后续进行运算模式的判断提供数据支持。
69.基于所述权值稀疏度以及所述输入序列的稀疏度,对运算模式进行判断;通过对权值稀疏度以及输入序列的稀疏度,对稀疏运算模式或者密集运算模式进行判断,进行相对应的运算模式的计算,提高lstm模型计算效率与速度。
70.若所述运算模式判定为稀疏运算模式,则对所述输入序列按照所述稀疏运算模式进行计算;对所述输入序列按照所述稀疏运算模式进行计算。通过对权值稀疏度与权值稀疏度阈值之间的比较以及输入序列的稀疏度与输入序列稀疏度阈值之间的比较,完成对运算模式的判断,当判定为稀疏运算模式,则利用稀疏运算模式对输入序列进行计算,提高lstm硬件加速器在稀疏化场景下的适应性。本发明显著增强了lstm硬件加速器的整体性能和适用范围,提高lstm硬件加速器的能效比,且实现方式相对简单,便于硬件部署。
71.参照图2,图2为本技术lstm模型优化方法第一实施例步骤s150的具体实施步骤,所述对所述输入序列按照所述稀疏运算模式进行计算,包括:
72.步骤s151:对所述权重矩阵进行平衡调整。
73.具体地,通过在线重构pe(processing element,处理元件)运算单元,采用调整输入序列和权重参数的次序,重新排布运算矩阵的方式,对权重矩阵的非均衡运算单元进行优化。
74.步骤s152:将所述输入序列与调整后的权重矩阵进行乘法计算。
75.具体地,将输入序列与调整后的权重矩阵输入pe阵列中进行计算,pe阵列具体可以由4个pe子单元、矩阵向量运算后处理、非线性激活操作以及元素向量点乘操作组成,具体参照图3。
76.在上述实施例中,存在的有益效果为:将输入序列与调整后的权重矩阵输入pe阵列中进行计算,在线动态重构硬件加速器pe运算单元,以提高pe运算资源的利用率和lstm硬件加速器的能效比。
77.参照图4,图4为本技术lstm模型优化方法第一实施例步骤s151的具体实施步骤,所述对所述权重矩阵进行平衡调整,包括:
78.步骤s1511:统计所述权重矩阵中有效权重的个数。
79.具体地,有效权重可以为非零元素。
80.步骤s1512:将所述有效权重的个数除以所述权重矩阵的行数,获得每行的有效权重平均数。
81.步骤s1513:基于所述有效权重平均数,调整所述权重矩阵每行的有效权重个数。
82.具体地,由于软件层面剪枝等操作,造成权重矩阵的稀疏性,在pe单元运算过程中,通常会遇到pe单元的负载不均衡问题,导致每个pe单元分配的数据量不等,故分配数据量少的pe单元运算结束,处于闲置状态,等待分配数据量大的pe单元运算结束后,控制器才继续指示存储单元开始读取下一组的数据。pe计算单元负载不均衡问题则造成了时序资源的极大浪费。
83.若剪枝后的权重矩阵,被判定使用稀疏运算模式进行计算,在另一实施例中,也可以统计每行的非零元素个数,然后根据每行非零元素个数的多寡,将矩阵的行次序按由多到少重新排序(即非零元素个数多的行排在前),再将矩阵的每一行分配给特定的pe,使得各个pe所要处理的数据量尽可能相等。各个pe运算时间大致同步,节省了时序资源。
84.在上述实施例中,存在的有益效果为:通过对权重矩阵的平衡调整,提高lstm模型优化效率,节省了时序资源。
85.参照图5,图5为本技术lstm模型优化方法第一实施例步骤s130的具体实施步骤,所述获取输入序列的稀疏度,包括:
86.步骤s131:对预设数量个运算周期内的输入序列的零值个数或者连续零值个数执行零值检测,获得输入序列的稀疏度。
87.具体地,可以通过对输入序列中的零值进行统计,以获得输入序列的稀疏度,其中,在本实施例中,输入序列的零值越多,则输入序列的稀疏度越高。
88.具体地,可以针对一个运算周期内的输入序列的零值个数进行统计,也可以是针对一个运算周期内的输入序列连续零值个数进行统计,具体可以是将一个运算周期内的输
入序列的零值个数与输入序列的数据个数的比值作为输入序列稀疏度;也可以是将一个运算周期内的输入序列连续零值个数作为输入序列稀疏度;在此并不作限定,其中预设数量个运算周期在此并不限定于一个运算周期,也可以是其他数量的运算周期。
89.在上述实施例中,存在的有益效果:正确获取输入序列的稀疏度,保证运算模式选择的正确性,从而保证lstm模型计算效率。
90.参照图6,图6为本技术lstm模型优化方法的第二实施例,所述方法,还包括:
91.步骤s210:获取剪枝后的lstm网络的权重矩阵。
92.步骤s220:基于所述权重矩阵,获取所述权重矩阵的权值稀疏度。
93.步骤s230:获取输入序列的稀疏度。
94.步骤s240:若所述权值稀疏度大于或者等于权值稀疏度阈值和/或所述输入序列的稀疏度大于或者等于输入序列稀疏度阈值,则判定为稀疏运算模式。
95.步骤s250:对所述输入序列按照所述稀疏运算模式进行计算。
96.步骤s260:若所述权值稀疏度小于权值稀疏度阈值和/或所述输入序列的稀疏度小于输入序列稀疏度阈值,则判定为密集运算模式。
97.步骤s270:将所述输入序列按照所述密集运算模式进行计算。
98.具体地,密集运算模式与稀疏运算模式不同,其中,密集运算模式可以使用分块及流水计算结构。
99.第二实施例与第一实施例相比,包括步骤s260以及步骤s270,其他步骤在第一实施例中已经进行了阐述,在此不再赘述。
100.在上述实施例中,存在的有益效果为:通过权值稀疏度以及输入序列的稀疏度的判断,对运算模式进行判断,并按照对应的运算模式对输入序列执行计算操作,大大提高了lstm硬件加速器的能效比,且实现方式相对简单,便于部署在对功耗敏感的端侧人工智能芯片中。
101.参照图7,图7为本技术lstm模型优化方法第二实施例步骤s270的具体实施步骤,所述将输入序列按照所述密集运算模式进行计算,包括:
102.步骤s271:基于输入序列的向量维度数以及lstm网络隐藏层的节点数,将所述输入序列进行多次分块,生成多个分块向量。
103.具体地,参考输入序列的向量维度数以及lstm网络隐藏层的节点数,获得分块数,将输入序列按照分块数进行多次分块,生成多个分块向量。
104.步骤s272:将所述多个分块向量,按照流水线控制方式进行并行计算。
105.具体地,流水线结构(pipeline architecture)的控制方式可以是在系统处理数据时,每个时钟脉冲都接受下一条处理数据的指令。流水线机构提高了系统处理数据的速度。
106.在上述实施例中,存在的有益效果为:对需要执行密集运算模式的输入序列执行密集运算模式,大大提高了lstm模型计算效率,提高lstm硬件加速器的能效比。
107.本技术保护一种lstm可重构硬件加速器系统,如图8所示,lstm可重构硬件加速器系统主要由arm处理器、片外ddr同步动态存储器、lstm硬件加速器ip和axi总线构成。arm处理器将训练得到的权值和偏置以及激励数据写入片外ddr存储器,通过axi4

lite接口对加速器ip进行配置,并从片外ddr存储器中取出lstm加速器计算结果进行相应后处理。片外
ddr存储器用于权值、偏置、激励和计算结果数据的存储。加速器ip完成对输入激励数据的lstm硬件加速并将计算结果通过axi4总线写入片外ddr存储器,加速器ip与外部的输入输出接口采用标准的axi4 bus和axi4

lite接口。
108.本技术保护一种lstm模型优化装置20,所述装置包括:
109.获取数据模块,用于获取剪枝后的lstm网络的权重矩阵;基于所述权重矩阵,获取所述权重矩阵的权值稀疏度;获取输入序列的稀疏度;
110.运算模式判断模块,用于基于所述权值稀疏度以及所述输入序列的稀疏度,对运算模式进行判断;
111.计算模块,用于若所述运算模式判定为稀疏运算模式,则对所述输入序列按照所述稀疏运算模式进行计算。
112.图9所示装置包括获取数据模块21、运算模式判断模块22、计算模块23、应用模块24,该装置可以执行图1、图2、图4至图7所示实施例的方法,本实施例未详细描述的部分,可参考对图1、图2、图4至图7所示实施例的相关说明。该技术方案的执行过程和技术效果参见图1、图2、图4至图7所示实施例中的描述,在此不再赘述。
113.本技术还保护一种计算机存储介质,所述计算机存储介质上存储有lstm模型优化方法程序,所述lstm模型优化方法程序被处理器执行时实现上述任一所述的lstm模型优化方法的步骤。
114.本技术还保护一种lstm硬件加速器,参照图10,可以包括采用可重构pe运算单元的设计架构,支持根据输入序列的密集程度在线适配和重构pe运算资源,具体功能描述如下:
115.系统配置模块:针对应用场景,系统启动后将线下生成的配置信息通过axi4

lite写入片内sram或ff,配置完成后将当前lstm加速器配置信息同步更新到全局控制单元。
116.主控制和运算控制单元:包括配置控制、输入序列零值检测和运算状态控制。配置控制就是在每次运算起始时向加速器各个模块发送配置信息。输入序列零值检测根据输入序列的零值统计情况并结合系统配置的权值稀疏度自动输出当前pe运算单元采用的计算模式。运算状态控制包括对密集矩阵和稀疏矩阵两种计算类型的独立控制,并调度存储单元和计算单元协调工作。
117.输入输出数据缓存:完成数据读入、数据分发和数据输出功能。进行片外ddr存储器与片上数据的交互传输。主要包括激励读取、参数读取和结果读取,在主控制和运算控制单元的作用下分发给pe阵列进行计算,并将当前的计算结果进行存储。
118.pe阵列:由4个pe子单元、矩阵向量运算后处理、非线性激活操作和元素向量点乘操作构成。根据运算控制单元输出的密集稀疏运算类型,在线重构pe运算单元。针对密集运算场景,采用常规的分块及流水计算结构;针对稀疏运算场景,采用调整权重矩阵行次序,重新排布权重矩阵的方式,对稀疏权重矩阵的非均衡运算单元进行优化,具体参照图3。
119.本技术还保护一种lstm硬件加速器,包括存储器,处理器及存储在所述存储器上并可在所述处理器上运行的lstm模型优化方法程序,所述处理器执行所述lstm模型优化方法程序时实现上述任一所述的lstm模型优化方法的步骤。
120.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实
施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
121.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
122.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
123.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
124.应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
125.尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
126.显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜