[发明专利]神经网络运算装置和方法有效
申请号: | 201711360244.0 | 申请日: | 2017-12-15 |
公开(公告)号: | CN108205700B | 公开(公告)日: | 2021-07-30 |
发明(设计)人: | 不公告发明人 | 申请(专利权)人: | 上海寒武纪信息科技有限公司 |
主分类号: | G06N3/04 | 分类号: | G06N3/04;G06N3/063 |
代理公司: | 中科专利商标代理有限责任公司 11021 | 代理人: | 任岩 |
地址: | 201203 上海市浦东*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 神经网络 运算 装置 方法 | ||
1.一种神经网络运算装置,其特征在于包括:
子矩阵划分模块,用于以卷积核矩阵为滑动窗口在神经元矩阵上滑动,每滑动一次,得到一个神经元矩阵中与卷积核矩阵规模相同的子矩阵,将卷积核矩阵作为第一矩阵,将每个子矩阵作为第二矩阵;
矩阵元素存储模块,包含多个存储空间,该多个存储空间用于按规则接收第一矩阵中的M×N个矩阵元素的M×N个二进制数,该规则为:所述多个存储空间的编号依次为第0个至第i-1个存储空间,i为所述二进制数的位宽,每个存储空间大小为K比特,K等于第一矩阵中的矩阵元素的个数且K=M×N,其中,第0个存储空间用于存储K个二进制数的符号位,第j个存储空间用于存储每个二进制数中第i-j+1位的比特,所述i、j、k、M和N均为正整数,并且,i≥2,1≤j≤i;
符号运算模块,用于将所述第0个存储空间中每个比特所表示的符号分别与第二矩阵中对应元素的符号进行异或运算,并将运算结果作为第二矩阵中对应元素的符号位;
数值运算模块,包括至少一个移位运算器和至少一个加法器,用于根据第j个存储空间中比特值为1的位所对应矩阵元素在矩阵中的位置,从第二矩阵中提取相应位置的矩阵元素,将所述相应位置的矩阵元素相加,将相加结果左移i-j位,得到运算中间结果;
累加模块,用于将第1~i-1个存储空间中的运算中间结果相加,得到第一矩阵与第二矩阵的乘加运算结果;
卷积结果获取模块,用于按照滑动顺序,将所述多个乘加运算结果组成矩阵,作为卷积运算结果。
2.根据权利要求1所述的神经网络运算装置,其特征在于,所述矩阵元素存储模块中,第一矩阵中矩阵元素与每个所述存储空间中各个比特位的对应关系为:每个存储空间中第k个比特位分别存储第一矩阵中第m行第n列的矩阵元素的比特,其中,1≤k≤K,并且,k=(m-1)×N+n,N为第一矩阵的总列数,1≤m≤M,1≤n≤N;或者
所述第一矩阵中矩阵元素与每个存储空间中各个比特位的对应关系为:第k个比特位存储卷积核矩阵A中第m行第n列的矩阵元素的比特,其中,1≤k≤K,并且,k=m+(n-1)×M,M为第一矩阵的总行数,1≤m≤M,1≤n≤N。
3.根据权利要求2所述的神经网络运算装置,其特征在于,所述数值运算模块根据所述对应关系从第二矩阵中对应元素所在位置提取相应的矩阵元素。
4.根据权利要求1所述的神经网络运算装置,其特征在于,所述数值运算模块还用于:当根据存储空间获取中间结果时,如存在相同位置矩阵元素加法操作时,则调取已计算的结果。
5.根据权利要求4所述的神经网络运算装置,其特征在于,还包括中间存储模块,用于存储0~i-1个存储空间中具有至少两个相同位的比特值为1时对应的第二矩阵元素相加后的结果,以供所述数值运算模块调取。
6.根据权利要求1所述的神经网络运算装置,其特征在于,所述加法器用于根据第j个存储空间中比特值为1所对应矩阵元素在矩阵中的位置,从第二矩阵中提取相应位置的矩阵元素,将所述相应位置的矩阵元素相加;所述移位运算器用于将加法器中矩阵元素的相加结果左移i-j位,得到运算中间结果。
7.根据权利要求6所述的神经网络运算装置,其特征在于,所述加法器还用于当根据存储空间获取中间结果时,如存在相同位置矩阵元素加法操作时,从中间存储模块获取已计算的结果作为加法器的输入数据。
8.根据权利要求1所述的神经网络运算装置,其特征在于,所述第一矩阵和第二矩阵中矩阵行列数相同且矩阵元素为定点数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海寒武纪信息科技有限公司,未经上海寒武纪信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711360244.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:生成用于神经网络输出层的输出
- 下一篇:一种执行卷积计算的系统及方法