【技术实现步骤摘要】
一种用于执行batchnormalization运算的装置和方法
本公开涉及人工神经网络技术,具体地涉及一种用于执行人工神经网络中batchnormalization正向和反向运算的装置和方法。
技术介绍
多层人工神经网络被广泛应用于模式识别,图像处理,函数逼近和优化计算等领域,多层人工神经网络在近年来由于其较高的识别准确度和较好的可并行性,受到学术界和工业界越来越广泛的关注,而多层人工神经网络中的batchnormalization运算因为其可以加速神经网络训练速度,提高识别精度的特性,被越来越多的运用到了多层神经网络中。一种支持batchnormalization运算的已知方法是使用通用处理器。该方法通过使用通用寄存器堆和通用功能部件执行通用指令来支持上述算法。该方法的缺点之一是单个通用处理器的运算性能较低,无法满足通常的多层人工神经网络运算的性能需求。而多个通用处理器并行执行时,通用处理器之间相互通信又成为了性能瓶颈。另外,通用处理器需要把多层人工神经网络正向运算译码成一长列运算及访存指令序列,处理器前端译码带 ...
【技术保护点】
1.一种用于在神经网络训练过程中执行batch normalization运算的方法,所述方法应用于运算装置中,所述运算装置包括控制器单元以及运算模块;/n所述控制器单元读取指令,并将所述指令译码成微指令;/n所述控制器单元将所述微指令发生至所述运算模块;/n所述运算模块根据所述微指令执行batch normalization的正向运算或反向运算。/n
【技术特征摘要】
1.一种用于在神经网络训练过程中执行batchnormalization运算的方法,所述方法应用于运算装置中,所述运算装置包括控制器单元以及运算模块;
所述控制器单元读取指令,并将所述指令译码成微指令;
所述控制器单元将所述微指令发生至所述运算模块;
所述运算模块根据所述微指令执行batchnormalization的正向运算或反向运算。
2.根据权利要求1所述的方法,其特征在于,所述运算模块包括所述运算模块包括神经元缓存单元和中间值缓存单元;
所述运算模块根据所述微指令执行batchnormalization运算的正向运算包括:
运算模块根据所述微指令从所述神经元缓存单元读取输入神经元向量,并计算所述输入神经元向量的均值和所述输入神经元向量的方差;
运算模块将所述输入神经元向量的均值和所述输入神经元向量的方差存入所述中间值缓存单元;
所述运算模块从所述神经元缓存单元中读取学习参数和输入神经元向量、从中间值缓存单元中读取输入神经元向量的均值和所述输入神经元向量的方差,并根据所述学习参数、输入神经元向量、输入神经元向量的均值和输入神经元向量的方差计算获得输出神经元;
所述运算模块将所述输出神经元存入所述神经元缓存单元。
3.根据权利要求2所述的方法,其特征在于,所述运算模块从所述神经元缓存单元中读取学习参数和输入神经元向量、从中间值缓存单元中读取输入神经元向量的均值和所述输入神经元向量的方差,并根据所述学习参数、输入神经元向量、输入神经元向量的均值和输入神经元向量的方差计算获得输出神经元,包括:
所述运算模块从所述神经元缓存单元读取输入神经元向量,从中间值缓存单元中读取所述输入神经元向量的均值和所述输入神经元向量的方差,并根据所述输入神经元向量、所述输入神经元向量的均值和所述输入神经元向量的方差,并行计算获得归一化过程的中间值;
运算模块从将所述归一化过程的中间值存储入中间值缓存单元中;
运算模块从神经元缓存单元中读取学习参数,从中间值缓存单元中读取所述归一化过程的中间值,并根据所述学习参数及所述中间值获得输出神经元。
4.根据权利要求2所述的方法,所述学习参数包括学习参数
所述运算模块根据所述学习参数、输入神经元向量、输入神经元向量的均值和输入神经元向量的方差计算获得输出神经元,包括:
所述运算模块根据公式:y=alpha*(x-E[x])/sqrt(var(x)+eps)+beta计算获得输出神经元;
其中,x为输入神经元向量,y为输出神经元,alpha、beta为学习参数,其在训练过程中不断更新,并用于计算新的输出神经元数据;eps为极小常数,E[x]为均值,var(x)为方差。
5.根据权利要求2所述的方法,所述运算模块还包括数据依赖关系判断单元;
所述运算模块根据所述微指令从所述神经元缓存单元读取输入神经元向量,包括:
所述数据依赖关系判断单元判断所述微指令之间是否存在读写一致性冲突;
若不存在所述读写一致性冲突,则所述运算模块根据所述微指令从所述神经元缓存单元读取输入神经元向量。
6.根据权利要求2所述的方法,所述运算模块还包括数据依赖判断单元;
所述运算模块将所述输出神经元存入所述神经元缓存单元,包括:
所述数据依赖关系判断单元判断所述微指令之间是否存在读写一致性冲突;
若不存在所述读写一致性冲突,则所述运算模块将所述输出神经元存入所述神经元缓存单元。
7.根据权利要求1的方法,所述运算模块包括所述运算模块包括神经元缓存单元和中间值缓存单元;其特征在于,
所述运算模块根据所述微指令执行batchnormalization运算的反向运算包括:
运算模块根据所述微指令从所述神经元缓存单元读取输入神经元梯度,并计算所述输入神经元梯度的均值和所述输入神经元梯度的方差;
运算模块将所述输入神经元梯度的均值和所述输入神经元梯度的方差存入所述中间值缓存单元;
所述运算模块从所述神经元缓存单元中读取学习参数梯度和输入神经元梯度、从中间...
【专利技术属性】
技术研发人员:刘少礼,于涌,陈云霁,陈天石,
申请(专利权)人:中科寒武纪科技股份有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。