硬件神经网络转换方法、计算装置、编译方法和神经网络软硬件协作系统与流程

文档序号:11143510阅读:来源:国知局

技术特征:

1.一种将神经网络应用转换为满足硬件约束条件的硬件神经网络的硬件神经网络转换方法,包括:

神经网络连接图获得步骤,获得神经网络应用对应的神经网络连接图,神经网络连接图是一个有向图,图中的每个节点表示一层神经元,每条边表示层间的连接关系;

神经网络连接图拆分步骤,将神经网络连接图拆分为神经网络基本单元,每个神经网络基本单元中,只有入节点和出节点,不存在中间层节点,入节点和出节点之间全相联,,而且入节点中的神经元的所有出度在该基本单元内,出节点中的每个神经元的所有入度在该基本单元内;

神经网络基本单元转换步骤,将每个神经网络基本单元转换为与之功能等效的由神经网络硬件的基本模块虚拟体连接成的网络,称之为基本单元硬件网络,一个神经网络基本单元对应于一个或多个神经网络硬件的基本模块虚拟体,每个神经网络硬件的基本模块虚拟体均满足神经网络硬件的基本模块的连接度约束条件,且能够直接映射到神经网络硬件的基本模块;

基本单元硬件网络连接步骤,将得到的基本单元硬件网络按照拆分的顺序连接起来,生成硬件神经网络的参数文件。

2.根据权利要求1的硬件神经网络转换方法,还包括,在神经网络应用具有卷积层的情况下,在神经网络连接图拆分步骤之前,对于神经网络应用的卷积层进行网络压缩,包括:

获得每一卷积层的多个特征图;

利用DPP提取多样性子集的方法,将这些特征图在所有样本上产生的输出之间的相似性作为%11算法相关联的矩阵元,利用DPP得到多样性最高的子集,保留该子集,丢弃掉其他特征图节点,将丢弃的特征图所对应的向量投影到保留的特征图所张成的线性空间中,用丢弃的特征图的投影长度与其原向量长度的比值作为加权系数,将丢弃的特征图与下一层神经元的连接权重加权累加到保留的特征图与下一层神经元的连接权重上。

3.根据权利要求1的硬件神经网络转换方法,所述神经网络基本单元转换步骤包括:

对每个神经网络基本单元重建网络拓扑;以及

针对重建的网络拓扑,进行权重参数确定。

4.根据权利要求3的硬件神经网络转换方法,重建网络拓扑包括完全展开操作,经过完全展开,神经网络基本单元被分解为了基本模块虚拟体之间的相互连接,所述完全展开操作包括:

在神经网络基本单元相关联的第一规模的矩阵乘法和/或卷积的大矩阵操作超过了神经网络硬件的基本模块支持的第二规模的小矩阵操作的情况下,执行下述操作:

将第一规模的大矩阵操作拆分为第三数目个第二规模的小矩阵操作,每个小矩阵操作由一个基本模块虚拟体完成;

将针对第一规模的大矩阵操作的输入数据分解为第三数目份,并传送给该第三数目个第二规模的小矩阵操作,此为多播操作;

将来自第三数目个第二规模的小矩阵操作的运算结果汇总为等价于第一规模的大矩阵操作的运算结果,此为归约操作,

在神经网络硬件芯片具有支持多播操作的第一额外模块的情况下,将多播操作分配为由所述第一额外模块虚拟体来执行,否则由多播操作由第一组基本模块虚拟体来完成;

在神经网络硬件芯片具有支持归约操作的第二额外模块的情况下,将归约操作分配为由所述第二额外模块虚拟体来执行,否则由多播操作由第二组基本模块虚拟体来完成。

5.根据权利要求4的硬件神经网络转换方法,在神经网络硬件芯片上基本模块数额不足的情况下,采用时分方法来利用基本模块。

6.根据权利要求4的硬件神经网络转换方法,重建网络拓扑还包括在完全展开操作之前进行重编码操作,包括:

利用自编码器进行层间数据重编码,自编码器是神经网络,由3层神经元组成,包括输入层、隐藏层和输出层,其中输出层的节点数和输入层节点数相同,隐藏层的节点数量多于层间向量数据的维度,训练该网络,使得输出层的值与输入层的值尽可能相近,其中输入层和输出层的精度为神经网络应用的精度,隐藏层采用神经网络硬件基本模块之间的传输数据的精度,自编码器被转换为编码器和解码器的组合;

对于第K层到第K+1层传递的层间向量为第k层采用的自编码器的隐藏层的表述,其连接矩阵为输入节点的解码器、原始连接的权重矩阵和输出节点的编码器合并而成。

7.根据权利要求4或6的硬件神经网络转换方法,在神经网络应用中存在特殊函数且神经网络硬件芯片不支持该特殊函数的情况下,还包括在完全展开之前:

为所述特殊函数构造专门的神经网络。

8.一种计算装置,用于将神经网络应用转换为满足硬件约束条件的硬件神经网络,包括存储器和处理器,存储器中存储有计算机可执行指令,当处理器执行所述计算机可执行指令时,执行下述方法:

神经网络连接图获得步骤,获得神经网络应用对应的神经网络连接图,神经网络连接图是一个有向图,图中的每个节点表示一层神经元,每条边表示层间的连接关系;

神经网络连接图拆分步骤,将神经网络连接图拆分为神经网络基本单元,每个神经网络基本单元中,只有入节点和出节点,不存在中间层节点,入节点和出节点之间全相联,而且入节点中的神经元的所有出度在该基本单元内,出节点中的每个神经元的所有入度在该基本单元内;

神经网络基本单元转换步骤,将每个神经网络基本单元转换为与之功能等效的由神经网络硬件的基本模块虚拟体连接成的网络,称之为基本单元硬件网络,一个神经网络基本单元对应于一个或多个神经网络硬件的基本模块虚拟体,每个神经网络硬件的基本模块虚拟体均满足神经网络硬件的基本模块的连接度约束条件,且能够直接映射到神经网络硬件的基本模块;

基本单元硬件网络连接步骤,将得到的基本单元硬件网络按照拆分的顺序连接起来,生成硬件神经网络的参数文件。

9.一种将神经网络软件应用编译为硬件神经网络的编译方法,包括:

获得神经网络软件应用和神经网络硬件芯片的配置情况;

基于神经网络硬件的配置情况,将神经网络软件应用转换硬件神经网络,所述硬件神经网络由神经网络硬件芯片的基本模块连接而成;

输出硬件神经网络的参数文件,所述参数文件描述所述基本模块之间的连接关系以及各个基本模块的参数配置情况。

10.一种神经网络软硬件协作系统,包括:

神经网络硬件芯片,神经网络硬件芯片上具有基本模块,基本模块以硬件形式执行矩阵向量乘和激活函数的操作,神经网络硬件芯片上的基本模块的参数和基本模块之间的连接能够由确定格式的配置文件配置;

编译层单元,用于将神经网络应用编译为硬件神经网络的参数文件,基于参数文件能够将硬件神经网络映射到一个或多个神经网络硬件芯片,映射后的一个或多个神经网络硬件芯片能够运行所述神经网络应用的功能。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1