用于执行人工神经网络反向运算的装置和方法制造方法及图纸

技术编号:21893445 阅读:30 留言:0更新日期:2019-08-17 15:06
本申请涉及一种用于执行人工神经网络反向运算的装置,所述装置包括控制器单元、主运算模块、数据通路模块以及从运算模块,使用该装置可以实现多层人工神经网络的反向训练。对于每一层来说,首先对输入梯度向量进行加权求和计算出本层的输出梯度向量,然后该输出梯度向量乘以下一层在正向运算时的激活函数的导数值可以得到下一层的输入梯度向量,之后将输入梯度向量与正向运算时的输入神经元对位相乘得到本层权值的梯度,然后可以根据所得到的本层权值的梯度来更新本层的权值。

Device and Method for Implementing Reverse Operations of Artificial Neural Networks

【技术实现步骤摘要】
用于执行人工神经网络反向运算的装置和方法本申请是针对申请号为:201610039032.1(专利技术创造名称:用于执行人工神经网络反向训练的装置和方法,申请日:2016年1月20日)提出的分案申请。
本申请涉及人工神经网络
,特别是涉及一种用于执行人工神经网络反向运算的装置和方法、用于执行人工神经网络反向训练的装置和方法。
技术介绍
多层人工神经网络被广泛应用于模式识别,图像处理,函数逼近和优化计算等领域,多层人工网络在近年来由于其较高的识别准确度和较好的可并行性,受到学术界和工业界越来越广泛的关注。一种支持多层人工神经网络正向运算的已知方法是使用通用处理器。该方法通过使用通用寄存器堆和通用功能部件执行通用指令来支持上述算法。该方法的缺点之一是单个通用处理器的运算性能较低,无法满足通常的多层人工神经网络运算的性能需求。而多个通用处理器并行执行时,通用处理器之间相互通信又成为了性能瓶颈。另外,通用处理器需要把多层人工神经网络正向运算译码成一长列运算及访存指令序列,处理器前端译码带来了较大的功耗开销。另一种支持多层人工神经网络反向训练的已知方法是使用图形处理器(GPU)。该方法通过本文档来自技高网...

【技术保护点】
1.一种用于执行人工神经网络反向运算的装置,其特征在于,所述装置包括控制器单元、主运算模块、数据通路模块以及从运算模块;所述控制器单元,用于读取指令,并对所述指令进行译码,得到微指令;其中,所述微指令用于对所述主运算模块、所述数据通路模块或所述从运算模块的行为进行控制;所述主运算模块,用于将下一层神经网络的输入梯度向量传输至所述数据通路模块;所述数据通路模块,用于将所述下一层神经网络的输入梯度向量传输至所述从运算模块,以及获取所述从运算模块发送的输出梯度向量部分和;所述主运算模块,还用于根据上一层神经网络的输出梯度向量进行后续处理;其中,所述输出梯度向量由所述输出梯度向量部分和得到。

【技术特征摘要】
1.一种用于执行人工神经网络反向运算的装置,其特征在于,所述装置包括控制器单元、主运算模块、数据通路模块以及从运算模块;所述控制器单元,用于读取指令,并对所述指令进行译码,得到微指令;其中,所述微指令用于对所述主运算模块、所述数据通路模块或所述从运算模块的行为进行控制;所述主运算模块,用于将下一层神经网络的输入梯度向量传输至所述数据通路模块;所述数据通路模块,用于将所述下一层神经网络的输入梯度向量传输至所述从运算模块,以及获取所述从运算模块发送的输出梯度向量部分和;所述主运算模块,还用于根据上一层神经网络的输出梯度向量进行后续处理;其中,所述输出梯度向量由所述输出梯度向量部分和得到。2.根据权利要求1所述的装置,其特征在于,所述从运算模块的数量为多个;多个所述从运算模块,用于根据相同的所述下一层神经网络的输入梯度向量和各所述从运算模块对应的权值数据,并行地计算出各所述从运算模块对应的输出梯度向量部分和;多个所述从运算模块,还用于根据所述下一层神经网络的输入梯度向量,并行地计算出各所述从运算模块的权值的梯度,并根据所述各从运算模块的权值的梯度来更新各所述从运算模块的权值。3.根据权利要求2所述的装置,其特征在于,所述数据通路模块包括多个节点构成的二叉树通路,每个节点将上游节点的数据发送至下游的两个节点,以及将所述下游的两个节点返回的数据进行相加,并将相加结果返回至所述上游节点;所述数据通路模块还用于逐级将各所述从运算模块的输出梯度向量部分和两两相加,得到所述上一层神经网络的输出梯度向量。4.根据权利要求1所述的装置,其特征在于,所述主运算模块还用于将上一层神经网络的输出梯度向量与上一层神经网络的激活函数求导值对位相乘,作为所述上一层神经网络的输出梯度向量。5.根据权利要求1所述的装置,其特征在于,所述装置还包括指令缓存单元,所述指令缓存单元用于缓存所述指令。6.根据权利要求1所述的装置,其特征在于,所述主运算模块包括第一神经元缓存单元、第一运算单元以及第一数据依赖关系判断单元;所述第一神经元缓存单元,用于缓存所述主运算模块在计算过程中用到的输入数据和输出数据;所述第一运算单元,用于完成所述主运算模块的各种运算功能;所述第一数据依赖关系判断单元包括所述第一运算单元读写所述第一神经元缓存单元的端口,用于保证对所述第一神经元缓存单元中数据读写不存在一致性冲突;所述从运算模块包括第二神经元缓存单元、权值缓存单元、权值梯度缓存单元、第二运算单元以及第二数据依赖关系判断单元;所述第二神经元缓存单元,用于缓存所述输入梯度向量以及所述从运算模块计算得到的输出梯度向量部分和;所述权值缓存单元,用于缓存所述从运算模块在计算过程中需要的权值向量,对于每一个所述从运算模块,所述权值向量是权值矩阵中与所述从运算模块相对应的列;所述权值梯度缓存单元,用于缓存相应的所述从运算模块在更新权值过程中需要的权值梯度数据,每个从运算模块存储的权值梯度数据与所述每个从运算模块存储的权值向量相对应;所述第二运算单元,用于接收所述控制器单元发送的所述微指令,并根据所述微指令进行算数逻辑运算;所述第二数据依赖关系判断...

【专利技术属性】
技术研发人员:刘少礼郭崎陈云霁陈天石
申请(专利权)人:北京中科寒武纪科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1