CN116029332A - 一种基于lstm网络的片上微调方法及装置 - Google Patents
一种基于lstm网络的片上微调方法及装置 Download PDFInfo
- Publication number
- CN116029332A CN116029332A CN202310147794.3A CN202310147794A CN116029332A CN 116029332 A CN116029332 A CN 116029332A CN 202310147794 A CN202310147794 A CN 202310147794A CN 116029332 A CN116029332 A CN 116029332A
- Authority
- CN
- China
- Prior art keywords
- value
- lstm network
- chip
- npu
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000004364 calculation method Methods 0.000 claims abstract description 83
- 230000011218 segmentation Effects 0.000 claims abstract description 17
- 230000007935 neutral effect Effects 0.000 claims abstract description 6
- 230000015654 memory Effects 0.000 claims description 59
- 230000006870 function Effects 0.000 claims description 47
- 238000013528 artificial neural network Methods 0.000 claims description 25
- 239000011159 matrix material Substances 0.000 claims description 21
- 230000004913 activation Effects 0.000 claims description 14
- 238000009825 accumulation Methods 0.000 claims description 12
- 238000007781 pre-processing Methods 0.000 claims description 6
- 238000009966 trimming Methods 0.000 claims description 4
- 230000000903 blocking effect Effects 0.000 claims description 3
- 230000014759 maintenance of location Effects 0.000 claims description 3
- 238000012545 processing Methods 0.000 claims description 3
- 238000012549 training Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 230000006403 short-term memory Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000007787 long-term memory Effects 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 125000004122 cyclic group Chemical group 0.000 description 4
- 238000013135 deep learning Methods 0.000 description 4
- 230000008034 disappearance Effects 0.000 description 3
- 238000003058 natural language processing Methods 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 208000000044 Amnesia Diseases 0.000 description 1
- 208000031091 Amnestic disease Diseases 0.000 description 1
- 230000006986 amnesia Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 230000008450 motivation Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000035515 penetration Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Image Analysis (AREA)
Abstract
本申请提供一种基于LSTM网络的片上微调方法及装置,方法包括:根据LSTM网络模型的参数,生成计算参数;根据计算参数对输入值和权重值进行细粒度切分,以及生成指令集合;在神经网络处理器NPU读取指令集合;根据指令集合执行NPU片上计算,以生成中间值和LSTM网络输出值;将LSTM网络输出值传输至误差函数,并通过误差函数得到误差值;根据误差值,更新所述权重值以及偏置值;使用更新后的权重值以及偏置值反向传播,以根据指令集合执行新一轮NPU片上计算。本申请提供的方法通过CPU、NPU协同,将LSTM网络中的运算分工,以解决CPU、GPU无法快速高效的计算LSTM网络的问题。
Description
技术领域
本申请涉及神经网络领域,尤其涉及一种基于LSTM网络的片上微调方法及装置。
背景技术
在深度学习领域,神经网络已经被用于处理各类数据,如:CNN在图像领域的应用、全连接神经网络在分类问题的应用等。随着神经网络在各个领域的渗透,以统计机器学习为主的NLP问题,也逐渐开始采用深度学习的方法来解决。RNN在面对长序列数据时,很容易便遭遇梯度弥散,使得RNN只具备短期记忆,即RNN面对长序列数据,仅可获取较近的序列的信息,而对较早期的序列不具备记忆功能,从而丢失信息。为此,为解决该类问题,便提出了长短期记忆网络LSTM(Long Short Term Memory,LSTM)。
长短期记忆网络LSTM是一种循环神经网络变体,是一种特殊的RNN循环神经网络,广泛用于图像压缩、语音识别以及自然语言处理等,长短期记忆网络LSTM通过引入门控机制和用于存储长短期历史信息的状态值,有效解决循环神经网络训练过程中出现的梯度消失问题。
与其他深度学习网络类似,长短期记忆网络LSTM网络模型大小也在不断增加,以提高其准确性,大规模的LSTM神经网络中包含大量参数和复杂的计算逻辑,长短期记忆网络LSTM中引入了记忆元,记忆元是整个LSTM神经元的核心结点增加了网络推理的计算复杂度和空间复杂度,在存储消耗、计算效率和功耗方面存在一些问题,计算平台如:CPU、GPU无法快速高效的计算LSTM网络。
发明内容
本申请提供一种基于LSTM网络的片上微调方法及装置,以解决计算平台无法快速高效的计算LSTM网络的问题。
第一方面,本申请提供一种基于LSTM网络的片上微调方法,包括:
根据LSTM网络模型的参数,生成计算参数;
根据所述计算参数对输入值和权重值进行细粒度切分,以及生成指令集合;
在神经网络处理器NPU读取所述指令集合;
根据所述指令集合执行NPU片上计算,以生成中间值和LSTM网络输出值;
将所述LSTM网络输出值传输至误差函数,并通过所述误差函数得到误差值;
根据所述误差值,更新所述权重值以及偏置值,得到更新后的权重值以及偏置值;
使用所述更新后的权重值以及偏置值反向传播;
以根据所述指令集合执行新一轮NPU片上计算。
可选的,根据LSTM网络模型的参数,生成计算参数的步骤之前还包括:
对所述LSTM网络模型的输入值以及权重值进行预处理,所述预处理包括将所述LSTM网络模型的输入值以及权重值量化至低精度int8,用于进行NPU片上计算。
可选的,所述计算参数包括:输入尺寸、输出尺寸、输入通道的分组数、输出通道的分组数、输入通道每组数量、输出通道每组数量、单次在板计算尺寸、单次在板任务中间计算结果尺寸。
可选的,根据所述计算参数对输入值和权重值进行细粒度切分,以及生成指令集合的步骤还包括:
根据所述计算参数对输入值以及权重值进行切割分块,得到单次在板计算块;
对所述在板计算块进行细粒度切分。
可选的,所述指令集合包括:加载指令、储存指令、矩阵乘指令以及矢量计算指令;
其中,所述加载指令用于完成存储器DDR中连续多组内存的数据到NPU片上指定地址的数据搬运;所述存储指令用于完成写入计算结果到存储器DDR中;所述矩阵乘指令用于完成单位输入通道上的数据在单位输出通道上的乘累加运算,并与单位输出通道上的初始累加值相加;所述矢量计算指令用于完成输入通道上单位元素的偏置加法与移位激活。
可选的,根据所述指令集合执行NPU片上计算,以生成中间值和LSTM网络输出值还包括:软件CPU对所述中间值进一步处理,所述进一步处理包括:对所述中间值进行tanh函数计算以及矩阵Hadamard乘积运算,所述tanh函数计算用于计算记忆元,所述矩阵Hadamard乘积运算用于计算当前记忆元。
可选的,所述tanh函数为激活函数,所述tanh函数的值范围为(-1,1),所述记忆元的计算公式为:
;
其中,输入为,和为权重参数,前一时间步的隐状态为,为偏置参数;
所述当前记忆元的计算公式为:
;
其中,为输入门,为记忆元,是遗忘门,为当前记忆元;所述输入门用于控制采用来自记忆元的新数据的数量;所述遗忘门用于控制保留原始记忆元的内容的数量。
可选的,根据所述更新后的权重值以及偏置值反向传播的步骤之后还包括:
重新将所述LSTM网络输出值传输至误差函数,通过所述误差函数得到新的误差值;
如果所述新的误差值小于或等于误差阈值,输出更新后的权重值以及偏置值;
如果所述新的误差值大于误差阈值,再次更新所述权重值以及偏置值,以及将所述LSTM网络输出值传输至误差函数。
第二方面,本申请提供一种基于LSTM网络的片上微调装置,包括:CPU模块以及神经网络处理器NPU模块;
其中,CPU模块,用于根据LSTM网络模型的参数,生成计算参数;根据所述计算参数对输入值和权重值进行细粒度切分以及生成指令集合;根据所述指令集合进行NPU片上计算,生成中间值以及LSTM网络输出值;
神经网络处理器NPU模块,用于将所述LSTM网络输出值传输至误差函数,通过所述误差函数得到误差值;根据所述误差值,对所述权重值以及偏置值更新,得到更新后的权重值以及偏置值;使用所述更新后的权重值以及偏置值反向传播至神经网络处理器NPU,以根据所述指令集合进行新一轮NPU片上计算。
可选的,所述神经网络处理器NPU模块包括:加载模块、存储模块、矩阵乘模块以及矢量计算模块;
其中,加载模块,所述加载模块用于完成存储器DDR中连续多组内存的数据到NPU片上指定地址的数据搬运;
存储模块,所述存储模块用于完成写入计算结果到存储器DDR中;
矩阵乘模块,所述矩阵乘模块用于完成单位输入通道上的数据在单位输出通道上的乘累加运算,并与单位输出通道上的初始累加值相加;
矢量计算模块,所述矢量计算模块用于完成输入通道上单位元素的偏置加法与移位激活。
由以上技术方案可知,本申请提供一种基于LSTM网络的片上微调方法及装置,所述方法包括:根据LSTM网络模型的参数,生成计算参数;根据所述计算参数对输入值和权重值进行细粒度切分,以及生成指令集合;在神经网络处理器NPU读取所述指令集合;根据所述指令集合执行NPU片上计算,以生成中间值和LSTM网络输出值;将所述LSTM网络输出值传输至误差函数,并通过所述误差函数得到误差值;根据所述误差值,更新所述权重值以及偏置值;使用所述更新后的权重值以及偏置值反向传播;以根据所述指令集合执行新一轮NPU片上计算。本申请提供的方法通过CPU、NPU协同,将LSTM网络中的运算分工,以解决CPU、GPU无法快速高效的计算LSTM网络的问题。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一种基于LSTM网络的片上微调方法流程图;
图2为基于软硬件协同的推理和训练系统结构示意图;
图3为神经网络处理器NPU模块结构示意图;
图4为片上任务计算切分示意图;
图5为在板计算块到细粒度的切分示意图;
图6为一种LSTM网络及片上训练流程图;
图7为长短期记忆模型中的输入门、遗忘门和输出门的示意图;
图8长短期记忆网络模型中记忆元结构图。
具体实施方式
下面将详细地对实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下实施例中描述的实施方式并不代表与本申请相一致的所有实施方式。仅是与权利要求书中所详述的、本申请的一些方面相一致的系统和方法的示例。
长短期记忆网络LSTM是一种循环神经网络变体,广泛用于图像压缩、语音识别以及自然语言处理等,LSTM通过引入门控机制和用于存储长短期历史信息的状态值,有效解决循环神经网络训练过程中出现的梯度消失问题,与其他深度学习网络类似,LSTM网络的模型大小也在不断增加以提高其准确性,大规模的LSTM神经网络中包含大量参数和复杂的计算逻辑,在存储消耗、计算效率和功耗方面存在一些问题,计算平台如:CPU、GPU无法快速高效的计算LSTM网络。
为解决上述问题,参见图1,本申请部分实施例中提供一种基于LSTM网络的片上微调方法,包括:S100,根据LSTM网络模型的参数,生成计算参数;在一些实施例中,计算参数包括:输入尺寸、输出尺寸、输入通道的分组数、输出通道的分组数、输入通道每组数量、输出通道每组数量、单次在板计算尺寸、单次在板任务中间计算结果尺寸。
在一些实施例中,根据LSTM网络模型的参数,生成计算参数的步骤之前还包括:对LSTM网络模型的输入值以及权重值进行预处理,预处理包括将LSTM网络模型的输入值以及权重值量化至低精度int8,用于进行NPU片上计算。
S200,根据计算参数对输入值和权重值进行细粒度切分,以及生成指令集合;因NPU片上计算是以最小单元1×1×32进行计算,所以在一些实施例中,参见图5,图5为块到细粒度的切分示意图,根据计算参数对输入值和权重值进行细粒度切分的步骤还包括:根据计算参数对输入值以及权重值进行切割分块,得到单次在板计算块;对在板计算块进行细粒度切分。对第一次切割得到的块mb_size,再进行细粒度切分。
在一些实施例中,对输入值和权重值也可以改变切分测量,不需要多次切分到细粒度单元,也可以通过一次切分后,将片上计算任务切分到片上资源支持的粗粒度也可以达到同样目的。
在一些实施例中,指令集合包括:加载指令、储存指令、矩阵乘指令以及矢量计算指令;其中,加载指令用于完成存储器DDR中连续多组内存的数据到NPU片上指定地址的数据搬运;存储指令用于完成写入计算结果到存储器DDR中;矩阵乘指令用于完成单位输入通道上的数据在单位输出通道上的乘累加运算,并与单位输出通道上的初始累加值相加;其中单位输入通道不超过此时硬件结构阵列的最大乘累加数,单位输出通道不超过此时硬件结构阵列的并行输出数;矢量计算指令用于完成输入通道上单位元素的偏置加法与移位激活。
需要说明的是,上述步骤S100和S200为可以基于运行神经网络系统设备的CPU完成。
S300,在神经网络处理器NPU读取指令集合。
S400,根据指令集合执行NPU片上计算,以生成中间值和LSTM网络输出值;在一些实施例中,根据指令集合执行NPU片上计算,以生成中间值和LSTM网络输出值还包括:软件CPU对中间值进一步处理,进一步处理包括:对中间值进行tanh函数计算以及矩阵Hadamard乘积运算,所述tanh函数计算用于计算记忆元,所述矩阵Hadamard乘积运算用于计算当前记忆元。
参见图7、图8,在一些实施例中,tanh函数为激活函数,tanh函数的值范围为(-1,1),记忆元的计算公式为:
;
其中,输入为,和为权重参数,前一时间步的隐状态为,为偏置参数;
当前记忆元的计算公式为:
;
其中,为输入门,为记忆元,是遗忘门,为当前记忆元;输入门用于控制采用来自记忆元的新数据的数量;遗忘门用于控制保留原始记忆元的内容的数量。
关于上述提到的输入门、输出门、遗忘门以及隐状态,长短期记忆网络引入了记忆元,记忆元为隐状态的一种特殊类型,隐状态也可以称为隐藏变量,隐状态储存了到时间步t-1的序列信息。记忆元与隐状态具有相同的形状,是用于记录附加的信息。为了控制记忆元,需要许多门。其中一个门用来从单元中输出条目,将其称为输出门;另外一个门用来决定何时将数据读入单元,称为输入门;同时还需要一种机制来重置单元的内容,由遗忘门来管理,这种设计的动机与门控循环单元相同,能够通过专用机制决定什么时候记忆或忽略隐状态中的输入。
当前时间步的输入和前一个时间步的隐状态作为数据送入长短期记忆网络的门中,如图7所示。它们由三个具有sigmoid激活函数的全连接层处理,以计算输入门、遗忘门和输出门的值。因此,这三个门的值都在(0,1)的范围内。
例如:假设有h个隐藏单元,批量大小为n,输入数为d。因此,输入为,前一时间步的隐状态为。相应地,时间步t的门被定义如下:输入门是,
遗忘门是,输出门是。它们的计算方法如下:
;
;
;
其中,,,和,,是权重参数,,,是偏置参数。
候选记忆元,它的计算与上述的三个门的计算类似,但是使用tanh函数作为激活函数,函数的值范围为(-1,1)。下面导出在时间步t处的方程:
;
其中,和是权重参数,是偏置参数。
在长短期记忆网络中有一种机制来控制输入和遗忘,即输入门和遗忘门,输出门用于控制采用多少来自的新数据,而遗忘门用于控制保留多少过去的记忆元的内容。使用按元素乘法,得出:
;
其中,符号是矩阵Hadamard乘积运算,也就是两个矩阵对应位置元素相乘。
如果遗忘门始终为1且输入门始终为0,则过去的记忆元将随时间被保存并传递到当前时间步。引入这种设计是为了缓解梯度消失问题,并更好地捕获序列中的长距离依赖关系。计算隐状态公式如下:
;
在一些实施例中,上述计算还可以通过查找表或线性近似来完成。
需要说明的是,上述步骤S300和S400为可以基于运行神经网络处理器NPU完成。
S500,将LSTM网络输出值传输至误差函数,并通过误差函数得到误差值;
S600,根据误差值,更新权重值以及偏置值,得到更新后的权重值以及偏置值。
S700,使用更新后的权重值以及偏置值反向传播;可以理解的是,S500和S600的步骤为前向传播过程,S700为反向传播过程,通过前向传播和反向传播相结合,达到片上微调的目的,从而提高网络模型推理的精度。
在一些实施例中,根据更新后的权重值以及偏置值反向传播的步骤之后还包括:
重新将LSTM网络输出值传输至误差函数,通过误差函数得到新的误差值;
如果新的误差值小于或等于误差阈值,输出更新后的权重值以及偏置值;
如果新的误差值大于误差阈值,再次更新权重值以及偏置值,以及将LSTM网络输出值传输至误差函数。
本实施例提出的方法是通过反向传播来更新NPU输入的权重值和偏置值,再次执行前向传播计算得到新一轮的误差值,直至得到预期要求,即停止迭代,从而达到基于软硬件协同片上训练的目的。
其中,前向传播具体为将训练集中的数据输入至神经网络的输入层、经过隐藏层,最后达到输出层并输出结果,具体的,前向传播是将输入节点将由训练集获取到的输入值经过一系列操作依次从隐含层传播至输出层,第层节点的当前值是:
;
其中,是上一层单元i到单元j连接的权重,是上一层单元i的当前值,是单元j的偏置,是激活函数的的一种,可以将一个较大的输入值域映射到较小的区间[0,1], ()表达式如下:。
以此,通过前向传播可得到输出节点的预测值,这个预测值和测试集中输出结点的正确输出值存在一定的误差。但由于结果有误差,则计算估计值与实际值之间的误差,并将该误差从输出层向隐藏层反向传播,直至传播至输入层,这个过程即为反向传播过程,在反向传播过程中,根据误差可以及时调整权重值,从而使总损失函数减小。迭代将该误差从输出层向隐藏层反向传播,直至传播至输入层这三个步骤,直至满足停止准则。
反向传播过程为:从输出层依次沿着隐含层、输入层传播误差,并更新每个结点的权重值以及反映网络预测的偏置值;输出单元j的误差通过下式计算:
;
其中,是单元j的值,是训练集中给出的正确输出值,是激活函数 ()的导数。隐含单元j的误差通过下式计算:
;
其中,是由下一较高层中单元k到单元j的连接权,是单元k的误差,前向传播得到上述误差值后,通过误差值对权重值以及权重值进行更新,权重值更新通过下式计算:
;
;
其中,是的改变,变量是学习率,通常取0到1之间的值,学习率帮助避免陷入判定空间的局部最小,学习率调整规则:将学习率设置为1/t,其中,t是对训练样本迭代的次数。
偏置值通过下式计算:
;
;
其中,是对的改变。当前一周期所有的都小于指定的阈值或者模型的推理精度达到预期值,则终止迭代更新。
S800,以根据指令集合执行新一轮NPU片上计算。
本申请通过CPU、NPU协同的方式来实现LSTM网络的片上计算和片上训练,对输入值和权重值的切割分组、NPU计算任务指令集合生成、LSTM网络的运算和矩阵Hadamard乘积运算由基于运行神经网络系统设备的CPU完成;矩阵乘累加运算、激活函数运算以及矩阵元素计算由运行神经网络处理器NPU完成;将LSTM网络中的运算进行分工。
本实施例中,参见图2,通过CPU与NPU的协同来完成LSTM网络中输入门、输出门以及遗忘门的计算,本实施例中的方法支持挂载多个人工智能融合核,通过分配不同的地址空间,可以进行多个NPU并行计算,NPU片上计算,基于LSTM输入门、输出门、遗忘门以及候选记忆元公式,支持最多八个人工智能融合核,也就是支持最多八个矩阵乘并行计算,这样可以有效提高LSTM网络计算的实时性,减少CPU的等待时间,当NPU片上计算,得到中间结果后,CPU可以立即启动计算,从而减少了系统计算延迟。人工智能融合核的数量可根据LSTM的计算量来选择,选择完成后,CPU根据设定的核心访问地址,对多个NPU进行控制调度,从而达到并行计算的目的。
可以理解的是,本实施例中的神经网络处理器NPU能够基于不同网络模型作出相应的计算参数以及对在板计算块的切割方案,可同时复用于神经网络模型中的resnet网络和vgg网络,可参见图4、图5。
本申请部分实施例还提供一种基于LSTM网络的片上微调装置,参见图3,包括:CPU模块以及神经网络处理器NPU模块;
其中,CPU模块用于根据LSTM网络模型的参数,生成计算参数;根据计算参数对输入值和权重值进行细粒度切分,以及生成指令集合;根据指令集合进行NPU片上计算,生成中间值以及LSTM网络输出值;神经网络处理器NPU模块用于将LSTM网络输出值传输至误差函数,通过误差函数得到误差值;根据误差值,对权重值以及偏置值更新,得到更新后的权重值以及偏置值;使用更新后的权重值以及偏置值反向传播至神经网络处理器NPU,以根据指令集合执行新一轮NPU片上计算。
在一些实施例中,神经网络处理器NPU模块包括:加载模块、存储模块、矩阵乘模块以及矢量计算模块;
其中,加载模块用于完成存储器DDR中连续多组内存的数据到NPU片上指定地址的数据搬运;存储模块用于完成写入计算结果到存储器DDR中;矩阵乘模块用于完成单位输入通道上的数据在单位输出通道上的乘累加运算,并与单位输出通道上的初始累加值相加;矢量计算模块用于完成输入通道上单位元素的偏置加法与移位激活。
由以上实施例可知,本实施例提供一种基于LSTM网络的片上微调方法及装置,方法包括:根据LSTM网络模型的参数,生成计算参数;根据计算参数对输入值和权重值进行细粒度切分,以及生成指令集合;在神经网络处理器NPU读取指令集合;根据指令集合执行NPU片上计算,以生成中间值和LSTM网络输出值;将LSTM网络输出值传输至误差函数,并通过误差函数得到误差值;根据误差值,更新权重值以及偏置值;使用更新后的权重值以及偏置值反向传播;以根据指令集合执行新一轮NPU片上计算。本申请提供的方法通过CPU、NPU协同,将LSTM网络中的运算分工,以解决CPU、GPU无法快速高效的计算LSTM网络的问题。
本申请提供的实施例之间的相似部分相互参见即可,以上提供的具体实施方式只是本申请总的构思下的几个示例,并不构成本申请保护范围的限定。对于本领域的技术人员而言,在不付出创造性劳动的前提下依据本申请方案所扩展出的任何其他实施方式都属于本申请的保护范围。
Claims (10)
1.一种基于LSTM网络的片上微调方法,其特征在于,包括:
根据LSTM网络模型的参数,生成计算参数;
根据所述计算参数对输入值和权重值进行细粒度切分,以及生成指令集合;
在神经网络处理器NPU读取所述指令集合;
根据所述指令集合执行NPU片上计算,以生成中间值和LSTM网络输出值;
将所述LSTM网络输出值传输至误差函数,并通过所述误差函数得到误差值;
根据所述误差值,更新所述权重值以及偏置值,得到更新后的权重值以及偏置值;
使用所述更新后的权重值以及偏置值反向传播;
以根据所述指令集合执行新一轮NPU片上计算。
2.根据权利要求1所述的基于LSTM网络的片上微调方法,其特征在于,根据LSTM网络模型的参数,生成计算参数的步骤之前还包括:
对所述LSTM网络模型的输入值以及权重值进行预处理,所述预处理包括将所述LSTM网络模型的输入值以及权重值量化至低精度int8,用于进行NPU片上计算。
3.根据权利要求1所述的基于LSTM网络的片上微调方法,其特征在于,所述计算参数包括:输入尺寸、输出尺寸、输入通道的分组数、输出通道的分组数、输入通道每组数量、输出通道每组数量、单次在板计算尺寸、单次在板任务中间计算结果尺寸。
4.根据权利要求1所述的基于LSTM网络的片上微调方法,其特征在于,根据所述计算参数对输入值和权重值进行细粒度切分,以及生成指令集合的步骤还包括:
根据所述计算参数对输入值以及权重值进行切割分块,得到单次在板计算块;
对所述在板计算块进行细粒度切分。
5.根据权利要求1所述的基于LSTM网络的片上微调方法,其特征在于,所述指令集合包括:
加载指令,所述加载指令用于完成存储器DDR中连续多组内存的数据到NPU片上指定地址的数据搬运;
存储指令,所述存储指令用于完成写入计算结果到存储器DDR中;
矩阵乘指令,所述矩阵乘指令用于完成单位输入通道上的数据在单位输出通道上的乘累加运算,并与单位输出通道上的初始累加值相加;
矢量计算指令,所述矢量计算指令用于完成输入通道上单位元素的偏置加法与移位激活。
6.根据权利要求1所述的基于LSTM网络的片上微调方法,其特征在于,根据所述指令集合执行NPU片上计算,以生成中间值和LSTM网络输出值还包括:软件CPU对所述中间值进一步处理,所述进一步处理包括:
对所述中间值进行tanh函数计算以及矩阵Hadamard乘积运算,所述tanh函数计算用于计算记忆元,所述矩阵Hadamard乘积运算用于计算当前记忆元。
7.根据权利要求6所述的基于LSTM网络的片上微调方法,其特征在于,
所述tanh函数为激活函数,所述tanh函数的值范围为(-1,1),所述记忆元的计算公式为:
;
其中,输入为,和为权重参数,前一时间步的隐状态为,为偏置参数;
所述当前记忆元的计算公式为:
;
其中,为输入门,为记忆元,是遗忘门,为当前记忆元;所述输入门用于控制采用来自所述记忆元的新数据的数量;所述遗忘门用于控制保留原始记忆元的内容的数量。
8.根据权利要求1所述的基于LSTM网络的片上微调方法,其特征在于,根据所述更新后的权重值以及偏置值反向传播的步骤之后还包括:
重新将所述LSTM网络输出值传输至误差函数,通过所述误差函数得到新的误差值;
如果所述新的误差值小于或等于误差阈值,输出更新后的权重值以及偏置值;
如果所述新的误差值大于误差阈值,再次更新所述权重值以及偏置值,以及将所述LSTM网络输出值传输至误差函数。
9.一种基于LSTM网络的片上微调装置,包括:
CPU模块,用于根据LSTM网络模型的参数,生成计算参数;根据所述计算参数对输入值和权重值进行细粒度切分以及生成指令集合;根据所述指令集合进行NPU片上计算,生成中间值以及LSTM网络输出值;
神经网络处理器NPU模块,用于将所述LSTM网络输出值传输至误差函数,通过所述误差函数得到误差值;根据所述误差值,对所述权重值以及偏置值更新,得到更新后的权重值以及偏置值;使用所述更新后的权重值以及偏置值反向传播至神经网络处理器NPU,以根据所述指令集合进行新一轮NPU片上计算。
10.根据权利要求9所述的基于LSTM网络的片上微调装置,其特征在于,所述神经网络处理器NPU模块包括:
加载模块,所述加载模块用于完成存储器DDR中连续多组内存的数据到NPU片上指定地址的数据搬运;
存储模块,所述存储模块用于完成写入计算结果到存储器DDR中;
矩阵乘模块,所述矩阵乘模块用于完成单位输入通道上的数据在单位输出通道上的乘累加运算,并与单位输出通道上的初始累加值相加;
矢量计算模块,所述矢量计算模块用于完成输入通道上单位元素的偏置加法与移位激活。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310147794.3A CN116029332B (zh) | 2023-02-22 | 2023-02-22 | 一种基于lstm网络的片上微调方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310147794.3A CN116029332B (zh) | 2023-02-22 | 2023-02-22 | 一种基于lstm网络的片上微调方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116029332A true CN116029332A (zh) | 2023-04-28 |
CN116029332B CN116029332B (zh) | 2023-08-22 |
Family
ID=86074036
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310147794.3A Active CN116029332B (zh) | 2023-02-22 | 2023-02-22 | 一种基于lstm网络的片上微调方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116029332B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108009674A (zh) * | 2017-11-27 | 2018-05-08 | 上海师范大学 | 基于cnn和lstm融合神经网络的空气pm2.5浓度预测方法 |
CN108280514A (zh) * | 2018-01-05 | 2018-07-13 | 中国科学技术大学 | 基于fpga的稀疏神经网络加速系统和设计方法 |
CN109993297A (zh) * | 2019-04-02 | 2019-07-09 | 南京吉相传感成像技术研究院有限公司 | 一种负载均衡的稀疏卷积神经网络加速器及其加速方法 |
CN111931927A (zh) * | 2020-10-19 | 2020-11-13 | 翱捷智能科技(上海)有限公司 | 一种在npu中减少计算资源占用的方法及装置 |
CN113469350A (zh) * | 2021-07-07 | 2021-10-01 | 武汉魅瞳科技有限公司 | 一种适于npu的深度卷积神经网络加速方法和系统 |
CN114207579A (zh) * | 2019-08-06 | 2022-03-18 | 微软技术许可有限责任公司 | 包括标量处理单元的基于张量的硬件加速器 |
CN114626515A (zh) * | 2020-12-14 | 2022-06-14 | 三星电子株式会社 | 基于通道数量执行卷积运算的npu装置及其操作方法 |
CN115222028A (zh) * | 2022-07-07 | 2022-10-21 | 西安电子科技大学 | 基于fpga的一维cnn-lstm加速平台及实现方法 |
CN115293197A (zh) * | 2022-06-29 | 2022-11-04 | 中国海洋大学 | 一种基于长短期记忆网络的钻孔应变数据异常检测方法 |
-
2023
- 2023-02-22 CN CN202310147794.3A patent/CN116029332B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108009674A (zh) * | 2017-11-27 | 2018-05-08 | 上海师范大学 | 基于cnn和lstm融合神经网络的空气pm2.5浓度预测方法 |
CN108280514A (zh) * | 2018-01-05 | 2018-07-13 | 中国科学技术大学 | 基于fpga的稀疏神经网络加速系统和设计方法 |
CN109993297A (zh) * | 2019-04-02 | 2019-07-09 | 南京吉相传感成像技术研究院有限公司 | 一种负载均衡的稀疏卷积神经网络加速器及其加速方法 |
CN114207579A (zh) * | 2019-08-06 | 2022-03-18 | 微软技术许可有限责任公司 | 包括标量处理单元的基于张量的硬件加速器 |
CN111931927A (zh) * | 2020-10-19 | 2020-11-13 | 翱捷智能科技(上海)有限公司 | 一种在npu中减少计算资源占用的方法及装置 |
CN114626515A (zh) * | 2020-12-14 | 2022-06-14 | 三星电子株式会社 | 基于通道数量执行卷积运算的npu装置及其操作方法 |
CN113469350A (zh) * | 2021-07-07 | 2021-10-01 | 武汉魅瞳科技有限公司 | 一种适于npu的深度卷积神经网络加速方法和系统 |
CN115293197A (zh) * | 2022-06-29 | 2022-11-04 | 中国海洋大学 | 一种基于长短期记忆网络的钻孔应变数据异常检测方法 |
CN115222028A (zh) * | 2022-07-07 | 2022-10-21 | 西安电子科技大学 | 基于fpga的一维cnn-lstm加速平台及实现方法 |
Non-Patent Citations (1)
Title |
---|
YIRAN CHEN等: "A Survey of Accelerator Architectures for Deep Neural Networks", ENGINEERING, vol. 6, no. 3, pages 264 - 274, XP055810329, DOI: 10.1016/j.eng.2020.01.007 * |
Also Published As
Publication number | Publication date |
---|---|
CN116029332B (zh) | 2023-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Goldfarb et al. | Practical quasi-newton methods for training deep neural networks | |
Chen et al. | Dynamical isometry and a mean field theory of RNNs: Gating enables signal propagation in recurrent neural networks | |
EP3504666B1 (en) | Asychronous training of machine learning model | |
US11900260B2 (en) | Methods, devices and media providing an integrated teacher-student system | |
US20220121903A1 (en) | Method of performing splitting in neural network model by means of multi-core processor, and related product | |
WO1996014616A1 (en) | Concurrent learning and performance information processing system | |
CN111709493B (zh) | 对象分类方法、训练方法、装置、设备及存储介质 | |
US11531879B1 (en) | Iterative transfer of machine-trained network inputs from validation set to training set | |
CN111723910A (zh) | 构建多任务学习模型的方法、装置、电子设备及存储介质 | |
Bonnet et al. | A measure theoretical approach to the mean-field maximum principle for training NeurODEs | |
US6031979A (en) | Circuit partitioning apparatus for executing parallel circuit simulation and method therefor | |
Loftus | Selective inference after cross-validation | |
CN113826117A (zh) | 来自神经网络的高效二元表示 | |
Mesquita et al. | Embarrassingly parallel MCMC using deep invertible transformations | |
CN115017178A (zh) | 数据到文本生成模型的训练方法和装置 | |
CN112257751A (zh) | 神经网络剪枝方法 | |
Zhang et al. | Musings on deep learning: Properties of sgd | |
CN116029332B (zh) | 一种基于lstm网络的片上微调方法及装置 | |
CN114638823B (zh) | 基于注意力机制序列模型的全切片图像分类方法及装置 | |
Claveria et al. | An application of deep learning for exchange rate forecasting | |
CN117035045A (zh) | 模型参数更新方法、装置、设备、存储介质和程序产品 | |
Jiang et al. | One Forward is Enough for Neural Network Training via Likelihood Ratio Method | |
US20230078203A1 (en) | Configurable nonlinear activation function circuits | |
JPH076146A (ja) | 並列データ処理システム | |
CN114595641A (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 |