[发明专利]一种用于执行batch normalization运算的装置和方法在审
申请号: | 202010617696.8 | 申请日: | 2016-04-29 |
公开(公告)号: | CN111860814A | 公开(公告)日: | 2020-10-30 |
发明(设计)人: | 刘少礼;于涌;陈云霁;陈天石 | 申请(专利权)人: | 中科寒武纪科技股份有限公司 |
主分类号: | G06N3/063 | 分类号: | G06N3/063;G06N3/04;G06N3/08 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100191 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 用于 执行 batch normalization 运算 装置 方法 | ||
1.一种用于在神经网络训练过程中执行batch normalization运算的方法,所述方法应用于运算装置中,所述运算装置包括控制器单元以及运算模块;
所述控制器单元读取指令,并将所述指令译码成微指令;
所述控制器单元将所述微指令发生至所述运算模块;
所述运算模块根据所述微指令执行batch normalization的正向运算或反向运算。
2.根据权利要求1所述的方法,其特征在于,所述运算模块包括所述运算模块包括神经元缓存单元和中间值缓存单元;
所述运算模块根据所述微指令执行batch normalization运算的正向运算包括:
运算模块根据所述微指令从所述神经元缓存单元读取输入神经元向量,并计算所述输入神经元向量的均值和所述输入神经元向量的方差;
运算模块将所述输入神经元向量的均值和所述输入神经元向量的方差存入所述中间值缓存单元;
所述运算模块从所述神经元缓存单元中读取学习参数和输入神经元向量、从中间值缓存单元中读取输入神经元向量的均值和所述输入神经元向量的方差,并根据所述学习参数、输入神经元向量、输入神经元向量的均值和输入神经元向量的方差计算获得输出神经元;
所述运算模块将所述输出神经元存入所述神经元缓存单元。
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所述的方法,所述运算模块还包括数据依赖判断单元;
所述运算模块将所述输出神经元存入所述神经元缓存单元,包括:
所述数据依赖关系判断单元判断所述微指令之间是否存在读写一致性冲突;
若不存在所述读写一致性冲突,则所述运算模块将所述输出神经元存入所述神经元缓存单元。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中科寒武纪科技股份有限公司,未经中科寒武纪科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010617696.8/1.html,转载请声明来源钻瓜专利网。