一种用于执行batch normalization运算的装置和方法
摘要文本
本公开公开了一种用于执行batch normalization运算的装置,包括运算模块。使用该装置可以实现多层人工神经网络中的batch normalization运算。对于batch normalization运算来说,在正向过程中,用输入减去均值除以方差与极小量定值eps和的平方根。之后乘以学习参数alpha加上学习参数beta得到该层输出。在反向训练过程中,将输入梯度向量减去梯度向量的均值向量之后再减去梯度向量与正向得到的输出的乘积的均值乘以输出,得到的差值除以正向中的方差与极小定值和的平方根,得到该层的输出梯度向量。本公开有效提高了对人工神经网络中batch normalization正反向运算的支持。
申请人信息
- 申请人:中科寒武纪科技股份有限公司
- 申请人地址:100191 北京市海淀区知春路7号致真大厦D座16层1601房
- 发明人: 中科寒武纪科技股份有限公司
专利详细信息
| 项目 | 内容 |
|---|---|
| 专利名称 | 一种用于执行batch normalization运算的装置和方法 |
| 专利类型 | 发明授权 |
| 申请号 | CN202010617696.8 |
| 申请日 | 2016年4月29日 |
| 公告号 | CN111860814B |
| 公开日 | 2024年1月16日 |
| IPC主分类号 | G06N3/063 |
| 权利人 | 中科寒武纪科技股份有限公司 |
| 发明人 | 刘少礼; 于涌; 陈云霁; 陈天石 |
| 地址 | 北京市海淀区知春路7号致真大厦D座16层1601房 |
专利主权项内容
1.一种用于在神经网络训练过程中执行batch normalization运算的方法,所述方法应用于运算装置中,所述运算装置包括控制器单元以及运算模块;所述运算模块包括神经元缓存单元和中间值缓存单元;所述控制器单元读取指令,并将所述指令译码成微指令;所述控制器单元将所述微指令发送至所述运算模块;所述运算模块根据所述微指令执行batch normalization的正向运算和反向运算;其中,所述运算模块根据所述微指令执行batch normalization运算的正向运算包括:运算模块根据所述微指令从所述神经元缓存单元读取输入神经元向量,并计算所述输入神经元向量的均值和所述输入神经元向量的方差;运算模块将所述输入神经元向量的均值和所述输入神经元向量的方差存入所述中间值缓存单元;所述运算模块从所述神经元缓存单元中读取学习参数和输入神经元向量、从中间值缓存单元中读取输入神经元向量的均值和所述输入神经元向量的方差,并根据所述学习参数、输入神经元向量、输入神经元向量的均值和输入神经元向量的方差计算获得输出神经元;所述运算模块将所述输出神经元存入所述神经元缓存单元。