【技术实现步骤摘要】
处理装置及处理方法
本公开涉及神经网络领域,尤其涉及一种数据的量化装置及量化方法、处理装置及处理方法。
技术介绍
对神经网络(neuralnetwork)的权值进行量化(quantization),能够减少表示每一个权值的比特数,从而降低权值存储开销和访存开销。但是传统的量化方法仅仅按照神经网络的层为单位进行量化,并没有挖掘神经网络层间权值的相似性以及层内权值局部相似性,在使用低比特数表示权值的同时,会降低神经网络的精度。因此,如何充分挖掘神经网络的权值分布特性进行低比特量化成为一个亟待解决的问题。公开内容(一)要解决的技术问题本公开的目的在于提供一种数据的量化装置及量化方法、处理装置及处理方法,以解决上述的至少一项技术问题。(二)技术方案本公开的一方面,提供了一种数据的量化方法,包括步骤:对权值进行分组;对每一组权值用聚类算法进行聚类操作,将一组权值分成m个类,每个类计算出一个中心权值,每个类中的所有权值都用中心权值替换,其中,m为正整数;以及对中心权值进行编码操作,得到密码本和权值字典。在本公开的一些实施例中,还包括步骤:对神经网络进行重训练,重训练时只训练密码本,权值字典内容保持不变。在本公开的一些实施例中,所述重训练采用反向传播算法。在本公开的一些实施例中,所述分组包括分为一组、层类型分组、层间分组和/或层内分组。在本公开的一些实施例中,所述聚类算法包括K-means、K-medoids、Clara和/或Clarans。在本公开的一些实施例中,所述分组为分为一组,将神经网络的所有权值归为一组。在本公开的一些实施例中,所述分组为层类型分组,对i个卷积 ...
【技术保护点】
1.一种处理装置,包括:控制单元,用于接收指令并进行译码,生成查找控制信息和运算控制信息;查找表单元,用于接收所述查找控制信息、权值字典和密码本,并根据查找控制信息,对权值字典和密码本进行查表操作,得到量化权值;以及运算单元,用于接收所述运算控制信息和输入神经元,并根据运算控制信息,对量化权值和输入神经元进行运算操作,得到并将输出神经元输出。
【技术特征摘要】
1.一种处理装置,包括:控制单元,用于接收指令并进行译码,生成查找控制信息和运算控制信息;查找表单元,用于接收所述查找控制信息、权值字典和密码本,并根据查找控制信息,对权值字典和密码本进行查表操作,得到量化权值;以及运算单元,用于接收所述运算控制信息和输入神经元,并根据运算控制信息,对量化权值和输入神经元进行运算操作,得到并将输出神经元输出。2.根据权利要求1所述的处理装置,其中,还包括:预处理单元,用于对外部输入的输入信息进行预处理,得到所述输入神经元、权值字典、密码本和指令;存储单元,用于存储输入神经元、权值字典、密码本和指令,以及接收输出神经元;缓存单元,用于缓存所述指令、输入神经元、输出神经元、权值字典和密码本;以及直接内存存取单元,用于在所述存储单元和缓存单元之间进行数据或者指令读写。3.根据权利要求2所述的处理装置,其中,所述预处理单元中,对外部输入的输入信息进行的预处理包括:切分、高斯滤波、二值化、正则化和/或归一化。4.根据权利要求2或3所述的处理装置,其中,所述缓存单元包括:指令缓存,用于缓存所述指令;输入神经元缓存,用于缓存所述输入神经元;以及输出神经元缓存,用于缓存所述输出神经元。5.根据权利要求2至4中任一所述的处理装置,其中,所述缓存单元还包括:权值字典缓存,用于缓存所述权值字典;以及密码本缓存,用于缓存所述密码本。6.根据权利要求1至5中任一所述的处理装置,其中,所述指令为神经网络专用指令。7.根据权利要求6所述的处理装置,其中,所述神经网络专用指令包括:控制指令,用于控制神经网络执行过程;数据传输指令,用于完成不同存储介质之间的数据传输,数据格式包括矩阵、向量和标量;运算指令,用于完成神经网络的算术运算,包括矩阵运算指令、向量运算指令、标量运算指令、卷积神经网络运算指令、全连接神经网络运算指令、池化神经网络运算指令、RBM神经网络运算指令、LRN神经网络运算指令、LCN神经网络运算指令、LSTM神经网络运算指令、RNN神经网络运算指令、RELU神经网络运算指令、PRELU神经网络运算指令、SIGMOID神经网络运算指令、TANH神经网络运算指令、MAXOUT神经网络运算指令;以及逻辑指令,用于完成神经网络的逻辑运算,包括向量逻辑运算指令和标量逻辑运算指令。8.根据权利要求6或7所述的处理装置,其中,所述神经网络专用指令包括至少一种Cambricon指令,该Cambricon指令包括操作码和操作数,所述Cambricon指令包括:Cambricon控制指令用于控制执行过程,且该Cambricon控制指令包括跳转指令和条件分支指令;Cambricon数据传输指令用于完成不同存储介质之间的数据传输,包括加载指令、存储指令、搬运指令;其中,所述加载指令用于将数据从主存加载到缓存;存储指令用于将数据从缓存存储到主存;搬运指令用于在缓存与缓存或者缓存与寄存器或者寄存器与寄存器之间搬运数据;Cambricon运算指令用于完成神经网络算术运算,包括Cambricon矩阵运算指令、Cambricon向量运算指令和Cambricon标量运算指令;其中,所述Cambricon矩阵运算指令用于完成神经网络中的矩阵运算,包括矩阵乘向量、向量乘矩阵、矩阵乘标量、外积、矩阵加矩阵和矩阵减矩阵;所述Cambricon向量运算指令用于完成神经网络中的向量运算,包括向量基本运算、向量超越函数运算、内积、向量随机生成和向量中最大/最小值;Cambricon标量运算指令用于完成神经网络中的标量运算,包括标量基本运算和标量超越函数运算;以及Cambricon逻辑指令用于神经网络的逻辑运算,逻辑运算包括Cambricon向量逻辑运算指令和Cambricon标量逻辑运算指令;其中,所述Cambricon向量逻辑运算指令包括向量比较、向量逻辑运算和向量大于合并;向量逻辑运算包括与、或、非;所述Cambricon标量逻辑运算包括标量比较和标量逻辑运算。9.根据权利要求8所述的处理装置,其中,所述Cambricon数据传输指令支持以下的一种或者多种数据组织方式:矩阵、向量和标量;所述向量基本运算包括向量加、减、乘、除;向量超越函数指不满足以多项式作系数的多项式方程的函数,包括指数函数、对数函数、三角函数、反三角函数;所述标量基本运算包括标量加、减、乘、除;标量超越函数指不满足以多项式作系数的多项式方程的函数,包括指数函数、对数函数、三角函数、反三角函数;所述向量比较包括大于、小于、等于、大于等于、小于等于和不等于;所述向量逻辑运算包括与、或、非;所述标量比较包括大于、小于、等于、大于等于、小于等于和不等于;所述标量逻辑运算包括与、或、非。10.根据权利要求2至9任一所述的处理装置,其中,所述存储单元还用于存储未量化权值,且该未量化权值直接输出至运算单元。11.根据权利要求1至10任一所述的处理装置,其中,所述运算单元包括:第一运算部分,用于将所述权值和输入神经元相乘;和/或第二运算部分,包括一个或者多个加法器,用于对所述权值和输入神经元通过一个或多个加法器相加;和/或第三运算部分,对所述权值和输入神经元进行非线性函数运算,所述非线性函数包括激活函数,所述激活函数包括sigmoid、tanh、relu和/或softmax;和/或第四运算部分,用于对所述权值和输入神经元进行池化操作,所述池化操作包括平均值池化、最大值池化和/或中值池化;其中,所述权值为...
【专利技术属性】
技术研发人员:不公告发明人,
申请(专利权)人:上海寒武纪信息科技有限公司,
类型:发明
国别省市:上海,31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。