处理方法和处理装置制造方法及图纸

技术编号:20449293 阅读:32 留言:0更新日期:2019-02-27 03:13
本公开提供一种处理装置和处理方法。其中,处理装置包括选数单元,用于输入单元数据和数据位置信息,选出需要进行计算的单元数据;查找表单元,用于接收量化的数值,进行查表操作并输出网络非零数值;运算单元,用于接收被选中的单元数据和非零数值,进行运算并输出数据。本公开中通过设置选数单元等,能够根据非零值位置信息选出需要参与计算的单元,从而减少计算量,减少访存量。

【技术实现步骤摘要】
处理方法和处理装置
本公开涉及计算机领域,进一步涉及人工智能领域。
技术介绍
神经网络以及机器学习算法已经获得了非常成功的应用。但是随着我们设计更大规模,更深层次的神经网络,将引入更多的权值,而超大规模权值成为神经网络计算的一个巨大挑战。一方面,超大规模的权值数据对存储提出了更高的要求,尤其是在手机等嵌入式设备中,存储相当有限,可能导致无法存放所有的权值数据。另一个方面,大量访问权值数据将带来不可估量的访存能耗,因此,如何压缩神经网络规模成为一个亟待解决的问题。
技术实现思路
(一)要解决的技术问题有鉴于此,本公开提供了一种针对神经网络的压缩方法和压缩装置。(二)技术方案根据本公开的一方面,提供一种数据压缩方法,其中包括:对数据进行粗粒度剪枝,包括:使用滑动窗口从神经网络选取出一组权值,将选取的权值都置为零;对神经网络进行第一重训练,训练过程中已经被置为零的权值保持为零;对数据进行量化,包括:对神经网络的权值进行分组,对每一组权值用聚类算法进行聚类操作,每个类计算出一个中心权值,每个类中的所有权值都用中心权值替换;对中心权值进行编码操作,得到密码本和权值字典,对神经网络进行第二重训练,重训练时只训练密码本,权值字典内容保持不变。在进一步的实施方案中,使用滑动窗口选取神经网络的一组权值的条件为:将组内所有权值绝对值的算术平均值作为该组的第一代表权值,第一代表权值小于第一阈值;或者将组内所有权值绝对值的几何平均值作为该组的第二代表权值,第二代表权值小于第二阈值;或者将组内所有权值绝对值的最大值作为该组的第三代表权值,第三代表权值小于第三阈值。在进一步的实施方案中,处理方法还包括:重复使用滑动窗口从神经网络选取出一组权值,将选取的权值都置为零;以及对神经网络进行第一重训练,直至保证不损失设定精度的前提下没有权值能被置为零,其中,所述设定精度为x%,其中x介于0至5之间。在进一步的实施方案中,使用滑动窗口从神经网络选取出一组权值包括对神经网络的全连接层、卷积层或LSTM层的权值进行剪枝。在进一步的实施方案中,对神经网络的全连接层进行剪枝包括:设全连接层的权值为一个二维矩阵(Nin,Nout),其中Nin是输入神经元的个数,Nout是输出神经元的个数,共有Nin*Nout个权值,设定一个大小为Bin*Bout的滑动窗口,其中Bin为大于等于1小于等于Nin正整数,Bout为大于等于1小于等于Nout的正整数;使滑动窗口能够沿着Bin的方向按照Sin的步长进行滑动,也可以沿着Bout方向按照Sout的步长进行滑动,其中Sin为大于等于1小于等于Bin的正整数,Sout为大于等于1小于等于Bout的正整数;当滑动窗口内的一组权值被选取时,这组权值将全部被置为零,即Bin*Bout个权值将同时置为零。在进一步的实施方案中,对神经网络的卷积层进行剪枝包括:设卷积层的权值为一个四维矩阵(Nfin,Nfout,Kx,Ky),其中Nfin是输入特征图像的个数,Nfout是输出特征图像的个数,(Kx,Ky)是卷积核的大小,共有Nfin*Nfout*Kx*Ky个权值,设定一个大小为Bfin*Bfout*Bx*By的四维滑动窗口,其中Bfin为大于等于1小于等于Nfin的正整数,Bfout为大于等于1小于等于Nfout的正整数,Bx为大于等于1小于等于Kx的正整数,By为大于等于1小于等于Ky的正整数;使滑动窗口沿着Bfin的方向按照Sfin的步长(stride)进行滑动,或者沿着Bfout方向按照Sfout的步长进行滑动,或者沿着Bx方向按照Sx的步长进行滑动,或沿着By方向按照Sy的步长进行滑动,其中Sfin为大于等于1小于等于Bfin的正整数,Sfout为大于等于1小于等于Bfout的正整数,Sx为大于等于1小于等于Bx的正整数,Sy为大于等于1小于等于By的正整数;当某个滑动窗口内的一组权值被选取时,这组权值将全部被置为零,即Bfin*Bfout*Bx*By个权值将同时置为零。在进一步的实施方案中,对神经网络的LSTM层进行剪枝包括:设定LSTM层的权值由m个全连接层权值组成,其中m为大于0的正整数,第i个全连接层权值为(Nin_i,Nout_i),其中i是大于0小于等于m的正整数,Nin_i表示第i个全连接层权值输入神经元个数,Nout_i表示第i个全连接层权值输出神经元个数;还设定一个大小为Bin_i*Bout_i的滑动窗口,其中Bin_i为大于等于1小于等于Nin_i的正整数,Bout_i为大于等于1小于等于Nout_i的正整数;使滑动窗口沿着Bin_i的方向按照Sin_i的步长进行滑动,或沿着Bout_i方向按照Sout_i的步长进行滑动,其中Sin_i为大于等于1小于等于Bin_i的正整数,Sout_i为大于等于1小于等于Bout_i的正整数;当滑动窗口内的一组权值被选取时,这组权值将全部被置为零,即Bin_i*Bout_i个权值将同时置为零。在进一步的实施方案中,所述第一重训练采用反向传播算法,且训练过程中已经被置为零的权值保持为零。在进一步的实施方案中,对神经网络的权值进行分组方式包括:分为一组、层类型分组、层间分组和/或层内分组。在进一步的实施方案中,所述分为一组,为将神经网络的所有权值归为一组。在进一步的实施方案中,所述层类型分组,为将神经网络中所有卷积层的权值、所有全连接层的权值和所有长短时记忆网络层的权值各划分成一组。在进一步的实施方案中,所述层间分组,为将神经网络中一个或者多个卷积层的权值、一个或者多个全连接层的权值和一个或者多个长短时记忆网络层的权值各划分成一组。在进一步的实施方案中,所述层内分组,将神经网络的一层内的权值进行切分,切分后的每一个部分划分为一组。在进一步的实施方案中,所述聚类算法包括K-means、K-medoids、Clara和/或Clarans。在进一步的实施方案中,所述中心权值选择方法为使得代价函数J(w,w0)最小,其中w是类中所有权值,w0是中心权值,n是类中权值数量,wi是类中第i个权值,i是大于等于1小于等于n的正整数。中心权值选择方法为使得代价函数J(w,w0)最小,其中w是类中所有权值,w0是中心权值,n是类中权值数量,wi是类中第i个权值,i是大于等于1小于等于n的正整数。对聚类和编码后的神经网络进行第二重训练包括:对聚类和编码后的神经网络使用反向传播算法进行重新训练,训练过程中已经被置为0的权值将一直保持0,并且只训练权值密码本,不训练权值字典。根据本公开的另一方面,提供一种神经网络数据的压缩装置,包括:存储器,用于存储操作指令;处理器,用于执行存储器中的操作指令,在执行该操作指令时依照权以上任一所述的压缩方法进行操作。根据本公开的再一方面,提供一种处理装置,其中包括:粗粒度选数单元,用于输入神经元和非零权值位置信息,选出需要进行计算的神经元;查找表单元,用于接收量化的非零权值字典和非零权值密码本,进行查表操作并输出神经网络非零权值;运算单元,用于接收被选中的神经元和非零权值,对神经网络进行运算并输出神经元。在进一步的实施方案中,所述查找表单元还用于对未量化的非零权值直接通过旁路传输给运算单元。在进一步的实施方案中,还包括指令控制单元,用于接收指令并本文档来自技高网...

【技术保护点】
1.一种处理装置,其中包括:粗粒度选数单元,用于输入神经元和非零权值位置信息,选出需要进行计算的神经元;查找表单元,用于接收量化的非零权值字典和非零权值密码本,进行查表操作并输出神经网络非零权值;运算单元,用于接收被选中的神经元和非零权值,对神经网络进行运算并输出神经元。

【技术特征摘要】
1.一种处理装置,其中包括:粗粒度选数单元,用于输入神经元和非零权值位置信息,选出需要进行计算的神经元;查找表单元,用于接收量化的非零权值字典和非零权值密码本,进行查表操作并输出神经网络非零权值;运算单元,用于接收被选中的神经元和非零权值,对神经网络进行运算并输出神经元。2.根据权利要求1所述的处理装置,其特征在于,所述查找表单元还用于对未量化的非零权值直接通过旁路传输给运算单元。3.根据权利要求1或2所述的处理装置,其特征在于,还包括指令控制单元,用于接收指令并经过译码后生成控制信息控制运算单元。4.根据权利要求1-3任一所述的处理装置,其特征在于,还包括存储单元,用于存储神经网络的神经元、权值以及指令。5.根据权利要求4所述的处理装置,其特征在于,所述存储单元还用于存储存放非零权值以及非零权值的位置信息;还用于存储量化的非零权值密码本和非零权值字典。6.根据权利要求1-5任一所述的处理装置,其特征在于,所述运算单元包括以下至少一种:乘法器,用于将所述第一输入数据和第二输入数据相乘,得到相乘之后的数据;加法树,用于将第三输入数据通过加法树逐级相加,或者将所述第三输入数据通过和第四输入数据相加得到相加之后的数据;激活函数运算单元,对第五数据通过激活函数运算得到输出数据,所述激活函数为sigmoid、tanh、relu或softmax函数操作。7.根据权利要求6所述的处理装置,其特征在于,所述运算单元还包括池化单元,用于对输入的第六数据通过池化运算得到池化操作之后的输出数据,所述池化操作包括:平均值池化,最大值池化或者中值池化。8.根据权利要求1-7任一所述的处理装置,其特征在于,还包括指令控制单元,用来接收存储装置中的指令,经过译码后生成控制信息控制粗粒度选数单元进行选数操作,查找表进行查表操作和运算单元进行计算操作。9.根据权利要求8所述的处理装置,其特征在于,所述指令为神经网络专用指令,包括控制指令,数据传输指令,运算指令和逻辑指令。10.根据权利要求9所述的处理装置,其特征在于,所述神经网络专用指令为Cambricon指令集。11.根据权利要求1-10任一所述的处理装置,其特征在于,还包括指令缓存,用于缓存指令,所述指令缓存为片上缓存。12.根据权利要求1-11任一所述的处理装置,其特征在于,还包括非零权值密码本缓存,用于缓存非零权值密码本,所述非零权值密码本缓存为片上缓存。13.根据权利要求1-12任一所述的处理装置,其特征在于,还包括非零权值字典缓存,用于缓存非零权值字典,所述非零权值字典缓存为片上缓存。14.根据权利要求1-13任一所述的处理装置,其特征在于,还包括非零权值位置缓存,用于缓存非零权值位置,还用于将输入数据中每个连接权值一一对应到相应的输入神经元,所述非零权值位置缓存为片上缓存。15.根据权利要求14所述的处理装置,其特征在于,所述非零权值位置缓存,用于将输入数据中每个连接权值一一对应到相应的输入神经元中的一一对应包括:为采用1表示权值与输入神经元有连接,0表示无连接,每组输出与所有输入的连接状态组成一个0和1的字符串来表示该输出的连接关系。16.根据权利要求14或15所述的处理装置,其特征在于,所述非零权值位置缓存,用于将输入数据中每个连接权值一一对应到相应的输入神经元中的一一对应包括:将一组输出第一个连接所在的输入神经元位置距离第一个输入神经元的距离、所述输出第二组输入神经元距离上一个输入神经元的距离,所述输出第三组输入神经元距离上一个输入神经...

【专利技术属性】
技术研发人员:不公告发明人
申请(专利权)人:上海寒武纪信息科技有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1