用于情感识别的脉冲神经网络部署方法、装置及设备与流程
未命名
10-20
阅读:102
评论:0
1.本技术涉及人工智能技术领域,尤其涉及一种用于情感识别的脉冲神经网络部署方法、装置及设备。
背景技术:
2.情感识别是一个重要的研究方向,已经催生了很多相关的算法技术。然而,在应用部署时需要考虑一个重要问题就是能耗。脉冲神经网络由于低能耗的特性受到了广泛关注。但是,现有的脉冲神经网络的情感识别算法通常是用软件进行仿真,在进行实际应用部署的时候,在硬件资源受限的终端情况下,很难直接对复杂度较高的网络模型进行直接部署。
技术实现要素:
3.本技术实施例提供一种用于情感识别的脉冲神经网络部署方法、装置及设备,以解决现有技术硬件资源受限的终端很难直接对复杂度较高的网络模型进行直接部署的问题。
4.为了解决上述技术问题,本技术实施例是这样实现的:第一方面,本技术实施例提供了一种脉冲神经网络部署方法,所述方法包括:基于选定的情感识别场景,获取标注有情感类别标签的标注数据;基于脉冲神经元和网络拓扑信息,确定脉冲神经网络的网络结构;基于所述标注数据对所述脉冲神经网络进行权重训练及权重量化处理,生成所述脉冲神经网络的量化突触权重;基于所述脉冲神经网络的网络结构,构建用于执行网络操作的硬件设备;将所述量化突触权重逐层部署于所述硬件设备上。
5.可选地,所述基于脉冲神经元和网络拓扑信息,确定脉冲神经网络的网络结构,包括:获取所述脉冲神经元;基于选择的所述网络拓扑信息,将所述脉冲神经元相连,得到脉冲神经网络的初始网络结构;对所述脉冲神经网络的权重进行初始化;基于所述标注数据对权重初始化后的脉冲神经网络进行前向推理处理,得到所有的脉冲频率;在所述所有的脉冲频率均不为0的情况下,将权重初始化后的脉冲神经网络的网络结构作为最终的脉冲神经网络的网络结构。
6.可选地,在所述基于所述标注数据对权重初始化后的脉冲神经网络进行前向推理处理,得到所有的脉冲频率之后,还包括:在所述所有的脉冲频率中存在为0的脉冲频率的情况下,重新执行所述获取所述
脉冲神经元,至所述将权重初始化后的初始脉冲神经网络结构作为最终的脉冲神经网络结构的步骤。
7.可选地,所述基于所述标注数据对所述脉冲神经网络进行权重训练及权重量化处理,生成所述脉冲神经网络的量化突触权重,包括:基于所述标注数据对所述脉冲神经网络进行权重训练,得到所述脉冲神经网络的突触权重;对所述突触权重进行量化处理,生成所述脉冲神经网络的量化突触权重。
8.可选地,所述基于所述标注数据对所述脉冲神经网络进行权重训练,得到所述脉冲神经网络的突触权重,包括:基于所述标注数据对所述脉冲神经网络进行前向推理,得到所述标注数据对应的预测情感类别;基于所述预测情感类别和所述标注数据对应的情感类别标签之间的差值,采用反向传播的方式更新所述脉冲神经网络的初始突触权重;迭代执行所述基于所述标注数据对所述脉冲神经网络进行前向推理,得到所述标注数据对应的预测情感类别,至所述采用反向传播的方式更新所述脉冲神经网络的初始突触权重的步骤,直至所述预测情感类别与所述情感类别标签相同,得到所述脉冲神经网络的更新后的突触权重。
9.可选地,所述对所述突触权重进行量化处理,生成所述脉冲神经网络的量化突触权重,包括:获取所有的所述突触权重的均值和方差;基于所述均值、所述方差和预先设定的取值范围,对所述突触权重进行量化处理,生成所述脉冲神经网络的量化突触权重。
10.可选地,所述基于所述均值、所述方差和预先设定的取值范围,对所述突触权重进行量化处理,生成所述脉冲神经网络的量化突触权重,包括:基于所述均值和所述方差,计算得到权重最大值和权重最小值;获取所述取值范围对应的取值最大值和取值最小值;基于所述权重最大值、所述权重最小值、所述取值最大值和所述取值最小值,计算得到所述脉冲神经网络的量化突触权重。
11.可选地,所述基于所述权重最大值、所述权重最小值、所述最大值和所述最小值,计算得到所述脉冲神经网络的量化突触权重,包括:基于下述公式计算得到所述量化突触权重:
[0012][0013][0014]
上述公式中,为量化突触权重,为权重最大值,为权重最小值,为取值最大值,为取值最小值,和为中间变量。
[0015]
可选地,所述基于所述脉冲神经网络的网络结构,构建用于执行网络操作的硬件设备,包括:基于所述脉冲神经网络的各网络层的网络结构,构建每个所述网络层对应的忆阻器阵列,每个网络层对应于一个忆阻器阵列;构建用于池化计算和电压存储的基于fpga的硬件设备。
[0016]
可选地,所述基于所述脉冲神经网络的各网络层的网络结构,构建每个所述网络层对应的忆阻器阵列,包括:基于每个所述网络层的脉冲神经元之间的连接权重,构建突触矩阵;基于所述突触矩阵的行列数目,构建得到每个所述网络层对应的忆阻器阵列。
[0017]
可选地,所述构建用于池化计算和电压存储的基于fpga的硬件设备,包括:构建arm处理器;将所述arm处理器通过外部接口与上位机相连;将所述arm处理器通过axi总线与ddr3、所述忆阻器阵列和池化计算模块相连;其中所述ddr3用于存储脉冲神经网络的各网络层的膜电压阈值和膜电压,所述池化计算模块用于使用fpga的逻辑计算单元进行平均池化计算。
[0018]
可选地,所述将所述量化突触权重逐层部署于所述硬件设备上,包括:采用逐层部署及参数逐步微调的方式,将各所述网络层的量化突触权部署于各所述网络层对应的忆阻器阵列上。
[0019]
可选地,所述采用逐层部署及参数逐步微调的方式,将各所述网络层的量化突触权部署于各所述网络层对应的忆阻器阵列上,包括:基于所述脉冲神经网络中各所述网络层由先到后的顺序,依次将所述网络层的量化突触权重部署于所述网络层对应的忆阻器阵列上;在每次部署一个网络层的量化突触权重之后,基于该网络层对应的忆阻器阵列的输出,调整所述脉冲神经网络的模型参数,直至所有网络层的量化突触权重全部部署于对应的忆阻器阵列上。
[0020]
可选地,所述在每次部署一个网络层的量化突触权重之后,基于该网络层对应的忆阻器阵列的输出,调整所述脉冲神经网络的模型参数,包括:在每次部署一个网络层的量化突触权重之后,获取该网络层的忆阻器阵列处理所述标注数据得到的输出结果;基于所述输出结果对位于上位机上的网络层进行前向推理,得到预测情感类别;基于所述预测情感类别和所述标注数据对应的情感类别标签之间的差值,更新所述脉冲神经网络的模型参数;迭代执行所述获取该网络层的忆阻器阵列处理所述标注数据得到的输出结果,至所述更新所述脉冲神经网络的模型参数的步骤,直至所述脉冲神经网络的精度损失低于设定值。
[0021]
可选地,所述基于选定的情感识别场景,获取标注有情感类别标签的标注数据,包括:获取预先设定的情感类别;通过数据采集设备,采集符合所述情感识别场景的待标注数据;
基于所述情感类别对所述待标注数据添加相应的情感类别标签,得到所述标注数据。
[0022]
第二方面,本技术实施例提供了一种脉冲神经网络部署装置,所述装置包括:标注数据获取模块,用于基于选定的情感识别场景,获取标注有情感类别标签的标注数据;网络结构确定模块,用于基于脉冲神经元和网络拓扑信息,确定脉冲神经网络的网络结构;量化权重生成模块,用于基于所述标注数据对所述脉冲神经网络进行权重训练及权重量化处理,生成所述脉冲神经网络的量化突触权重;硬件设备构建模块,用于基于所述脉冲神经网络的网络结构,构建用于执行网络操作的硬件设备;量化权重部署模块,用于将所述量化突触权重逐层部署于所述硬件设备上。
[0023]
可选地,所述网络结构确定模块包括:脉冲神经元获取单元,用于获取所述脉冲神经元;初始网络结构获取单元,用于基于选择的所述网络拓扑信息,将所述脉冲神经元相连,得到脉冲神经网络的初始网络结构;权重初始化单元,用于对所述脉冲神经网络的权重进行初始化;脉冲频率获取单元,用于基于所述标注数据对权重初始化后的脉冲神经网络进行前向推理处理,得到所有的脉冲频率;网络结构获取单元,用于在所述所有的脉冲频率均不为0的情况下,将权重初始化后的脉冲神经网络的网络结构作为最终的脉冲神经网络的网络结构。
[0024]
可选地,所述装置还包括:重新执行模块,用于在所述所有的脉冲频率中存在为0的脉冲频率的情况下,重新执行所述脉冲神经元获取单元、所述初始网络结构获取单元、所述权重初始化单元、所述脉冲频率获取单元和所述网络结构获取单元。
[0025]
可选地,所述量化权重生成模块包括:突触权重获取单元,用于基于所述标注数据对所述脉冲神经网络进行权重训练,得到所述脉冲神经网络的突触权重;量化权重生成单元,用于对所述突触权重进行量化处理,生成所述脉冲神经网络的量化突触权重可选地,所述突触权重获取单元包括:预测类别获取子单元,用于基于所述标注数据对所述脉冲神经网络进行前向推理,得到所述标注数据对应的预测情感类别;初始权重更新子单元,用于基于所述预测情感类别和所述标注数据对应的情感类别标签之间的差值,采用反向传播的方式更新所述脉冲神经网络的初始突触权重;突触权重获取子单元,用于迭代执行所述预测类别获取单元和所述初始权重更新单元,直至所述预测情感类别与所述情感类别标签相同,得到所述脉冲神经网络的更新后的突触权重。
[0026]
可选地,所述量化权重生成单元包括:
突触权重计算子单元,用于获取所有的所述突触权重的均值和方差;量化权重生成子单元,用于基于所述均值、所述方差和预先设定的取值范围,对所述突触权重进行量化处理,生成所述脉冲神经网络的量化突触权重。
[0027]
可选地,所述量化权重生成子单元包括:权重极值计算子单元,用于基于所述均值和所述方差,计算得到权重最大值和权重最小值;取值极值获取子单元,用于获取所述取值范围对应的取值最大值和取值最小值;量化突触权重计算子单元,用于基于所述权重最大值、所述权重最小值、所述取值最大值和所述取值最小值,计算得到所述脉冲神经网络的量化突触权重。
[0028]
可选地,所述量化突触权重计算子单元包括:基于下述公式计算得到所述量化突触权重:
[0029][0030][0031]
上述公式中,为量化突触权重,为权重最大值,为权重最小值,为取值最大值,为取值最小值,和为中间变量。
[0032]
可选地,所述硬件设备构建模块包括:忆阻器阵列构建单元,用于基于所述脉冲神经网络的各网络层的网络结构,构建每个所述网络层对应的忆阻器阵列,每个网络层对应于一个忆阻器阵列;硬件设备构建单元,用于构建用于池化计算和电压存储的基于fpga的硬件设备。
[0033]
可选地,所述忆阻器阵列构建单元包括:突触矩阵构建子单元,用于基于每个所述网络层的脉冲神经元之间的连接权重,构建突触矩阵;忆阻器阵列构建子单元,用于基于所述突触矩阵的行列数目,构建得到每个所述网络层对应的忆阻器阵列。
[0034]
可选地,所述硬件设备构建单元包括:处理器构建子单元,用于构建arm处理器;第一连接子单元,用于将所述arm处理器通过外部接口与上位机相连;第二连接子单元,用于将所述arm处理器通过axi总线与ddr3、所述忆阻器阵列和池化计算模块相连;其中所述ddr3用于存储脉冲神经网络的各网络层的膜电压阈值和膜电压,所述池化计算模块用于使用fpga的逻辑计算单元进行平均池化计算。
[0035]
可选地,所述量化权重部署模块包括:量化权重部署单元,用于采用逐层部署及参数逐步微调的方式,将各所述网络层的量化突触权部署于各所述网络层对应的忆阻器阵列上。
[0036]
可选地,所述量化权重部署单元包括:
量化权重部署子单元,用于基于所述脉冲神经网络中各所述网络层由先到后的顺序,依次将所述网络层的量化突触权重部署于所述网络层对应的忆阻器阵列上;模型参数更新子单元,用于在每次部署一个网络层的量化突触权重之后,基于该网络层对应的忆阻器阵列的输出,调整所述脉冲神经网络的模型参数,直至所有网络层的量化突触权重全部部署于对应的忆阻器阵列上。
[0037]
可选地,所述模型参数更新子单元包括:输出结果获取子单元,用于在每次部署一个网络层的量化突触权重之后,获取该网络层的忆阻器阵列处理所述标注数据得到的输出结果;预测类别获取子单元,用于基于所述输出结果对位于上位机上的网络层进行前向推理,得到预测情感类别;参数更新子单元,用于基于所述预测情感类别和所述标注数据对应的情感类别标签之间的差值,更新所述脉冲神经网络的模型参数;迭代执行所述输出结果获取子单元、所述预测类别获取子单元和所述参数更新子单元,直至所述脉冲神经网络的精度损失低于设定值。
[0038]
可选地,所述标注数据获取模块包括:情感类别获取单元,用于获取预先设定的情感类别;待标注数据采集单元,用于通过数据采集设备,采集符合所述情感识别场景的待标注数据;标注数据获取单元,用于基于所述情感类别对所述待标注数据添加相应的情感类别标签,得到所述标注数据。
[0039]
第三方面,本技术实施例提供了一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述任一项所述的用于情感识别的脉冲神经网络部署方法。
[0040]
第四方面,本技术实施例提供了一种可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述任一项所述的用于情感识别的脉冲神经网络部署方法。
[0041]
在本技术实施例中,通过基于选定的情感识别场景,获取标注有情感类别标签的标注数据。基于脉冲神经元和网络拓扑信息,确定脉冲神经网络的网络结构。基于标注数据对脉冲神经网络进行权重训练及权重量化处理,生成脉冲神经网络的量化突触权重。基于脉冲神经网络的网络结构,构建用于执行网络操作的硬件设备。将量化突触权重逐层部署于硬件设备上。本技术实施例通过构建存算一体的硬件设备,可以实现高效的存算一体的模型部署,并且,通过逐层权重部署的方式,能够减少硬件部署过程中的精度损失。
[0042]
上述说明仅是本技术技术方案的概述,为了能够更清楚了解本技术的技术手段,而可依照说明书的内容予以实施,并且为了让本技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本技术的具体实施方式。
附图说明
[0043]
为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例的描述中所
需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0044]
图1为本技术实施例提供的一种用于情感识别的脉冲神经网络部署方法的步骤流程图;图2为本技术实施例提供的一种标注数据获取方法的步骤流程图;图3为本技术实施例提供的一种网络结构确定方法的步骤流程图;图4为本技术实施例提供的一种量化突触权重生成方法的步骤流程图;图5为本技术实施例提供的一种突触权重获取方法的步骤流程图;图6为本技术实施例提供的一种突触权重量化方法的步骤流程图;图7为本技术实施例提供的一种量化突触权重计算方法的步骤流程图;图8为本技术实施例提供的一种硬件设备构建方法的步骤流程图;图9为本技术实施例提供的一种忆阻器阵列构建方法的步骤流程图;图10为本技术实施例提供的另一种硬件设备构建方法的步骤流程图;图11为本技术实施例提供的一种权重部署方法的步骤流程图;图12为本技术实施例提供的另一种权重部署方法的步骤流程图;图13为本技术实施例提供的一种参数更新方法的步骤流程图;图14为本技术实施例提供的一种脉冲神经网络部署流程的示意图;图15为本技术实施例提供的一种应用数据采集流程的示意图;图16为本技术实施例提供的一种脉冲神经网络构建流程的示意图;图17为本技术实施例提供的一种脉冲神经网络权重训练流程的示意图;图18为本技术实施例提供的一种权重量化流程的示意图;图19为本技术实施例提供的一种基于忆阻器阵列的矩阵向量乘法操作的示意图;图20为本技术实施例提供的一种基于忆阻器阵列的硬件设备构建流程的示意图;图21为本技术实施例提供的一种一次循环向量矩阵乘法的示意图;图22为本技术实施例提供的一种二次循环向量矩阵乘法的示意图;图23为本技术实施例提供的一种阈值对比模块的示意图;图24为本技术实施例提供的一种基于fpga的硬件设备构建流程的示意图;图25为本技术实施例提供的一种软硬件协同权重映射流程的示意图;图26为本技术实施例提供的一种用于情感识别的脉冲神经网络部署装置的结构示意图;图27为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
[0045]
下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
[0046]
参照图1,示出了本技术实施例提供的一种用于情感识别的脉冲神经网络部署方
法的步骤流程图,如图1所示,该用于情感识别的脉冲神经网络部署方法可以包括:步骤101、步骤102、步骤103、步骤104和步骤105。
[0047]
步骤101:基于选定的情感识别场景,获取标注有情感类别标签的标注数据。
[0048]
本技术实施例可以应用于部署基于存算一体的情感识别脉冲神经网络的场景中。
[0049]
情感识别场景是指预先选定的用于进行情感识别的模型部署场景。
[0050]
在选定情感识别场景之后,可以基于选定的情感识别场景,获取标注有情感类别标签的标注数据,该标注数据即可以用于对情感识别模型进行训练。在具体实现中,可以预先选定情感类别,并基于选定的情感类别对采集的数据进行标注,以得到标注数据。对于该实现过程可以结合图2进行如下详细描述。
[0051]
参照图2,示出了本技术实施例提供的一种标注数据获取方法的步骤流程图。如图2所示,该标注数据获取方法可以包括:步骤201、步骤202和步骤203。
[0052]
步骤201:获取预先设定的情感类别。
[0053]
在本技术实施例中,可以由业务人员或系统预先选定情感类别。在具体实现中,可以采用粗粒度的分类方式,即选定情感类别为:消极和积极。也可以采用细粒度的分类方式,即选定情感类别为:高兴、悲伤、激动、生气、中性等。
[0054]
在获取到预先选定的情感类别之后,执行步骤202。
[0055]
步骤202:通过数据采集设备,采集符合所述情感识别场景的待标注数据。
[0056]
在获取到预先选定的情感类别之后,可以通过数据采集设备采集符合情感识别场景的待标注数据。在本示例中,待标注数据可以为图像数据,也可以为语音数据,还可以为会话文本数据等,对于待标注数据的类型可以根据业务需求而定,本实施例对此不加以限制。
[0057]
在通过数据采集设备采集到符合所述情感识别场景的待标注数据之后,执行步骤203。
[0058]
步骤203:基于所述情感类别对所述待标注数据添加相应的情感类别标签,得到所述标注数据。
[0059]
在通过数据采集设备采集到符合所述情感识别场景的待标注数据之后,则可以基于情感类别对待标注数据添加相应的情感类别标签,以得到标注数据。
[0060]
对于标注数据的采集标注过程可以如图15所示。如图所示,首先可以确定情感类别(即粗粒度的分类或细粒度的分类等)。进而,可以选取数据采集设备(如摄像头、录音器、文本识别工具等),并构建相应的情感场景,即执行选取情感识别的数据。然后,可以采用数据采集设备采集与情感场景匹配的数据,并对数据进行标注,得到标注数据(在实际应用中,可以采用人工标注的方式对数据进行情感类别标注,也可以采用其它方式进行标注,本实施例对于数据标注方式不加以限制)。在得到标注数据之后,可以对标注数据进行验证,以验证标注数据是否符合情感场景,具体地,可以采用随机抽取的方式进行标注验证等。
[0061]
本技术实施例通过选定情感识别场景并采集数据进行标注,从而可以得到用于调整情感识别模型的模型参数的样本数据,便于后续情感识别模型的部署。
[0062]
在基于选定的情感识别场景获取到标注有情感类别标签的标注数据之后,执行步骤102。
[0063]
步骤102:基于脉冲神经元和网络拓扑信息,确定脉冲神经网络的网络结构。
[0064]
在基于选定的情感识别场景获取到标注有情感类别标签的标注数据之后,可以基于脉冲神经元和网络拓扑信息确定脉冲神经网络的网络结构。在具体实现中,可以选定脉冲神经元if(integrate and fire neuron,累积激发神经元)(最基础的神经元)作为脉冲神经网络的部署结构,if神经元硬件实现简单,且具有简单的记忆功能。然后,根据选定的网络拓扑信息将脉冲神经元相连,并对输出的脉冲频率进行验证,以最终确定脉冲神经网络的网络结构。对于该实现过程可以结合图3进行如下详细描述。
[0065]
参照图3,示出了本技术实施例提供的一种网络结构确定方法的步骤流程图。如图3所示,该网络结构确定方法可以包括:步骤301、步骤302、步骤303、步骤304、步骤305和步骤306。
[0066]
步骤301:获取所述脉冲神经元。
[0067]
在本技术实施例中,可以先选择脉冲神经元,在本示例中,可以选择最简单的脉冲神经元if。
[0068]
在获取到脉冲神经元之后,执行步骤302。
[0069]
步骤302:基于选择的所述网络拓扑信息,将所述脉冲神经元相连,得到脉冲神经网络的初始网络结构。
[0070]
脉冲神经网络的网络拓扑信息可以采用现有的结构化拓扑,比如卷积、池化、全连接操作等,也可以采用更为灵活的随机连接的方式获得随机拓扑等,对于网络拓扑信息的具体拓扑结构可以根据业务需求而定,本实施例对此不加以限制。
[0071]
在获取到脉冲神经元之后,可以基于选择的网络拓扑信息将脉冲神经元相连,从而可以得到脉冲神经网络的初始网络结构。例如,网络拓扑以卷积、池化和全连接操作为例,可以按照网络拓扑将脉冲神经元相连,以得到卷积层和全连接层,最后通过对全连接层输出的池化操作来获得最终的输出结果。
[0072]
在基于选择的网络拓扑信息将脉冲神经元相连得到脉冲神经网络的初始网络结构之后,执行步骤303。
[0073]
步骤303:对所述脉冲神经网络的权重进行初始化。
[0074]
在得到脉冲神经网络的初始网络结构之后,可以对脉冲神经网络的权重进行初始化。在本示例中,可以采用随机初始化的方式对脉冲神经网络的权重进行初始化。可以理解地,脉冲神经网络的权重初始值为0,通过初始化可以赋予一个相应的权重值,以便后续对标注数据进行处理。
[0075]
在对脉冲神经网络的权重进行初始化之后,执行步骤304。
[0076]
步骤304:基于所述标注数据对权重初始化后的脉冲神经网络进行前向推理处理,得到所有的脉冲频率。
[0077]
在对脉冲神经网络的权重进行初始化之后,可以基于标注数据对权重初始化后的脉冲神经网络进行前向推理处理,得到所有的脉冲频率。具体地,可以将标注数据输入至权重初始化后的脉冲神经网络,以由脉冲神经网络对标注数据进行处理,从而可以得到脉冲神经网络输出的脉冲频率。
[0078]
可以理解地,脉冲神经网络输出的脉冲频率的数量可以是预先设定的,本实施例对于脉冲神经网络输出的脉冲频率的数量不加以限制。
[0079]
在基于标注数据对权重初始化后的脉冲神经网络进行前向推理处理,得到所有的
脉冲频率之后,执行步骤305,或者执行步骤306。
[0080]
步骤305:在所述所有的脉冲频率均不为0的情况下,将权重初始化后的脉冲神经网络的网络结构作为最终的脉冲神经网络的网络结构。
[0081]
在得到的所有脉冲频率均不为0时,则可以将权重初始化后的脉冲神经网络的网络结构作为最终的脉冲神经网络的网络结构。
[0082]
步骤306:在所述所有的脉冲频率中存在为0的脉冲频率的情况下,重新执行步骤301至步骤305。
[0083]
在得到的所有脉冲频率中存在为0的脉冲频率时,可以重新执行步骤301和步骤305,即丢弃权重初始化后的脉冲神经网络的网络结构,并重新开始执行选择脉冲神经元。
[0084]
对于网络结构确定过程可以结合图16进行如下详细描述。
[0085]
如图16所示,首先,可以选定脉冲神经元if,并选择脉冲神经网络拓扑,通过脉冲神经网络拓扑将脉冲神经元相连即可以得到初始网络结构。进而,可以对脉冲神经网络权重初始化,并基于标注数据对脉冲神经网络进行前向推理,以得到脉冲神经网络输出的脉冲频率。然后,可以判断所有输出脉冲频率是否不等于0,若否,则丢弃初始网络结构,并重新开始执行选择脉冲神经元if的步骤。若是,则可以将权重初始化后的脉冲神经网络的网络结构作为最终确定的网络结构。
[0086]
本技术实施例通过采用上述循环机制,可以保证脉冲神经网络在初始化时便具备发射非0脉冲的特性,从而可以降低后续脉冲神经网络训练的难度。
[0087]
在基于脉冲神经元和网络拓扑信息确定出脉冲神经网络的网络结构之后,执行步骤103。
[0088]
步骤103:基于所述标注数据对所述脉冲神经网络进行权重训练及权重量化处理,生成所述脉冲神经网络的量化突触权重。
[0089]
突触权重是指脉冲神经网络中任意两个相连脉冲神经元之间的权重,该权重可以用于指示两个相连脉冲神经元的连接权重。
[0090]
量化突触权重即对突触权重进行量化处理之后得到的结果。
[0091]
在确定脉冲神经网络的网络结构之后,可以基于标注数据对脉冲神经网络进行权重训练,以得到脉冲神经网络的突触权重,并对突触权重进行量化处理,从而可以生成脉冲神经网络的量化突触权重。对于该实现过程可以结合图4进行如下详细描述。
[0092]
参照图4,示出了本技术实施例提供的一种量化突触权重生成方法的步骤流程图。如图4所示,该量化突触权重生成方法可以包括:步骤401和步骤402。
[0093]
步骤401:基于所述标注数据对所述脉冲神经网络进行权重训练,得到所述脉冲神经网络的突触权重。
[0094]
在确定脉冲神经网络的网络结构之后,可以基于标注数据对脉冲神经网络进行权重训练,从而得到脉冲神经网络的突触权重。具体地,可以采用前向推理和反向传播的方式对脉冲神经网络进行权重训练,以得到脉冲神经网络的突触权重。对于该实现过程可以结合图5进行如下详细描述。
[0095]
参照图5,示出了本技术实施例提供的一种突触权重获取方法的步骤流程图。如图5所示,该突触权重获取方法可以包括:步骤501、步骤502和步骤503。
[0096]
步骤501:基于所述标注数据对所述脉冲神经网络进行前向推理,得到所述标注数
据对应的预测情感类别。
[0097]
在本技术实施例中,在确定脉冲神经网络的网络结构之后,可以基于标注数据对脉冲神经网络的突触权重进行微调。具体地,可以将标注数据输入至脉冲神经网络,以对脉冲神经网络进行前向推理,得到标注数据的预测情感类别。
[0098]
在基于标注数据对脉冲神经网络进行前向推理得到标注数据对应的预测情感类别之后,执行步骤502。
[0099]
步骤502:基于所述预测情感类别和所述标注数据对应的情感类别标签之间的差值,采用反向传播的方式更新所述脉冲神经网络的初始突触权重。
[0100]
在得到标注数据的预测情感类别之后,可以比较预测情感类别与标注数据的情感类别标签的差值,并根据该差值采用反向传播的方式更新脉冲神经网络的初始突触权重。
[0101]
在具体实现中,理论上预测情感类别应当与情感类别标签一致,若不一致,则表示脉冲神经网络在情感识别方面的精度不足,此时,可以根据预测情感类别与情感类别标签的差值去更新脉冲神经网络的初始突触权重。
[0102]
步骤503:迭代执行步骤501和步骤502,直至所述预测情感类别与所述情感类别标签相同,得到所述脉冲神经网络的更新后的突触权重。
[0103]
通过迭代执行上述步骤501和步骤502,直至脉冲神经网络输出的预测情感类别与标注数据的情感类别标签相同,此时,可以得到脉冲神经网络的更新后的突触权重,至此即完成了脉冲神经网络的权重训练过程。
[0104]
对于权重训练过程可以如图17所示,基于输入数据(即标注数据)采用前向推理的方式得到输出数据,进而,可以结合输入数据的标签和输出数据采用反向传播的方式更新脉冲神经网络的突触权重,直至输入数据的标签与输出数据相同。在本示例中,前向推理可以采用脉冲发射的过程计算输出,反向传播可以采用sigmoid函数进行梯度计算。
[0105]
在基于标注数据对脉冲神经网络进行权重训练得到脉冲神经网络的突触权重之后,执行步骤402。
[0106]
步骤402:对所述突触权重进行量化处理,生成所述脉冲神经网络的量化突触权重。
[0107]
在基于标注数据对脉冲神经网络进行权重训练得到脉冲神经网络的突触权重之后,可以对突触权重进行量化处理,以生成脉冲神经网络的量化突触权重。具体地,可以获取所有突触权重的均值和方差,并基于均值和方差,以及预先设定的权重取值范围,对突触权重进行量化。对于该实现过程可以结合图6进行如下详细描述。
[0108]
参照图6,示出了本技术实施例提供的一种突触权重量化方法的步骤流程图。如图6所示,该突触权重量化方法可以包括:步骤601和步骤602。
[0109]
步骤601:获取所有的所述突触权重的均值和方差。
[0110]
在本技术实施例中,在获取到脉冲神经网络的某个网络层的所有突触权重之后,可以获取所有的突触权重的均值和方差。
[0111]
在获取到所有的突触权重的均值和方差之后,执行步骤602。
[0112]
步骤602:基于所述均值、所述方差和预先设定的取值范围,对所述突触权重进行量化处理,生成所述脉冲神经网络的量化突触权重。
[0113]
在获取到所有的突触权重的均值和方差之后,则可以基于均值、方差和预先设定
的取值范围,对突触权重进行量化处理,以生成脉冲神经网络的量化突触权重。具体地,可以基于均值、方差和预先设定的取值范围先计算中间变量,然后,结合中间变量进行量化突触权重的计算。对于该计算过程可以结合图7进行如下详细描述。
[0114]
参照图7,示出了本技术实施例提供的一种量化突触权重计算方法的步骤流程图。如图7所示,该量化突触权重计算方法可以包括:步骤701、步骤702和步骤703。
[0115]
步骤701:基于所述均值和所述方差,计算得到权重最大值和权重最小值。
[0116]
在本技术实施例中,在得到所有突触权重的均值和方差之后,可以基于均值和方差,计算得到权重最大值和权重最小值。如下述公式所示:权重最小值,权重最大值
[0117]
均值和方差。
[0118]
步骤702:获取所述取值范围对应的取值最大值和取值最小值。
[0119]
进而可以基于取值范围获取取值最大值和取值最小值。例如,最大值和最小值,,。
[0120]
步骤703:基于所述权重最大值、所述权重最小值、所述取值最大值和所述取值最小值,计算得到所述脉冲神经网络的量化突触权重。
[0121]
最后,可以基于权重最大值、权重最小值、取值最大值和取值最小值计算得到脉冲神经网络的量化突触权重。
[0122]
具体地量化过程可以如图18所示。首先,针对某个网络层的突触权重,可以统计所有突触权重的均值和方差,然后,计算出中间变量和,,。同时,可以获取预先设定的权重取值范围,即最大值和最小值,,。在得到上述数值之后,则可以计算出中间变量。
[0123]
(1)并计算出中间变量。
[0124]
(2)在计算得到中间变量和之后,则可以基于下述公式(3)求解出量化突触权重。
[0125]
(3)上述公式中,为预先输入的参数。
[0126]
在本技术实施例中,在权重训练完毕之后,整个模型的相关参数都已经确定,包括脉冲神经元类型,神经网络拓扑,神经网络突触权重。采用量化技术对脉冲神经网络的突触权重进行量化,可以减轻硬件部署的压力。
[0127]
在基于标注数据对脉冲神经网络进行权重训练及权重量化处理,生成脉冲神经网络的量化突触权重之后,执行步骤104。
[0128]
步骤104:基于所述脉冲神经网络的网络结构,构建用于执行网络操作的硬件设备。
[0129]
在对突触权重进行量化处理生成脉冲神经网络的量化突触权重之后,可以基于脉冲神经网络的网络结构构建用于执行网络操作的硬件设备。具体地,可以构建每个网络层的忆阻器阵列和基于fpga的硬件设备。对于硬件设备的构建过程可以结合图8进行如下详细描述。
[0130]
参照图8,示出了本技术实施例提供的一种硬件设备构建方法的步骤流程图。如图8所示,该硬件设备构建方法可以包括:步骤801和步骤802。
[0131]
步骤801:基于所述脉冲神经网络的各网络层的网络结构,构建每个所述网络层对应的忆阻器阵列。
[0132]
在本技术实施例中,在对脉冲神经网络的突触权重进行量化之后,则可以基于脉冲神经网络的各网络层的网络结构,构建每个网络层对应的忆阻器阵列。例如,脉冲神经网络的网络层包括:卷积层和全连接层,则可以构建卷积层对应的忆阻器阵列,以及全连接层对应的忆阻器阵列等。
[0133]
在具体实现中,可以基于脉冲神经网络每个网络层的脉冲神经元之间的连接权重,构建突触矩阵。然后,基于突触矩阵的行列数目,构建得到每个网络层对应的忆阻器阵列。对于该实现过程可以结合图9进行如下详细描述。
[0134]
参照图9,示出了本技术实施例提供的一种忆阻器阵列构建方法的步骤流程图。如图9所示,该忆阻器阵列构建方法可以包括:步骤901和步骤902。
[0135]
步骤901:基于每个所述网络层的脉冲神经元之间的连接权重,构建突触矩阵。
[0136]
在本技术实施例中,在构建忆阻器阵列时,可以基于每个网络层的脉冲神经元之间的连接权重,构建突触矩阵。
[0137]
在基于每个网络层的脉冲神经元之间的连接权重构建突触矩阵之后,执行步骤902。
[0138]
步骤902:基于所述突触矩阵的行列数目,构建得到每个所述网络层对应的忆阻器阵列。
[0139]
在基于每个网络层的脉冲神经元之间的连接权重构建突触矩阵之后,可以基于突触矩阵的行列数目构建每个网络层的忆阻器阵列,即忆阻器阵列的行列数目与突触矩阵的行列数目相同。
[0140]
在具体实现中,卷积全连接的操作可以分割为不同的向量矩阵乘积操作,所以这里采用存算一体的忆阻器来实现该运算。不失一般性,这里用一个普通的3
×
4的矩阵代表突触权重,输入为4
×
1的向量,输出为3
×
1的列向量。为了完成这个操作,需要一个3
×
4组成的忆阻器阵列,通过将输入映射成对应的电压,将突触权重编程为对应的忆阻器的电导值,这样通过欧姆定律和基尔霍夫电流定律,输出的三个电流值就是对应的输出。可以如图19所示,可以将量化突触权重通过忆阻器写入电路写到对应的电导上,电导和电压相乘就是电流,利用这个特性,只要通过对列向量添加电压就可以从右端读出电流,就是该计算模块的输出。接下来,需要将卷积和全连接的操作都转化成折中基本的单元,然后就可以利用上述原理实现存算一体。
[0141]
基于忆阻器阵列的硬件设备构建可以如图20所示,脉冲神经网络以全连接层和卷积层为例,脉冲神经网络构建过程中,限定了主要结构包括卷积和全连接,所以需要将卷积结构和全连接结构进行忆阻器映射。忆阻器阵列完成的是向量矩阵乘法,一般原型系统的
输入都是以batch的形式进行,全连接操作可以看作是两个矩阵相乘,可以通过循环转化为向量矩阵乘法,通过一次循环就可以实现,获得输出之后,需要更新膜电压并和阈值作对比。具体过程可以图21所示,输入的数据是包含0/1矩阵,每一行代表一个样本数据,通过电压转化为高低电压,加载到忆阻器阵列的左右两端,通过测量下方的电流可以获得对应向量矩阵乘法的输出。以图中为例,只需要循环三次,就可以获得全连接层的输出数值。
[0142]
卷积操作要比全连接操作更加复杂,对一个样本来说,卷积之前的输入是一个三维的张量,这就需要在样本维度进行一个外层循环,内层循环的操作可以如图22所示。内层循环又分为两种,分别是通道内循环和通道间循环。图中所示输入脉冲矩阵的大小是4
×4×
2,卷积核的大小(突触矩阵)是3
×
3,输出通道数目是2,所以突触矩阵的总体大小是3
×3×
2,根据卷积的操作规律可知,输出的矩阵大小是2
×2×
2。为了通过存算一体结构快速得到结果,可以对突触矩阵进行了数据重排,并写入对应的忆阻器阵列。具体地,将3
×
3的突触矩阵中的第一个通道,从左到右,从上到下拉成的向量,将突触权重写入忆阻器阵列中第一列对应的电导上,同样地,第二个通道的权重写入第二列忆阻器阵列的电导上。至此,代表突触矩阵的忆阻器阵列准备完成。对于输入脉冲矩阵中的第一个通道,按照步长为1的方式进行输入数据重排:先选定的区域,然后按照和突触矩阵相同的排列方式,将数据排成的向量,然后滑动的区域最终可以得到4个对应的向量,这个数目为4的循环成为通道内循环。和全连接层类似,通过将数据重排之后的脉冲矩阵映射为高低电压加载到忆阻器阵列的左右两端,在忆阻器阵列下方读出对应的电流就是计算得到的输出结果。将结果写入到的对应位置上。随后通道间循环开始,这个循环过程和上述过程类似,最后需要将忆阻器阵列的读出结果累加到的对应位置上,当完成通道间循环后,最终得到的也就是卷积层的计算输出。
[0143]
在具体实现中,脉冲神经元具有记录历史数据的天然优势,这个优势来自于脉冲神经元需要维持一个称之为膜电压的中间状态,膜电压的初始值设置为0,每个时间步的输出会累加到膜电压上直到膜电压突破阈值。操作示例过程可以如图23所示,经过忆阻器阵列计算得到的某层输出矩阵会累加到对应的某层历史膜电压上,从而获得某层当前的膜电压,将当前膜电压和某层阈值矩阵进行一一对比,通过大于阈值为1,小于阈值为0的方式来获得某层输出的脉冲矩阵,同时,对于大于阈值的神经元对应的膜电压进行置0操作以得到更新后的膜电压矩阵。
[0144]
步骤802:构建用于池化计算和电压存储的基于fpga的硬件设备。
[0145]
同时,可以构建用于池化计算和电压存储的基于fpga的硬件设备。对于基于fpga的硬件设备的构建过程可以如图10所示。
[0146]
参照图10,示出了本技术实施例提供的另一种硬件设备构建方法的步骤流程图。如图10所示,该硬件设备构建方法可以包括:步骤1001、步骤1002和步骤1003。
[0147]
步骤1001:构建arm处理器。
[0148]
在本技术实施例中,在构建基于fpga的硬件设备时,可以先构建arm处理器。
[0149]
arm(advanced risc machines)处理器是一个32位元精简指令集,arm处理器广泛地使用在许多嵌入式系统设计。arm处理器的特点有指令长度固定,执行效率高,低成本等优点。
[0150]
在构建arm处理器之后,执行步骤1002。
[0151]
步骤1002:将所述arm处理器通过外部接口与上位机相连。
[0152]
在构建arm处理器之后,可以将arm处理器通过外部接口与上位机相连,上位机可以用于启动整个系统,通过脉冲编码将输入数据转化为脉冲序列。
[0153]
步骤1003:将所述arm处理器通过axi总线与ddr3、所述忆阻器阵列和池化计算模块相连。
[0154]
同时,可以将arm处理器通过axi总线与ddr3、忆阻器阵列和池化计算模块相连。基于fpga的硬件设备构建过程可以如图24所示。arm处理器通过外部接口和上位机相连,用来启动整个系统,通过脉冲编码将输入数据转化为脉冲序列。arm处理器通过axi总线和ddr3,池化计算,忆阻器阵列等相连,用来进行数据交换。其中ddr3用来存储脉冲神经网络各层需要存储的膜电压阈值和运算过程中的膜电压;池化计算模块用来使用fpga的逻辑计算单元进行平均池化计算,忆阻器阵列用来完成卷积和全连接的相关操作。输入数据按照神经网络的结构进行计算,需要保存的中间结构会通过axi总线写入ddr3,计算需要的数据也通过地址从ddr3中读取。
[0155]
在基于脉冲神经网络的网络结构构建用于执行网络操作的硬件设备之后,执行步骤105。
[0156]
步骤105:将所述量化突触权重逐层部署于所述硬件设备上。
[0157]
在基于脉冲神经网络的网络结构构建用于执行网络操作的硬件设备之后,可以将量化突触权重逐层部署于硬件设备上。对于量化突触权重的部署过程可以结合图11进行如下详细描述。
[0158]
参照图11,示出了本技术实施例提供的一种权重部署方法的步骤流程图。如图11所示,该权重部署方法可以包括:步骤1101。
[0159]
步骤1101:采用逐层部署及参数逐步微调的方式,将各所述网络层的量化突触权部署于各所述网络层对应的忆阻器阵列上。
[0160]
在本技术实施例中,在进行权重部署时,可以采用逐层部署及参数逐步微调的方式,将各网络层的量化突触权部署于各网络层对应的忆阻器阵列上。具体地,可以先脉冲神经网络所有网络层的量化突触权重逐层部署于对应的忆阻器阵列上。对于该实现过程可以结合图12进行如下详细描述。
[0161]
参照图12,示出了本技术实施例提供的另一种权重部署方法的步骤流程图。如图12所示,该权重部署方法可以包括:步骤1201和步骤1202。
[0162]
步骤1201:基于所述脉冲神经网络中各所述网络层由先到后的顺序,依次将所述网络层的量化突触权重部署于所述网络层对应的忆阻器阵列上。
[0163]
在本技术实施例中,在进行量化突触权重的部署时,可以基于脉冲神经网络中各网络层由先到后的顺序,依次将网络层的量化突触权重部署于网络层对应的忆阻器阵列上。
[0164]
步骤1202:在每次部署一个网络层的量化突触权重之后,基于该网络层对应的忆阻器阵列的输出,调整所述脉冲神经网络的模型参数,直至所有网络层的量化突触权重全部部署于对应的忆阻器阵列上。
[0165]
在每次部署一个网络层的量化突触权重之后,基于该网络层对应的忆阻器阵列的
输出,调整脉冲神经网络的模型参数,直至所有网络层的量化突触权重全部部署于对应的忆阻器阵列上。对于参数更新过程可以结合图13进行如下详细描述。
[0166]
参照图13,示出了本技术实施例提供的一种参数更新方法的步骤流程图。如图13所示,该参数更新方法可以包括:步骤1301、步骤1302、步骤1303和步骤1304。
[0167]
步骤1301:在每次部署一个网络层的量化突触权重之后,获取该网络层的忆阻器阵列处理所述标注数据得到的输出结果。
[0168]
在本技术实施例中,在每次部署一个网络层的量化突触权重之后,则可以获取该网络层的忆阻器阵列处理标注数据得到的输出结果。
[0169]
在获取到该网络层的忆阻器阵列处理标注数据得到的输出结果之后,执行步骤1302。
[0170]
步骤1302:基于所述输出结果对位于上位机上的网络层进行前向推理,得到预测情感类别。
[0171]
在得到输出结果之后,则可以基于输出结果对位于上位机上的网络层(即还未进行权重的部署的网络层还处于上位机上)进行前向推理,得到预测情感类别。
[0172]
步骤1303:基于所述预测情感类别和所述标注数据对应的情感类别标签之间的差值,更新所述脉冲神经网络的模型参数。
[0173]
在得到预测情感类别之后,则可以基于预测情感类别和标注数据对应的情感类别标签之间的差值,更新脉冲神经网络的模型参数。
[0174]
步骤1304:迭代执行所述获取该网络层的忆阻器阵列处理所述标注数据得到的输出结果,至所述更新所述脉冲神经网络的模型参数的步骤,直至所述脉冲神经网络的精度损失低于设定值。
[0175]
迭代执行上述步骤1301至步骤1303,直至脉冲神经网络的精度损失低于设定值,即完成模型参数的微调。
[0176]
在本实施例中,为了克服忆阻器部署过程中的不稳定特性,这里采用逐层部署的方式来补偿忆阻器阵列不稳定带来的精度损失。量化突触权重的部署过程可以如图25所示:在具体部署过程中,首先将第一层卷积权重部署到存算一体硬件上,也就是忆阻器阵列,此时其他所有层的仍然在上位机上。随后对整个系统进行参数更新微调,参数前向传播的时候,第一层用存算一体硬件的输出,然后在上位机上进行前向推理,随后对所有上位机上的参数进行微调,直到精度损失在1%以内。随后,将第二层结构也部署到存算一体硬件上,其他后续层部署在上位机上,在前向传播的过程中,用第二层硬件的输出作为后续上位机的输入,开始对第三层及以后的参数进行更新,直到精度损失在1%以内。重复这个过程,直到所有的卷积层和全连接层全部部署到存算一体设备上。至此,完成脉冲神经网络的权重映射。协同是指整个映射过程不是一次完成的,而是通过不断微调后层的参数来补偿忆阻器阵列带来的性能差异。
[0177]
本技术实施例通过采用逐层部署量化突触权重的方法,可以减少硬件部署中的精度损失,同时,可以克服忆阻器部署过程中的不稳定特性。
[0178]
对于脉冲神经网络的部署过程可以结合图14进行完整性描述。
[0179]
参照图14,示出了本技术实施例提供的一种脉冲神经网络部署流程的示意图。如图14所示,首先,可以选定应用应用场景为情感识别,根据应用采集应用数据进行应用标签
的标注,如果成熟应用有公开数据集,这一步可以省略。随后构建对应的脉冲神经网络,一般可以采用现有的结构化拓扑,比如卷积,池化,全连接操作,也可以采用更为灵活的随机连接的方式获得随机拓扑。在网络拓扑结构确定后,需要选用优化器对固定拓扑的脉冲神经网络的突触权重进行更新,达到应用可接受的精度后固定突触连接权重;权重的量化位数需要从实际的网络模型精度考虑进行,这一步的量化发生在软件仿真阶段,根据需要控制量化精度,为后续的硬件部署做初步准备。随后开始构建硬件计算设备,主要包括两部分:一部分是基于忆阻器阵列的硬件设备来专门实现卷积,全连接等操作,一部分是基于fpga的硬件设备实现平均池化,逐点乘等操作。权重映射过程中,为了在硬件上最大限度地提高应用的精度,采用一种软硬件协同的映射方式:逐层地将脉冲神经网络的权重映射到对应的硬件设备上,在一层映射部署完毕之后,将硬件的输出和软件仿真的网络连接在一起重新对尚未部署的网络权重进行微调,通过这样的方式来弥补硬件部署后模拟电路带来的误差。
[0180]
本技术实施例提供的用于情感识别的脉冲神经网络部署方法,通过基于选定的情感识别场景,获取标注有情感类别标签的标注数据。基于脉冲神经元和网络拓扑信息,确定脉冲神经网络的网络结构。基于标注数据对脉冲神经网络进行权重训练及权重量化处理,生成脉冲神经网络的量化突触权重。基于脉冲神经网络的网络结构,构建用于执行网络操作的硬件设备。将量化突触权重逐层部署于硬件设备上。本技术实施例通过构建存算一体的硬件设备,可以实现高效的存算一体的模型部署,并且,通过逐层权重部署的方式,能够减少硬件部署过程中的精度损失。
[0181]
参照图26,示出了本技术实施例提供的一种用于情感识别的脉冲神经网络部署装置的结构示意图。如图26所示,该用于情感识别的脉冲神经网络部署装置2600可以包括以下模块:标注数据获取模块2610,用于基于选定的情感识别场景,获取标注有情感类别标签的标注数据;网络结构确定模块2620,用于基于脉冲神经元和网络拓扑信息,确定脉冲神经网络的网络结构;量化权重生成模块2630,用于基于所述标注数据对所述脉冲神经网络进行权重训练及权重量化处理,生成所述脉冲神经网络的量化突触权重;硬件设备构建模块2640,用于基于所述脉冲神经网络的网络结构,构建用于执行网络操作的硬件设备;量化权重部署模块2650,用于将所述量化突触权重逐层部署于所述硬件设备上。
[0182]
可选地,所述网络结构确定模块包括:脉冲神经元获取单元,用于获取所述脉冲神经元;初始网络结构获取单元,用于基于选择的所述网络拓扑信息,将所述脉冲神经元相连,得到脉冲神经网络的初始网络结构;权重初始化单元,用于对所述脉冲神经网络的权重进行初始化;脉冲频率获取单元,用于基于所述标注数据对权重初始化后的脉冲神经网络进行前向推理处理,得到所有的脉冲频率;网络结构获取单元,用于在所述所有的脉冲频率均不为0的情况下,将权重初始化
后的脉冲神经网络的网络结构作为最终的脉冲神经网络的网络结构。
[0183]
可选地,所述装置还包括:重新执行模块,用于在所述所有的脉冲频率中存在为0的脉冲频率的情况下,重新执行所述脉冲神经元获取单元、所述初始网络结构获取单元、所述权重初始化单元、所述脉冲频率获取单元和所述网络结构获取单元。
[0184]
可选地,所述量化权重生成模块包括:突触权重获取单元,用于基于所述标注数据对所述脉冲神经网络进行权重训练,得到所述脉冲神经网络的突触权重;量化权重生成单元,用于对所述突触权重进行量化处理,生成所述脉冲神经网络的量化突触权重可选地,所述突触权重获取单元包括:预测类别获取子单元,用于基于所述标注数据对所述脉冲神经网络进行前向推理,得到所述标注数据对应的预测情感类别;初始权重更新子单元,用于基于所述预测情感类别和所述标注数据对应的情感类别标签之间的差值,采用反向传播的方式更新所述脉冲神经网络的初始突触权重;突触权重获取子单元,用于迭代执行所述预测类别获取单元和所述初始权重更新单元,直至所述预测情感类别与所述情感类别标签相同,得到所述脉冲神经网络的更新后的突触权重。
[0185]
可选地,所述量化权重生成单元包括:突触权重计算子单元,用于获取所有的所述突触权重的均值和方差;量化权重生成子单元,用于基于所述均值、所述方差和预先设定的取值范围,对所述突触权重进行量化处理,生成所述脉冲神经网络的量化突触权重。
[0186]
可选地,所述量化权重生成子单元包括:权重极值计算子单元,用于基于所述均值和所述方差,计算得到权重最大值和权重最小值;取值极值获取子单元,用于获取所述取值范围对应的取值最大值和取值最小值;量化突触权重计算子单元,用于基于所述权重最大值、所述权重最小值、所述取值最大值和所述取值最小值,计算得到所述脉冲神经网络的量化突触权重。
[0187]
可选地,所述量化突触权重计算子单元包括:基于下述公式计算得到所述量化突触权重:
[0188][0189][0190]
上述公式中,为量化突触权重,为权重最大值,为权重最小值,为取值最大值,为取值最小值,和为中间变量。
[0191]
可选地,所述硬件设备构建模块包括:
忆阻器阵列构建单元,用于基于所述脉冲神经网络的各网络层的网络结构,构建每个所述网络层对应的忆阻器阵列,每个网络层对应于一个忆阻器阵列;硬件设备构建单元,用于构建用于池化计算和电压存储的基于fpga的硬件设备。
[0192]
可选地,所述忆阻器阵列构建单元包括:突触矩阵构建子单元,用于基于每个所述网络层的脉冲神经元之间的连接权重,构建突触矩阵;忆阻器阵列构建子单元,用于基于所述突触矩阵的行列数目,构建得到每个所述网络层对应的忆阻器阵列。
[0193]
可选地,所述硬件设备构建单元包括:处理器构建子单元,用于构建arm处理器;第一连接子单元,用于将所述arm处理器通过外部接口与上位机相连;第二连接子单元,用于将所述arm处理器通过axi总线与ddr3、所述忆阻器阵列和池化计算模块相连;其中所述ddr3用于存储脉冲神经网络的各网络层的膜电压阈值和膜电压,所述池化计算模块用于使用fpga的逻辑计算单元进行平均池化计算。
[0194]
可选地,所述量化权重部署模块包括:量化权重部署单元,用于采用逐层部署及参数逐步微调的方式,将各所述网络层的量化突触权部署于各所述网络层对应的忆阻器阵列上。
[0195]
可选地,所述量化权重部署单元包括:量化权重部署子单元,用于基于所述脉冲神经网络中各所述网络层由先到后的顺序,依次将所述网络层的量化突触权重部署于所述网络层对应的忆阻器阵列上;模型参数更新子单元,用于在每次部署一个网络层的量化突触权重之后,基于该网络层对应的忆阻器阵列的输出,调整所述脉冲神经网络的模型参数,直至所有网络层的量化突触权重全部部署于对应的忆阻器阵列上。
[0196]
可选地,所述模型参数更新子单元包括:输出结果获取子单元,用于在每次部署一个网络层的量化突触权重之后,获取该网络层的忆阻器阵列处理所述标注数据得到的输出结果;预测类别获取子单元,用于基于所述输出结果对位于上位机上的网络层进行前向推理,得到预测情感类别;参数更新子单元,用于基于所述预测情感类别和所述标注数据对应的情感类别标签之间的差值,更新所述脉冲神经网络的模型参数;迭代执行所述输出结果获取子单元、所述预测类别获取子单元和所述参数更新子单元,直至所述脉冲神经网络的精度损失低于设定值。
[0197]
可选地,所述标注数据获取模块包括:情感类别获取单元,用于获取预先设定的情感类别;待标注数据采集单元,用于通过数据采集设备,采集符合所述情感识别场景的待标注数据;标注数据获取单元,用于基于所述情感类别对所述待标注数据添加相应的情感类别标签,得到所述标注数据。
[0198]
本技术实施例提供的用于情感识别的脉冲神经网络部署装置,通过基于选定的情感识别场景,获取标注有情感类别标签的标注数据。基于脉冲神经元和网络拓扑信息,确定脉冲神经网络的网络结构。基于标注数据对脉冲神经网络进行权重训练及权重量化处理,生成脉冲神经网络的量化突触权重。基于脉冲神经网络的网络结构,构建用于执行网络操作的硬件设备。将量化突触权重逐层部署于硬件设备上。本技术实施例通过构建存算一体的硬件设备,可以实现高效的存算一体的模型部署,并且,通过逐层权重部署的方式,能够减少硬件部署过程中的精度损失。
[0199]
另外地,本技术实施例还提供了一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述用于情感识别的脉冲神经网络部署方法。
[0200]
图27示出了本发明实施例的一种电子设备2700的结构示意图。如图27所示,电子设备2700包括中央处理单元(cpu)2701,其可以根据存储在只读存储器(rom)2702中的计算机程序指令或者从存储单元2708加载到随机访问存储器(ram)2703中的计算机程序指令,来执行各种适当的动作和处理。在ram 2703中,还可存储电子设备2700操作所需的各种程序和数据。cpu 2701、rom 2702以及ram 2703通过总线2704彼此相连。输入/输出(i/o)接口2705也连接至总线2704。
[0201]
电子设备2700中的多个部件连接至i/o接口2705,包括:输入单元2706,例如键盘、鼠标、麦克风等;输出单元2707,例如各种类型的显示器、扬声器等;存储单元2708,例如磁盘、光盘等;以及通信单元2709,例如网卡、调制解调器、无线通信收发机等。通信单元2709允许电子设备2700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0202]
上文所描述的各个过程和处理,可由处理单元2701执行。例如,上述任一实施例的方法可被实现为计算机软件程序,其被有形地包含于计算机可读介质,例如存储单元2708。在一些实施例中,计算机程序的部分或者全部可以经由rom2702和/或通信单元2709而被载入和/或安装到电子设备2700上。当计算机程序被加载到ram2703并由cpu2701执行时,可以执行上文描述的方法中的一个或多个动作。
[0203]
本技术实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述用于情感识别的脉冲神经网络部署方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(read-only memory,简称rom)、随机存取存储器(random access memory,简称ram)、磁碟或者光盘等。
[0204]
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
[0205]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做
出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本技术各个实施例所述的方法。
[0206]
上面结合附图对本技术的实施例进行了描述,但是本技术并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本技术的启示下,在不脱离本技术宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本技术的保护之内。
[0207]
本领域普通技术人员可以意识到,结合本技术实施例中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0208]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0209]
在本技术所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0210]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0211]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0212]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
[0213]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
技术特征:
1.一种用于情感识别的脉冲神经网络部署方法,其特征在于,所述方法包括:基于选定的情感识别场景,获取标注有情感类别标签的标注数据;基于脉冲神经元和网络拓扑信息,确定脉冲神经网络的网络结构;基于所述标注数据对所述脉冲神经网络进行权重训练及权重量化处理,生成所述脉冲神经网络的量化突触权重;基于所述脉冲神经网络的网络结构,构建用于执行网络操作的硬件设备;将所述量化突触权重逐层部署于所述硬件设备上。2.根据权利要求1所述的方法,其特征在于,所述基于脉冲神经元和网络拓扑信息,确定脉冲神经网络的网络结构,包括:获取所述脉冲神经元;基于选择的所述网络拓扑信息,将所述脉冲神经元相连,得到脉冲神经网络的初始网络结构;对所述脉冲神经网络的权重进行初始化;基于所述标注数据对权重初始化后的脉冲神经网络进行前向推理处理,得到所有的脉冲频率;在所述所有的脉冲频率均不为0的情况下,将权重初始化后的脉冲神经网络的网络结构作为最终的脉冲神经网络的网络结构。3.根据权利要求2所述的方法,其特征在于,在所述基于所述标注数据对权重初始化后的脉冲神经网络进行前向推理处理,得到所有的脉冲频率之后,还包括:在所述所有的脉冲频率中存在为0的脉冲频率的情况下,重新执行所述获取所述脉冲神经元,至所述将权重初始化后的初始脉冲神经网络结构作为最终的脉冲神经网络结构的步骤。4.根据权利要求1所述的方法,其特征在于,所述基于所述标注数据对所述脉冲神经网络进行权重训练及权重量化处理,生成所述脉冲神经网络的量化突触权重,包括:基于所述标注数据对所述脉冲神经网络进行权重训练,得到所述脉冲神经网络的突触权重;对所述突触权重进行量化处理,生成所述脉冲神经网络的量化突触权重。5.根据权利要求4所述的方法,其特征在于,所述基于所述标注数据对所述脉冲神经网络进行权重训练,得到所述脉冲神经网络的突触权重,包括:基于所述标注数据对所述脉冲神经网络进行前向推理,得到所述标注数据对应的预测情感类别;基于所述预测情感类别和所述标注数据对应的情感类别标签之间的差值,采用反向传播的方式更新所述脉冲神经网络的初始突触权重;迭代执行所述基于所述标注数据对所述脉冲神经网络进行前向推理,得到所述标注数据对应的预测情感类别,至所述采用反向传播的方式更新所述脉冲神经网络的初始突触权重的步骤,直至所述预测情感类别与所述情感类别标签相同,得到所述脉冲神经网络的更新后的突触权重。6.根据权利要求4所述的方法,其特征在于,所述对所述突触权重进行量化处理,生成所述脉冲神经网络的量化突触权重,包括:
获取所有的所述突触权重的均值和方差;基于所述均值、所述方差和预先设定的取值范围,对所述突触权重进行量化处理,生成所述脉冲神经网络的量化突触权重。7.根据权利要求6所述的方法,其特征在于,所述基于所述均值、所述方差和预先设定的取值范围,对所述突触权重进行量化处理,生成所述脉冲神经网络的量化突触权重,包括:基于所述均值和所述方差,计算得到权重最大值和权重最小值;获取所述取值范围对应的取值最大值和取值最小值;基于所述权重最大值、所述权重最小值、所述取值最大值和所述取值最小值,计算得到所述脉冲神经网络的量化突触权重。8.根据权利要求7所述的方法,其特征在于,所述基于所述权重最大值、所述权重最小值、所述最大值和所述最小值,计算得到所述脉冲神经网络的量化突触权重,包括:基于下述公式计算得到所述量化突触权重:基于下述公式计算得到所述量化突触权重:基于下述公式计算得到所述量化突触权重:上述公式中,为量化突触权重,为权重最大值,为权重最小值,为取值最大值,为取值最小值,和为中间变量。9.根据权利要求1所述的方法,其特征在于,所述基于所述脉冲神经网络的网络结构,构建用于执行网络操作的硬件设备,包括:基于所述脉冲神经网络的各网络层的网络结构,构建每个所述网络层对应的忆阻器阵列,每个网络层对应于一个忆阻器阵列;构建用于池化计算和电压存储的基于fpga的硬件设备。10.根据权利要求9所述的方法,其特征在于,所述基于所述脉冲神经网络的各网络层的网络结构,构建每个所述网络层对应的忆阻器阵列,包括:基于每个所述网络层的脉冲神经元之间的连接权重,构建突触矩阵;基于所述突触矩阵的行列数目,构建得到每个所述网络层对应的忆阻器阵列。11.根据权利要求9所述的方法,其特征在于,所述构建用于池化计算和电压存储的基于fpga的硬件设备,包括:构建arm处理器;将所述arm处理器通过外部接口与上位机相连;将所述arm处理器通过axi总线与ddr3、所述忆阻器阵列和池化计算模块相连;其中所述ddr3用于存储脉冲神经网络的各网络层的膜电压阈值和膜电压,所述池化计算模块用于使用fpga的逻辑计算单元进行平均池化计算。12.根据权利要求9所述的方法,其特征在于,所述将所述量化突触权重逐层部署于所述硬件设备上,包括:采用逐层部署及参数逐步微调的方式,将各所述网络层的量化突触权部署于各所述网络层对应的忆阻器阵列上。13.根据权利要求12所述的方法,其特征在于,所述采用逐层部署及参数逐步微调的方式,将各所述网络层的量化突触权部署于各所述网络层对应的忆阻器阵列上,包括:
基于所述脉冲神经网络中各所述网络层由先到后的顺序,依次将所述网络层的量化突触权重部署于所述网络层对应的忆阻器阵列上;在每次部署一个网络层的量化突触权重之后,基于该网络层对应的忆阻器阵列的输出,调整所述脉冲神经网络的模型参数,直至所有网络层的量化突触权重全部部署于对应的忆阻器阵列上。14.根据权利要求3所述的方法,其特征在于,所述在每次部署一个网络层的量化突触权重之后,基于该网络层对应的忆阻器阵列的输出,调整所述脉冲神经网络的模型参数,包括:在每次部署一个网络层的量化突触权重之后,获取该网络层的忆阻器阵列处理所述标注数据得到的输出结果;基于所述输出结果对位于上位机上的网络层进行前向推理,得到预测情感类别;基于所述预测情感类别和所述标注数据对应的情感类别标签之间的差值,更新所述脉冲神经网络的模型参数;迭代执行所述获取该网络层的忆阻器阵列处理所述标注数据得到的输出结果,至所述更新所述脉冲神经网络的模型参数的步骤,直至所述脉冲神经网络的精度损失低于设定值。15.根据权利要求1所述的方法,其特征在于,所述基于选定的情感识别场景,获取标注有情感类别标签的标注数据,包括:获取预先设定的情感类别;通过数据采集设备,采集符合所述情感识别场景的待标注数据;基于所述情感类别对所述待标注数据添加相应的情感类别标签,得到所述标注数据。16.一种用于情感识别的脉冲神经网络部署装置,其特征在于,所述装置包括:标注数据获取模块,用于基于选定的情感识别场景,获取标注有情感类别标签的标注数据;网络结构确定模块,用于基于脉冲神经元和网络拓扑信息,确定脉冲神经网络的网络结构;量化权重生成模块,用于基于所述标注数据对所述脉冲神经网络进行权重训练及权重量化处理,生成所述脉冲神经网络的量化突触权重;硬件设备构建模块,用于基于所述脉冲神经网络的网络结构,构建用于执行网络操作的硬件设备;量化权重部署模块,用于将所述量化突触权重逐层部署于所述硬件设备上。17.根据权利要求16所述的装置,其特征在于,所述网络结构确定模块包括:脉冲神经元获取单元,用于获取所述脉冲神经元;初始网络结构获取单元,用于基于选择的所述网络拓扑信息,将所述脉冲神经元相连,得到脉冲神经网络的初始网络结构;权重初始化单元,用于对所述脉冲神经网络的权重进行初始化;脉冲频率获取单元,用于基于所述标注数据对权重初始化后的脉冲神经网络进行前向推理处理,得到所有的脉冲频率;网络结构获取单元,用于在所述所有的脉冲频率均不为0的情况下,将权重初始化后的
脉冲神经网络的网络结构作为最终的脉冲神经网络的网络结构。18.根据权利要求16所述的装置,其特征在于,所述突触权重获取模块包括:预测类别获取单元,用于基于所述标注数据对所述脉冲神经网络进行前向推理,得到所述标注数据对应的预测情感类别;初始权重更新单元,用于基于所述预测情感类别和所述标注数据对应的情感类别标签之间的差值,采用反向传播的方式更新所述脉冲神经网络的初始突触权重;突触权重获取单元,用于迭代执行所述预测类别获取单元和所述初始权重更新单元,直至所述预测情感类别与所述情感类别标签相同,得到所述脉冲神经网络的更新后的突触权重。19.一种电子设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至15中任一项所述的用于情感识别的脉冲神经网络部署方法。20.一种可读存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行权利要求1至15任一项所述的用于情感识别的脉冲神经网络部署方法。
技术总结
本申请实施例提供了一种用于情感识别的脉冲神经网络部署方法、装置及设备。所述方法包括:基于选定的情感识别场景,获取标注有情感类别标签的标注数据;基于脉冲神经元和网络拓扑信息,确定脉冲神经网络的网络结构;基于所述标注数据对所述脉冲神经网络进行权重训练及权重量化处理,生成所述脉冲神经网络的量化突触权重;基于所述脉冲神经网络的网络结构,构建用于执行网络操作的硬件设备;将所述量化突触权重逐层部署于所述硬件设备上。本申请实现了高效的存算一体的模型部署方法,可以减少硬件部署中的精度损失。减少硬件部署中的精度损失。减少硬件部署中的精度损失。
技术研发人员:王斌强 董刚 赵雅倩 蒋东东 曹其春
受保护的技术使用者:苏州浪潮智能科技有限公司
技术研发日:2023.09.06
技术公布日:2023/10/15
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
上一篇:用于锂离子电池的温度控制方法和系统 下一篇:故障处理方法及装置、故障处理系统与流程
