CN109993286B - 稀疏神经网络的计算方法及相关产品 - Google Patents
稀疏神经网络的计算方法及相关产品 Download PDFInfo
- Publication number
- CN109993286B CN109993286B CN201711480629.0A CN201711480629A CN109993286B CN 109993286 B CN109993286 B CN 109993286B CN 201711480629 A CN201711480629 A CN 201711480629A CN 109993286 B CN109993286 B CN 109993286B
- Authority
- CN
- China
- Prior art keywords
- kernel
- value
- weight
- num
- identifier
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/213—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
- G06F18/2136—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on sparsity criteria, e.g. with an overcomplete basis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2413—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
- G06F18/24133—Distances to prototypes
- G06F18/24143—Distances to neighbourhood prototypes, e.g. restricted Coulomb energy networks [RCEN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/10—Machine learning using kernel methods, e.g. support vector machines [SVM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Neurology (AREA)
- Medical Informatics (AREA)
- Image Analysis (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Complex Calculations (AREA)
Abstract
本公开提供一种稀疏神经网络的计算方法及相关产品,所述方法包括:接收稀疏神经网络的计算指令,依据所述计算指令获取所述计算指令对应的权值CO*CI*n*m;确定所述权值的核尺寸KERNEL SIZE,以所述核尺寸为基本粒度扫描所述权值得到权标识,将权标识的第二特征值对应的KERNEL存储,将权标识的第一特征值对应的KERNEL删除;扫描权标识的所有值,如该值等于第二特定值,提取该值对应的KERNEL以及输入数据,将输入数据与KERNEL执行运算得到初始结果,如该值等于第一特征值,不读取该值对应的KERNEL以及输入数据;将所有的初始结果进行运算处理得到所述计算指令的计算结果。本发明提供的技术方案具有功耗小的优点。
Description
技术领域
本申请涉及人工智能技术领域,具体涉及一种稀疏神经网络的计算方法及相关产品。
背景技术
随着人工智能技术的日益成熟,各行各业的应用场景和产品需求爆发式增长;为了达到商用产品的需求,人工智能的神经网络算法的计算复杂度非常巨大,这对硬件而言,需要高昂的成本和巨大的功耗;而这对于海量的嵌入式设备和终端设备而言,计算量过大以及功耗巨大是非常大的瓶颈;所以业界的算法都在寻求更小更快的神经网络模型,而神经网络稀疏化是当前算法的一个重要优化方向和研究分支。
现有的实现技术稀疏神经网络计算在实现上比较复杂,难以把计算资源的利用率充分发挥出来,所以现有的稀疏神经网络的计算量大,功耗大。
申请内容
本申请实施例提供了一种稀疏神经网络的计算方法及相关产品,可以减少稀疏神经网络的计算量,从而具有降低功耗、节省计算时间的优点。
第一方面,本申请实施例提供一种稀疏神经网络的计算方法,所述方法包括如下步骤:
接收稀疏神经网络的计算指令,依据所述计算指令获取所述计算指令对应的权值CO NUM*CI NUM*n*m;确定所述权值的核尺寸KERNEL SIZE,以所述核尺寸为基本粒度扫描所述权值得到QMASK权标识,所述权标识包括:CO NUM*CI NUM个值,若第k个基本粒度KERNEL k内所有的权重值均为0,对该KERNELK在权标识的对应位置权标识[K]标记为第一特定值,若KERNELK内的权重值不都为0,对该KERNEL K在权标识的对应位置权标识[K]标记为第二特定值;k的取值范围为【1,CO NUM*CI NUM】;将权标识的第二特征值对应的KERNEL[n][m]存储,将权标识的第一特征值对应的KERNEL[n][m]删除;
扫描权标识的所有值,如该值等于第二特定值,提取该值对应的KERNEL以及该KERNEL对应的输入数据,将输入数据与KERNEL执行运算得到初始结果,若该值等于第一特征值,不读取该值对应的KERNEL以及输入数据;
将所有的初始结果进行运算处理得到所述计算指令的计算结果。
可选的,所述n以及m的取值范围为大于等1的整数。
可选的,所述将权标识的第二特征值对应的KERNEL[n][m]存储,包括:
扫描核标识WMASK获取核标识位置对应的值,存储QASM=1且核标识=1位置对应的KERNEL值。。
可选的,如所述n=3,所述将输入数据与KERNEL执行运算得到初始结果,包括:
扫描KERNEL[3][3]对应的核标识的所有值,所述核标识包括9个比特,所述9个比特与KERNEL[3][3]的9个元素对应,若核标识的位置x2的值等于0,不读取该x2对应的KERNEL[3][3]的元素值,若核标识的位置x1的值等于1,确定该值对应的位置x1,读取KERNEL[3][3]的x1位置的元素值KERNEL[3][3]x1以及x1位置对应的输入数据x1,将KERNEL[3][3]x1与输入数据x1执行乘积运算得到乘积结果;所述x1的取值范围为【1,9】;
将所述核标识的值为1的所有乘积结果累加起来得到所述初始结果。
第三方面,提供一种稀疏神经网络的计算装置,所述装置包括:
收发接口,用于接收稀疏神经网络的计算指令;
获取电路,用于依据所述计算指令从存储器内提取所述计算指令对应的权值CONUM*CI NUM*n*m;
编译电路,用于确定所述权值的核尺寸KERNEL SIZE,以所述核尺寸为基本粒度扫描所述权值得到权标识,所述权标识包括:CO NUM*CI NUM个值,如第k个基本粒度KERNEL k内所有的权重值均为0,对该KERNELK在权标识的对应位置权标识[K]标记为第一特定值,若KERNEL K内的权重值不都为0,对该KERNEL K在权标识的对应位置权标识[K]标记为第二特定值;k的取值范围为【1,CO NUM*CI NUM】;将权标识的第二特征值对应的KERNEL[n][m]存储,将权标识的第一特征值对应的KERNEL[n][m]删除;
计算电路,用于扫描权标识的所有值,若该值等于第二特定值,提取该值对应的KERNEL以及该KERNEL对应的输入数据,将输入数据与KERNEL执行运算得到初始结果,若该值等于第一特征值,不读取该值对应的KERNEL以及输入数据;将所有的初始结果进行运算处理得到所述计算指令的计算结果。
可选的,所述n以及m的取值范围为大于等1的整数。
可选的,所述第一特定值为0,所述第二特定值为1;
或所述第一特定值为1,所述第二特定值为0。
可选的,若所述n=3,所述计算电路具体用于扫描KERNEL[3][3]对应的核标识的所有值,所述核标识包括9个比特,所述9个比特与KERNEL[3][3]的9个元素对应,若核标识的位置x2的值等于0,不读取该x2对应的KERNEL[3][3]的元素值,若核标识的位置x1的值等于1,确定该值对应的位置x1,读取KERNEL[3][3]的x1位置的元素值KERNEL[3][3]x1以及x1位置对应的输入数据x1,将KERNEL[3][3]x1与输入数据x1执行乘积运算得到乘积结果;所述x1的取值范围为【1,9】;将所述核标识的值为1的所有乘积结果累加起来得到所述初始结果。
第三方面,提供一种电子装置,所述电子装置包括第二方面提供的稀疏神经网络的计算装置。
第四方面,提供一种计算机可读存储介质,其存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行如第一方面提供的方法。
第五方面,提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序可操作来使计算机执行第一方面提供的方法。
实施本申请实施例,具有如下有益效果:
可以看出,本申请提供压缩权值参数,增加了权标识和核标识,对于稀疏化的网络模型,有比较多的权值元素值为0,节省的权值参数空间远远大于增加的权标识和核标识信息,压缩后的参数:有效节省存储空,节省DDR存储器的带宽。如图3所示的实施例提供的技术方案当权标识为零时,其不提取对应的输入数据,这样节省了计算器与存储器之间的数据传输的开销,并且去掉了对应的运算,减少了运算量,降低了功耗,节省了成本。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是一种电子装置的结构示意图。
图2是一种稀疏神经网络的数据运算示意图。
图3是本发明提供的一种稀疏神经网络的计算方法的流程示意图。
图3a是一种权标识示意图。
图3b是一种KERNEL[3][3]示意图。
图3c是另一种KERNEL[3][3]示意图。
图3d是一种核标识示意图。
图4是本申请实施例公开的一种芯片的结构示意图。
图5是本申请实施例公开的另一种计算装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本申请中的电子装置可以包括:服务器、智能摄像设备、智能手机(如Android手机、iOS手机、Windows Phone手机等)、平板电脑、掌上电脑、笔记本电脑、移动互联网设备(MID,Mobile Internet Devices)或穿戴式设备等,上述电子装置仅是举例,而非穷举,包含但不限于上述电子装置,为了描述的方便,下面实施例中将上述电子装置称为用户设备(User equipment,UE)、终端或电子设备。当然在实际应用中,上述用户设备也不限于上述变现形式,例如还可以包括:智能车载终端、计算机设备等等。
对于上述电子装置,其结构如图1所示,具体的,其可以包括:处理器101、存储器102、神经网络芯片103,其中处理器101与存储器102以及神经网络芯片103之间连接,具体的在一种可选的技术方案中,上述神经网络芯片103可以集成在处理器101内。存储器102可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)等。本发明的技术方案并不局限上述神经网络芯片103是单独设置还是集成在处理器101内。
参阅图2,图2提供了一种神经网络模型的示意图,如图2所示,每个神经网络模型,其中权重值(WEIGHTS)的量,上述权重值也可以简称为权值,该权值基本决定了神经网络模型计算的复杂度;而稀疏化的优化,是在不改变神经网络模型结构的前提下,尽可能的把权重值中的更多元素优化成0,从而达到大大降低神经网络模型计算复杂度的目的,神经网络计算的输入有两路,一路是权重值(如图2中的Filter),另一路是输入数据Input Image(CI),输出是输出数据Output Image(CO)。
对于神经网络模型,其可以包含多层的计算,每层计算均可能包括例如,矩阵乘以矩阵、卷积运算等等复杂的运算,对于稀疏化后的神经网络模型也可以称为稀疏神经网络模型或稀疏神经网络,稀疏神经网络相对于神经网络,其具有权值中数值为0的元素的个数比较多的特点,由于权值中数值为0的个数比较多,计算量比较小,所以称为稀疏神经网络。如图3a所示,为一种稀疏神经网络权值的表现形式。
下面来介绍一下对应的神经网络计算的方案,神经网络的计算方法分为多层运算,每层运算即为该层的输入数据与权值之间的运算,如图2所示,即为输入数据与权值之间的运算,该运算包括但不限于:卷积运算、矩阵乘矩阵运算等等方式。如图2所示的示意图可以为神经网络某层的一个卷积运算,具体的,
Filters代表神经网络模型中的权重值;
Input Image是本申请中的CI;
Output Image是本文中的CO;
每个CO都由所有CI和对应的权重值相乘,累加得到。
权重值的个数为CI NUM*CO NUM,每个权值为一个二维矩阵数据结构。
对于如图2所示的计算方案,虽然稀疏化能够减少一定的数据计算量,但是其处理方式中并未对稀疏计算进行优化,所以其计算量相对于神经网络来说,其并未减少很多,而神经网络芯片的功耗是于神经网络模型的计算量直接相关的,所以上述计算方式也无法降低芯片的功耗。
参阅图3,图3提供了一种稀疏神经网络的计算方法,该方法由处理器或神经网络处理芯片来执行,该方法如图3所示,包括如下步骤:
步骤S301、接收稀疏神经网络计算指令,依据该稀疏计算指令提取该计算指令对应权值CO NUM*CI NUM*n*m。
步骤S302、确定该权值的核尺寸KERNEL SIZE[n][m];以核尺寸为基本粒度扫描权值得到权值标识,该权标识包括:CO NUM*CI NUM个值,若KERNEL k内所有的权重值(即元素值)均为0,对该KERNELK在权标识的对应位置权标识QMASK[K]标记为第一特定值(例如0),若KERNEL K内的权重值(即元素值)不都为0,对该KERNEL K在权标识的对应位置权标识[K]标记为第二特定值(例如1)。
如图3a所示,图3a为一个权标识的示意图,如图3a,其中,CI NUM=16,CO NUM=32。具体的,如k=1,如图3a所示,其值为1,表示KERNEL[3][3]的权重值中具有至少一个非零权重值。
可选的,上述n=1、3或5。以n=3为例,如KERNEL[3][3]如图3b所示,即其具有4个非零权重值。
如权标识[1]=1,生成核标识(WMASK)[1],该核标识[1]包括n*m个比特,每个比特表示KERNEL[3][3]中一个对应的元素值是否为零。如图3b所示的KERNEL[3][3],其对应的核标识[1]如图3d所示。
如图3a所示,如k=2,其值为0,即KERNEL[3][3]的所有权重值为零,如图3c所示,所有的权重值均为零。
步骤S303、将权标识的第二特征值对应的KERNEL[3][3]存储,将权标识的第一特征值对应的KERNEL[3][3]删除。
其实现的具体双方是可以为:当权标识对应第二特征值的KERNEL[n][m]存储时,并不是存储完整的KERNEL[n][m],而是要结合核标识,只存储QASM=1&核标识=1位置对应的KERNEL值。
对于权标识是粗粒度的标识,表示KERNEL[n][n]全部为0的情况,核标识是细粒度的标识,表示KERNEL[n][n]内部具体哪个元素是0,哪个元素是非零,这样,权标识和核标识结合起来就能够将权值中0全部表示出来,这样就能够指示控制装置跳过权值中的0值的计算,从而降低功耗和计算量。
权标识和核标识都是离线处理的,离线扫描得到权标识和核标识,并根据他们对权值进行压缩(即对0值元素删除,只存储非零元素,并通过权标识和核标识结合起来指示该非零元素的位置)。
步骤S304、获取权标识[K]的值,如权标识[K]=第二特征值,提取该权标识[K]对应的KERNELK以及该KERNEL K对应的输入数据CI,如权标识[K]=第一特征值,不提取输入数据CI。
步骤S305、将KERNEL K与输入数据CI执行运算得到初始结果。
上述步骤S305的实现方法具体可以包括:
读取KERNEL K对应的核标识[k]的n*m个比特值,遍历核标识[k]的所有比特值将比特值不为零的权重值与对应的输入数据CI执行运算得到至少一个前置结果,具体的,如该比特位的值为零,不执行该比特位的运算,如该比特位为非零,读取该比特位在KERNELK对应的权重值,将该权重值与对应的输入数据[K]执行运算得到前置结果。将至少一个前置结果组合起来得到初始结果。
步骤S306、遍历权标识将所有第二特征值对应的KERNEL[3][3]与对应的输入数据计算得到多个初始结果。
步骤S307、将所有到的初始结果进行运算处理得到该计算指令的计算结果。
如图3所示的实施例为了压缩权值参数,增加了权标识和核标识,对于稀疏化的网络模型,有比较多的权值元素值为0,节省的权值参数空间远远大于增加的权标识和核标识信息,压缩后的参数:有效节省存储空,节省DDR的带宽。如图3所示的实施例提供的技术方案当权标识为零时,其不提取对应的输入数据,这样节省了计算器与存储器之间的数据传输的开销,并且去掉了对应的运算,减少了运算量,如图3所示的技术方案的输入是权标识、核标识、权值(压缩后),根据压缩算法进行解码计算,解码过程中可以直接跳过权值中的0,节省功耗和带宽,提高性能,降低了功耗,节省了成本。
参阅图4,图4为一种神经网络处理芯片的结构示意图,如图4所示,该芯片包括:存储器DDR,数据传输电路IDMA,参数传输电路WDMA,计算处理电路PE。其中,
数据传输电路是神经网络处理器内部的数据传输电路(主要传输输入数据);
参数传输电路是神经网络处理器内部的参数传输电路(主要传输权值数据以及权标识);
数据传输电路根据权标识信息来控制CI数据从存储器到计算处理电路的搬运,具体的,
权标识的某位置的值等于0,表示这个值对应的CI->C0的KERNEL n*m为全0,那么算法上,无论CI的值为多少,这个CI的计算结果CO都是恒等于0。
数据传输电路获取到权标识的某个位置等于0,就直接跳过某个位置直接到权标识下一个位置,如下一个位置的值为1,则将该下一个位置对应的非0的CI位置搬运至计算处理电路,这样省去了不必要的数据搬运和内部存储,节省了芯片功耗和存储空间。直接跳到下一个权标识非0的位置搬运,配合计算处理电路的计算,保证数据供给及时,提高了计算速度。
参数传输电路负责把压缩后的权重值和核标识从存储器搬运到计算处理电路内部。
权重值已经删除了所有0,参数传输电路的搬运量和功耗已经得到最大优化,标识送进计算处理电路,用于告诉计算处理电路如何执行跳0计算,提升计算效率。
计算处理
计算处理电路是神经网络处理器内部的计算处理电路
计算处理电路完成CI和权值的乘积和累加计算:
通用的方法不管权值是否为0,完成所有CI和权值的乘积,然后累加得到结果。
但是对于权值中值为0的元素,乘积也为0,对于累加的结果没有任何影响,如果可以直接跳过去,可以大大加速计算效率,减少计算量以及功耗。
由于增加了权标识和核标识来标识权值0的位置和分布,计算处理电路根据权标识和核标识来标识的零的位置信息即可以直接跳过权值中的值为0的元素执行的计算。具体的,
步骤a、计算处理电路扫描权标识[1],如权标识[1]=0,确定权标识[1]对应的KERNEL[1]为全零,跳过权标识[1];
步骤b、扫描权标识[1+1],如权标识[1+1]=1,解析权标识[1+1]对应的核标识[1+1];
步骤C、计算处理电路解析出核标识[1+1]一个1的位置x1,然后读取BUF中的CI[1+1]x1数据,从KERNEL[1+1]的x1对应的值提取得到KERNEL[1+1]x1,将KERNEL[1+1]x1与CI[1+1]x1数据进行乘积运算得到乘积结果。
上述CI[1+1]x1数据可以依据运算的原理来得出,例如,如果是卷积运算,则根据卷积运算的原理确定该CI[1+1]x1数据在CI数据内的位置以及CI[1+1]x1的具体值。
步骤d、计算处理电路重复步骤C直至核标识[1+1]的值全部解析完毕。
步骤e、计算处理电路扫描权标识[1+1]的后续值,如后续值权标识[k]=1,解析权标识[k]对应的核标识[k];
步骤f、计算处理电路解析出核标识[k]一个1的位置x1,然后读取BUF中的CI[k]x1数据,从KERNEL[k]的x1对应的值提取的得到KERNEL[k]x1,将KERNEL[k]x1与CI[k]x1数据进行乘积运算得到乘积结果。
步骤g、计算处理电路重复步骤f直至核标识[k]的值全部解析完毕。
步骤h、计算处理电路遍历核标识所有值,如值为零,执行步骤a,如值为1,执行步骤e、f、步骤g。
步骤I、计算处理电路将所有的乘积结果运算得到计算结果,该乘积结果运算包括但不限于:激活运算、排序运算、累加运算、转换运算等等。
从上面的计算原理来看,本申请的计算处理电路,通过解析两层数据,即权标识以及标识,计算处理电路即可以根据该两层数据的值很简单的跳过权值元素值为0的计算,然后与压缩后的权值配合;可以高效的完成模型计算,由于如图4所示的芯片的结构可以直接跳转所有为零的计算,并且对于为零的数值存储器也不会存储,
参阅图5,图5提供了提供一种稀疏神经网络的计算装置,所述装置包括:
收发接口501,用于接收稀疏神经网络的计算指令;
获取电路502,用于依据所述计算指令从存储器505内提取所述计算指令对应的权值CO NUM*CI NUM*n*m;
编译电路503,用于确定所述权值的核尺寸KERNEL SIZE,以所述核尺寸为基本粒度扫描所述权值得到权标识,所述权标识包括:CO NUM*CI NUM个值,如第k个基本粒度KERNEL k内所有的权重值均为0,对该KERNELK在权标识的对应位置权标识[K]标记为第一特定值,如KERNEL K内的权重值不都为0,对该KERNEL K在权标识的对应位置权标识[K]标记为第二特定值;k的取值范围为【1,CO NUM*CI NUM】;将权标识的第二特征值对应的KERNEL[n][m]存储,将权标识的第一特征值对应的KERNEL[n][m]删除;
计算电路504,用于扫描权标识的所有值,如该值等于第二特定值,提取该值对应的KERNEL以及该KERNEL对应的输入数据,将输入数据与KERNEL执行运算得到初始结果,如该值等于第一特征值,不读取该值对应的KERNEL以及输入数据;将所有的初始结果进行运算处理得到所述计算指令的计算结果。
可选的,所述n等于1、3、5中的任意一个值。
可选的,所述第一特定值为0,所述第二特定值为1;
或所述第一特定值为1,所述第二特定值为0。
可选的,如所述n=3,计算电路504具体用于扫描KERNEL[3][3]对应的核标识的所有值,所述核标识包括9个比特,所述9个比特与KERNEL[3][3]的9个元素对应,如核标识的位置x2的值等于0,不读取该x2对应的KERNEL[3][3]的元素值,如核标识的位置x1的值等于1,确定该值对应的位置x1,读取KERNEL[3][3]的x1位置的元素值KERNEL[3][3]x1以及x1位置对应的输入数据x1,将KERNEL[3][3]x1与输入数据x1执行乘积运算得到乘积结果;所述x1的取值范围为【1,9】;将所述核标识的值为1的所有乘积结果累加起来得到所述初始结果。
本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任何一种稀疏神经网络的计算方法的部分或全部步骤。
本申请实施例还提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序可操作来使计算机执行如上述方法实施例中记载的任何一种稀疏神经网络的计算方法的部分或全部步骤。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (8)
1.一种稀疏神经网络的计算方法,其特征在于,应用于稀疏神经网络的计算装置,所述装置包括收发接口、获取电路、编译电路和计算电路,所述方法包括以下步骤:
所述收发接口接收稀疏神经网络的计算指令;
所述获取电路依据所述计算指令获取所述计算指令对应的权值CO NUM*CI NUM*n*m,所述CI NUM为输入通道的数目,所述CO NUM为输出通道的数目,所述n表示KERNEL的行数,所述m表示KERNEL的列数,所述CI NUM*CO NUM表示KERNEL的个数,所述n*m表示一个KERNEL的权重点数,所述KERNEL表示卷积核,所述CO NUM、CI NUM、n、m均为大于或等于1的整数;
所述编译电路确定所述权值的核尺寸KERNEL SIZE,以所述核尺寸为基本粒度扫描所述权值得到权标识,所述权标识包括:CO NUM*CI NUM个值,若第k个基本粒度KERNELk内所有的权重值均为0,对该KERNELk在权标识的对应位置权标识[k]标记为第一特定值,若KERNELk内的权重值不都为0,对该KERNELk在权标识的对应位置权标识[k]标记为第二特定值;k的取值范围为[1,CO NUM*CI NUM];
将权标识的第二特征值对应的KERNEL[n][m]存储,将权标识的第一特征值对应的KERNEL[n][m]删除,所述KERNEL[n][m]表示卷积核中n行乘以m列的权重;
所述计算电路扫描权标识的所有值,若该值等于第二特定值,提取该值对应的KERNEL以及该KERNEL对应的输入数据,将该KERNEL对应的输入数据与该KERNEL执行运算得到初始结果,若该值等于第一特征值,不读取该值对应的KERNEL以及输入数据;将所有的初始结果进行运算处理得到所述计算指令的计算结果;
其中,所述收发接口、所述获取电路、所述编译电路和所述计算电路均采用硬件的形式实现,各功能单元集成在一个处理单元中,或者,各单元单独物理存在。
2.根据权利要求1所述的方法,其特征在于,所述将权标识的第二特征值对应的KERNEL[n][m]存储,包括:
扫描核标识获取核标识位置对应的值,存储权标识=1且核标识=1位置对应的KERNEL值。
3.根据权利要求1所述的方法,其特征在于,若所述n=3,m=3,所述将输入数据与KERNEL执行运算得到初始结果,包括:
扫描KERNEL[3][3]对应的核标识的所有值,所述核标识包括9个比特,所述9个比特与KERNEL[3][3]的9个元素对应,若核标识的位置x2的值等于0,不读取该x2对应的KERNEL[3][3]的元素值,若核标识的位置x1的值等于1,确定该值对应的位置x1,读取KERNEL[3][3]的x1位置的元素值KERNEL[3][3]x1以及x1位置对应的输入数据x1,将KERNEL[3][3]x1与输入数据x1执行乘积运算得到乘积结果;所述x1的取值范围为[1,9];
将所述核标识的值为1的所有乘积结果累加起来得到所述初始结果。
4.一种稀疏神经网络的计算装置,其特征在于,所述装置包括:
收发接口,用于接收稀疏神经网络的计算指令;
获取电路,用于依据所述计算指令从存储器内提取所述计算指令对应的权值CO NUM*CI NUM*n*m,所述CI NUM为输入通道的数目,所述CO NUM为输出通道的数目,所述n表示KERNEL的行数,所述m表示KERNEL的列数,所述CI NUM*CO NUM表示KERNEL的个数,所述n*m表示一个KERNEL的权重点数,所述KERNEL表示卷积核,所述CO NUM、CI NUM、n、m均为大于或等于1的整数;
编译电路,用于确定所述权值的核尺寸KERNEL SIZE,以所述核尺寸为基本粒度扫描所述权值得到权标识,所述权标识包括:CO NUM*CI NUM个值,若第k个基本粒度KERNELk内所有的权重值均为0,对该KERNELk在权标识的对应位置权标识[k]标记为第一特定值,若KERNELk内的权重值不都为0,对该KERNELk在权标识的对应位置权标识[k]标记为第二特定值;k的取值范围为[1,CO NUM*CI NUM];将权标识的第二特征值对应的KERNEL[n][m]存储,将权标识的第一特征值对应的KERNEL[n][m]删除,所述KERNEL[n][m]表示卷积核中n行乘以m列的权重;
计算电路,用于扫描权标识的所有值,若该值等于第二特定值,提取该值对应的KERNEL以及该KERNEL对应的输入数据,将该KERNEL对应的输入数据与该KERNEL执行运算得到初始结果,若该值等于第一特征值,不读取该值对应的KERNEL以及输入数据;将所有的初始结果进行运算处理得到所述计算指令的计算结果。
5.根据权利要求4所述的计算装置,其特征在于,
所述第一特定值为0,所述第二特定值为1;
或所述第一特定值为1,所述第二特定值为0。
6.根据权利要求4所述的计算装置,其特征在于,若所述n=3,m=3,
所述计算电路具体用于扫描KERNEL[3][3]对应的核标识的所有值,所述核标识包括9个比特,所述9个比特与KERNEL[3][3]的9个元素对应,若核标识的位置x2的值等于0,不读取该x2对应的KERNEL[3][3]的元素值,若核标识的位置x1的值等于1,确定该值对应的位置x1,读取KERNEL[3][3]的x1位置的元素值KERNEL[3][3]x1以及x1位置对应的输入数据x1,将KERNEL[3][3]x1与输入数据x1执行乘积运算得到乘积结果;所述x1的取值范围为[1,9];将所述核标识的值为1的所有乘积结果累加起来得到所述初始结果。
7.一种电子装置,其特征在于,所述电子装置包括如权利要求4-6任意一项所述的稀疏神经网络的计算装置。
8.一种计算机可读存储介质,其特征在于,其存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行如权利要求1-3任一项所述的方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711480629.0A CN109993286B (zh) | 2017-12-29 | 2017-12-29 | 稀疏神经网络的计算方法及相关产品 |
PCT/CN2018/079373 WO2019127926A1 (zh) | 2017-12-29 | 2018-03-16 | 一种稀疏神经网络的计算方法及计算装置、电子装置、计算机可读存储介质以及计算机程序产品 |
US16/627,293 US20200242467A1 (en) | 2017-12-29 | 2018-03-16 | Calculation method and calculation device for sparse neural network, electronic device, computer readable storage medium, and computer program product |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711480629.0A CN109993286B (zh) | 2017-12-29 | 2017-12-29 | 稀疏神经网络的计算方法及相关产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109993286A CN109993286A (zh) | 2019-07-09 |
CN109993286B true CN109993286B (zh) | 2021-05-11 |
Family
ID=67065011
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711480629.0A Active CN109993286B (zh) | 2017-12-29 | 2017-12-29 | 稀疏神经网络的计算方法及相关产品 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20200242467A1 (zh) |
CN (1) | CN109993286B (zh) |
WO (1) | WO2019127926A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110490315B (zh) * | 2019-08-14 | 2023-05-23 | 中科寒武纪科技股份有限公司 | 神经网络的反向运算稀疏方法及相关产品 |
CN114746870A (zh) * | 2019-10-02 | 2022-07-12 | 诺基亚技术有限公司 | 用于神经网络压缩中优先级信令的高级语法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102445468B1 (ko) * | 2014-09-26 | 2022-09-19 | 삼성전자주식회사 | 부스트 풀링 뉴럴 네트워크 기반의 데이터 분류 장치 및 그 데이터 분류 장치를 위한 뉴럴 네트워크 학습 방법 |
CN107239823A (zh) * | 2016-08-12 | 2017-10-10 | 北京深鉴科技有限公司 | 一种用于实现稀疏神经网络的装置和方法 |
CN107239824A (zh) * | 2016-12-05 | 2017-10-10 | 北京深鉴智能科技有限公司 | 用于实现稀疏卷积神经网络加速器的装置和方法 |
CN107169560B (zh) * | 2017-04-19 | 2020-10-16 | 清华大学 | 一种自适应可重构的深度卷积神经网络计算方法和装置 |
CN107153873B (zh) * | 2017-05-08 | 2018-06-01 | 中国科学院计算技术研究所 | 一种二值卷积神经网络处理器及其使用方法 |
CN107341544B (zh) * | 2017-06-30 | 2020-04-10 | 清华大学 | 一种基于可分割阵列的可重构加速器及其实现方法 |
-
2017
- 2017-12-29 CN CN201711480629.0A patent/CN109993286B/zh active Active
-
2018
- 2018-03-16 WO PCT/CN2018/079373 patent/WO2019127926A1/zh active Application Filing
- 2018-03-16 US US16/627,293 patent/US20200242467A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
CN109993286A (zh) | 2019-07-09 |
US20200242467A1 (en) | 2020-07-30 |
WO2019127926A1 (zh) | 2019-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110147251B (zh) | 用于计算神经网络模型的系统、芯片及计算方法 | |
CN109117781B (zh) | 多属性识别模型的建立方法、装置及多属性识别方法 | |
US10217017B2 (en) | Systems and methods for containerizing multilayer image segmentation | |
CN108875482B (zh) | 物体检测方法和装置、神经网络训练方法和装置 | |
Wang et al. | TRC‐YOLO: A real‐time detection method for lightweight targets based on mobile devices | |
CN111260037A (zh) | 图像数据的卷积运算方法、装置、电子设备及存储介质 | |
CN109993286B (zh) | 稀疏神经网络的计算方法及相关产品 | |
CN116152611B (zh) | 一种多级多尺度点云补全方法、系统、设备及存储介质 | |
CN110991310A (zh) | 人像检测方法、装置、电子设备及计算机可读介质 | |
CN116485475A (zh) | 基于边缘计算的物联网广告系统、方法及装置 | |
CN110825902B (zh) | 特征相似性搜索的实现方法、装置、电子设备及存储介质 | |
CN114138231B (zh) | 执行矩阵乘法运算的方法、电路及soc | |
KR101934638B1 (ko) | 행렬 분해를 이용한 저복잡 네트워크 코딩에 기초하는 네트워크 인코딩 장치 및 방법 | |
CN109844774B (zh) | 一种并行反卷积计算方法、单引擎计算方法及相关产品 | |
CN111914987A (zh) | 基于神经网络的数据处理方法及装置、设备和可读介质 | |
CN112200310B (zh) | 智能处理器、数据处理方法及存储介质 | |
CN108416425A (zh) | 一种卷积方法及装置 | |
CN107870921B (zh) | 一种日志数据处理方法及装置 | |
CN115131597A (zh) | 数据处理方法、装置、电子设备和存储介质 | |
CN113837977A (zh) | 对象跟踪方法、多目标跟踪模型训练方法及相关设备 | |
CN113992493A (zh) | 视频处理方法、系统、设备及存储介质 | |
CN112995067B (zh) | 一种粗粒度可重构数据处理架构及其数据处理方法 | |
CN211478524U (zh) | 局部放电定位检测装置及电气设备 | |
CN108809726B (zh) | 盒覆盖节点的方法和系统 | |
CN107735800A (zh) | 一种图像处理方法以及相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |