【技术实现步骤摘要】
用于执行人工神经网络反向训练的装置和方法
本专利技术总体上涉及人工神经网络,具体地涉及一种用于执行人工神经网络反向训练的装置和方法。
技术介绍
多层人工神经网络被广泛应用于模式识别,图像处理,函数逼近和优化计算等领域,多层人工网络在近年来由于其较高的识别准确度和较好的可并行性,受到学术界和工业界越来越广泛的关注。一种支持多层人工神经网络反向训练的已知方法是使用通用处理器。该方法通过使用通用寄存器堆和通用功能部件执行通用指令来支持上述算法。该方法的缺点之一是单个通用处理器的运算性能较低,无法满足通常的多层人工神经网络运算的性能需求。而多个通用处理器并行执行时,通用处理器之间相互通信又成为了性能瓶颈。另外,通用处理器需要把多层人工神经网络反向运算译码成一长列运算及访存指令序列,处理器前端译码带来了较大的功耗开销另一种支持多层人工神经网络反向训练的已知方法是使用图形处理器(GPU)。该方法通过使用通用寄存器堆和通用流处理单元执行通用SIMD指令来支持上述算法。由于GPU是专门用来执行图形图像运算以及科学计算的设备, ...
【技术保护点】
1.一种用于执行人工神经网络反向训练的装置,包括数据互通模块、主运算模块、多个从运算模块,所述主运算模块通过所述数据互通模块与所述多个从运算模块物理连接,其中:/n主运算模块,用于将第n+1层的输出梯度向量与正向运算过程中的第n层的导数值相乘得到第n层的输入梯度向量;/n数据互通模块,用于将所述第n层的输入梯度向量发送给多个从运算模块;/n从运算模块,用于计算所述第n层的输入梯度向量第i个标量与权值矩阵中列向量的乘积得到输出向量;/n数据互通模块,用于将多个从运算的输出向量两两相加得到最终的输出梯度向量;/n所述从运算模块,还用于将正向运算第n层的输入向量的第j个元素与反向 ...
【技术特征摘要】 【专利技术属性】
1.一种用于执行人工神经网络反向训练的装置,包括数据互通模块、主运算模块、多个从运算模块,所述主运算模块通过所述数据互通模块与所述多个从运算模块物理连接,其中:
主运算模块,用于将第n+1层的输出梯度向量与正向运算过程中的第n层的导数值相乘得到第n层的输入梯度向量;
数据互通模块,用于将所述第n层的输入梯度向量发送给多个从运算模块;
从运算模块,用于计算所述第n层的输入梯度向量第i个标量与权值矩阵中列向量的乘积得到输出向量;
数据互通模块,用于将多个从运算的输出向量两两相加得到最终的输出梯度向量;
所述从运算模块,还用于将正向运算第n层的输入向量的第j个元素与反向运算第n层的输入梯度限量的第i个元素执行乘积运算得到权值更新梯度,并依据所述权值更新梯度更新权值。
2.根据权利要求1所述的装置,其中,
多个从运算模块,用于使用相同的输入梯度向量并行地计算出各自权值的梯度,并使用所述各自权值的梯度来更新各自的权值;所述主运算模块,具体用于将每一层的输出梯度向量与正向运算过程中上一层的激活函数求导值对位相乘,将乘积结果作为每一层的输入梯度向量。
3.根据权利要求1所述的装置,其中,所述数据互通模块为H树模块,所述H树模块包括:多个节点构成的二叉树通路,每个节点将上游的数据同样地发给下游的两个节点,将下游的两个节点返回的数据相加,并返回给上游的节点。
4.根据权利要求3所述的装置,其中,主运算模块包括:
主运算单元、数据依赖关系判断单元和神经元缓存单元,其中:
主神经元缓存单元,用于缓存主运算模块在计算过程中用到的输入数据和输出数据;
主运算单元,还用于完成主运算模块的各种运算功能;
主数据依赖关系判断单元,用于为所述运算单元读写神经元缓存单元的端口,保证对神经元缓存单元中数据读写不存在一致性冲突,并且负责从神经元缓存单元读取输入梯度向量通过H树模块发送给从运算模块;以及来自H树模块的输出梯度向量被发送到运算单元。
5.根据权利要求1所述的装置,其中,每个从运算模块包括:
从运算单元、从数据依赖关系判定单元、神经元缓存单元、权值缓存单元和权值梯度缓存单元,其中:
从运算单元,用于进行算数逻辑运算;
从数据依赖关系判断单元,用于在计算过程中对神经元缓存单元、权值缓存单元和权值梯度缓存单元的读写操作,保证对神经元缓存单元、权值缓存单元和权值梯度缓存单元的读写不存在一致性冲突;
技术研发人员:刘少礼,郭崎,陈云霁,陈天石,
申请(专利权)人:中科寒武纪科技股份有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。