CN109993286A - 稀疏神经网络的计算方法及相关产品 - Google Patents

稀疏神经网络的计算方法及相关产品 Download PDF

Info

Publication number
CN109993286A
CN109993286A CN201711480629.0A CN201711480629A CN109993286A CN 109993286 A CN109993286 A CN 109993286A CN 201711480629 A CN201711480629 A CN 201711480629A CN 109993286 A CN109993286 A CN 109993286A
Authority
CN
China
Prior art keywords
value
kernel
token
core
input data
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.)
Granted
Application number
CN201711480629.0A
Other languages
English (en)
Other versions
CN109993286B (zh
Inventor
曹庆新
黎立煌
李炜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Intellifusion Technologies Co Ltd
Original Assignee
Shenzhen Intellifusion Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Intellifusion Technologies Co Ltd filed Critical Shenzhen Intellifusion Technologies Co Ltd
Priority to CN201711480629.0A priority Critical patent/CN109993286B/zh
Priority to PCT/CN2018/079373 priority patent/WO2019127926A1/zh
Priority to US16/627,293 priority patent/US20200242467A1/en
Publication of CN109993286A publication Critical patent/CN109993286A/zh
Application granted granted Critical
Publication of CN109993286B publication Critical patent/CN109993286B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/213Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
    • G06F18/2136Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on sparsity criteria, e.g. with an overcomplete basis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • G06F18/24133Distances to prototypes
    • G06F18/24143Distances to neighbourhood prototypes, e.g. restricted Coulomb energy networks [RCEN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Abstract

本公开提供一种稀疏神经网络的计算方法及相关产品,所述方法包括:接收稀疏神经网络的计算指令,依据所述计算指令获取所述计算指令对应的权值CO*CI*n*m;确定所述权值的核尺寸KERNEL SIZE,以所述核尺寸为基本粒度扫描所述权值得到权标识,将权标识的第二特征值对应的KERNEL存储,将权标识的第一特征值对应的KERNEL删除;扫描权标识的所有值,如该值等于第二特定值,提取该值对应的KERNEL以及输入数据,将输入数据与KERNEL执行运算得到初始结果,如该值等于第一特征值,不读取该值对应的KERNEL以及输入数据;将所有的初始结果进行运算处理得到所述计算指令的计算结果。本发明提供的技术方案具有功耗小的优点。

Description

稀疏神经网络的计算方法及相关产品
技术领域
本申请涉及人工智能技术领域,具体涉及一种稀疏神经网络的计算方法及 相关产品。
背景技术
随着人工智能技术的日益成熟,各行各业的应用场景和产品需求爆发式增 长;为了达到商用产品的需求,人工智能的神经网络算法的计算复杂度非常巨 大,这对硬件而言,需要高昂的成本和巨大的功耗;而这对于海量的嵌入式设 备和终端设备而言,计算量过大以及功耗巨大是非常大的瓶颈;所以业界的算 法都在寻求更小更快的神经网络模型,而神经网络稀疏化是当前算法的一个重 要优化方向和研究分支。
现有的实现技术稀疏神经网络计算在实现上比较复杂,难以把计算资源的 利用率充分发挥出来,所以现有的稀疏神经网络的计算量大,功耗大。
申请内容
本申请实施例提供了一种稀疏神经网络的计算方法及相关产品,可以减少 稀疏神经网络的计算量,从而具有降低功耗、节省计算时间的优点。
第一方面,本申请实施例提供一种稀疏神经网络的计算方法,所述方法包 括如下步骤:
接收稀疏神经网络的计算指令,依据所述计算指令获取所述计算指令对应 的权值CO*CI*n*m;确定所述权值的核尺寸KERNEL SIZE,以所述核尺寸为 基本粒度扫描所述权值得到QMASK权标识,所述权标识包括:CO*CI个值, 如第k个基本粒度KERNELk内所有的权重值均为0,对该KERNELK在权标识 的对应位置权标识[K]标记为第一特定值,如KERNELK内的权重值不都为0, 对该KERNELK在权标识的对应位置权标识[K]标记为第二特定值;k的取值范 围为【1,CO*CI】;将权标识的第二特征值对应的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的所有乘积结果累加起来得到所述初始结果。
第三方面,提供一种稀疏神经网络的计算装置,所述装置包括:
收发接口,用于接收稀疏神经网络的计算指令;
获取电路,用于依据所述计算指令从存储器内提取所述计算指令对应的权 值CO*CI*n*m;
编译电路,用于确定所述权值的核尺寸KERNEL SIZE,以所述核尺寸为基 本粒度扫描所述权值得到权标识,所述权标识包括:CO*CI个值,如第k个基 本粒度KERNELk内所有的权重值均为0,对该KERNELK在权标识的对应位置 权标识[K]标记为第一特定值,如KERNELK内的权重值不都为0,对该KERNEL K在权标识的对应位置权标识[K]标记为第二特定值;k的取值范围为【1, CO*CI】;将权标识的第二特征值对应的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),另一路是输入数据InputImage(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*CI*n*m。
步骤S302、确定该权值的核尺寸KERNEL SIZE[n][m];以核尺寸为基本粒 度扫描权值得到权值标识,该权标识包括:CO*CI个值,如KERNELk内所有 的权重值(即元素值)均为0,对该KERNELK在权标识的对应位置权标识 QMASK[K]标记为第一特定值(例如0),如KERNELK内的权重值(即元素值) 不都为0,对该KERNELK在权标识的对应位置权标识[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以及该KERNELK对应的输入数据CI,如权标识[K]=第一 特征值,不提取输入数据CI。
步骤S305、将KERNELK与输入数据CI执行运算得到初始结果。
上述步骤S305的实现方法具体可以包括:
读取KERNELK对应的核标识[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*CI*n*m;
编译电路503,用于确定所述权值的核尺寸KERNEL SIZE,以所述核尺寸 为基本粒度扫描所述权值得到权标识,所述权标识包括:CO*CI个值,如第k 个基本粒度KERNELk内所有的权重值均为0,对该KERNELK在权标识的对应 位置权标识[K]标记为第一特定值,如KERNELK内的权重值不都为0,对该 KERNELK在权标识的对应位置权标识[K]标记为第二特定值;k的取值范围为 【1,CO*CI】;将权标识的第二特征值对应的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 (11)

1.一种稀疏神经网络的计算方法,其特征在于,所述方法包括如下步骤:
接收稀疏神经网络的计算指令,依据所述计算指令获取所述计算指令对应的权值CO*CI*n*m;
确定所述权值的核尺寸KERNEL SIZE,以所述核尺寸为基本粒度扫描所述权值得到权标识,所述权标识包括:CO*CI个值,如第k个基本粒度KERNELk内所有的权重值均为0,对该KERNELK在权标识的对应位置权标识[K]标记为第一特定值,如KERNEL K内的权重值不都为0,对该KERNEL K在权标识的对应位置权标识[K]标记为第二特定值;k的取值范围为【1,CO*CI】;
将权标识的第二特征值对应的KERNEL[n][m]存储,将权标识的第一特征值对应的KERNEL[n][m]删除;
扫描权标识的所有值,如该值等于第二特定值,提取该值对应的KERNEL以及该KERNEL对应的输入数据,将输入数据与KERNEL执行运算得到初始结果,如该值等于第一特征值,不读取该值对应的KERNEL以及输入数据;
将所有的初始结果进行运算处理得到所述计算指令的计算结果。
2.根据权利要求1所述的方法,其特征在于,
所述n以及m的取值范围为大于等1的整数。
3.根据权利要求1所述的方法,其特征在于,所述将权标识的第二特征值对应的KERNEL[n][m]存储,包括:
扫描核标识获取核标识位置对应的值,存储权标识=1且核标识=1位置对应的KERNEL值。
4.根据权利要求2所述的方法,其特征在于,如所述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的所有乘积结果累加起来得到所述初始结果。
5.一种稀疏神经网络的计算装置,其特征在于,所述装置包括:
收发接口,用于接收稀疏神经网络的计算指令;
获取电路,用于依据所述计算指令从存储器内提取所述计算指令对应的权值CO*CI*n*m;
编译电路,用于确定所述权值的核尺寸KERNEL SIZE,以所述核尺寸为基本粒度扫描所述权值得到权标识,所述权标识包括:CO*CI个值,如第k个基本粒度KERNEL k内所有的权重值均为0,对该KERNELK在权标识的对应位置权标识[K]标记为第一特定值,如KERNEL K内的权重值不都为0,对该KERNELK在权标识的对应位置权标识[K]标记为第二特定值;k的取值范围为【1,CO*CI】;将权标识的第二特征值对应的KERNEL[n][m]存储,将权标识的第一特征值对应的KERNEL[n][m]删除;
计算电路,用于扫描权标识的所有值,如该值等于第二特定值,提取该值对应的KERNEL以及该KERNEL对应的输入数据,将输入数据与KERNEL执行运算得到初始结果,如该值等于第一特征值,不读取该值对应的KERNEL以及输入数据;将所有的初始结果进行运算处理得到所述计算指令的计算结果。
6.根据权利要求5所述的计算装置,其特征在于,
所述n以及m的取值范围为大于等1的整数。
7.根据权利要求5所述的计算装置,其特征在于,
所述第一特定值为0,所述第二特定值为1;
或所述第一特定值为1,所述第二特定值为0。
8.根据权利要求6所述的计算装置,其特征在于,如所述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的所有乘积结果累加起来得到所述初始结果。
9.一种电子装置,其特征在于,所述电子装置包括如权利要求5-8任意一项所述的稀疏神经网络的计算装置。
10.一种计算机可读存储介质,其特征在于,其存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行如权利要求1-4任一项所述的方法。
11.一种计算机程序产品,其特征在于,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序可操作来使计算机执行如权利要求1-4任一项所述的方法。
CN201711480629.0A 2017-12-29 2017-12-29 稀疏神经网络的计算方法及相关产品 Active CN109993286B (zh)

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 true CN109993286A (zh) 2019-07-09
CN109993286B 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110490315A (zh) * 2019-08-14 2019-11-22 北京中科寒武纪科技有限公司 神经网络的反向运算稀疏方法及相关产品

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210103813A1 (en) * 2019-10-02 2021-04-08 Nokia Technologies Oy High-Level Syntax for Priority Signaling in Neural Network Compression

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107153873A (zh) * 2017-05-08 2017-09-12 中国科学院计算技术研究所 一种二值卷积神经网络处理器及其使用方法
CN107239823A (zh) * 2016-08-12 2017-10-10 北京深鉴科技有限公司 一种用于实现稀疏神经网络的装置和方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102445468B1 (ko) * 2014-09-26 2022-09-19 삼성전자주식회사 부스트 풀링 뉴럴 네트워크 기반의 데이터 분류 장치 및 그 데이터 분류 장치를 위한 뉴럴 네트워크 학습 방법
CN107239824A (zh) * 2016-12-05 2017-10-10 北京深鉴智能科技有限公司 用于实现稀疏卷积神经网络加速器的装置和方法
CN107169560B (zh) * 2017-04-19 2020-10-16 清华大学 一种自适应可重构的深度卷积神经网络计算方法和装置
CN107341544B (zh) * 2017-06-30 2020-04-10 清华大学 一种基于可分割阵列的可重构加速器及其实现方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107239823A (zh) * 2016-08-12 2017-10-10 北京深鉴科技有限公司 一种用于实现稀疏神经网络的装置和方法
CN107153873A (zh) * 2017-05-08 2017-09-12 中国科学院计算技术研究所 一种二值卷积神经网络处理器及其使用方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110490315A (zh) * 2019-08-14 2019-11-22 北京中科寒武纪科技有限公司 神经网络的反向运算稀疏方法及相关产品
CN110490315B (zh) * 2019-08-14 2023-05-23 中科寒武纪科技股份有限公司 神经网络的反向运算稀疏方法及相关产品

Also Published As

Publication number Publication date
US20200242467A1 (en) 2020-07-30
CN109993286B (zh) 2021-05-11
WO2019127926A1 (zh) 2019-07-04

Similar Documents

Publication Publication Date Title
US11734006B2 (en) Deep vision processor
CN107895191B (zh) 一种信息处理方法及相关产品
CN109101273B (zh) 神经网络处理装置及其执行向量最大值指令的方法
CN110582785B (zh) 配置用于执行层描述符列表的具有功率效率的深度神经网络模块
CN107169563B (zh) 应用于二值权重卷积网络的处理系统及方法
CN109416702A (zh) 基于掩码的稀疏矩阵压缩的方法、系统以及程序产品
CN111984400B (zh) 神经网络的内存分配方法及装置
CN111275107A (zh) 一种基于迁移学习的多标签场景图像分类方法及装置
CN113822209B (zh) 高光谱图像识别方法、装置、电子设备及可读存储介质
CN112219210B (zh) 信号处理装置和信号处理方法
CN110991630A (zh) 一种面向边缘计算的卷积神经网络处理器
CN109598250A (zh) 特征提取方法、装置、电子设备和计算机可读介质
CN112115801B (zh) 动态手势识别方法、装置、存储介质及终端设备
CN110147249A (zh) 一种网络模型的计算方法及装置
CN114969417B (zh) 图像重排序方法、相关设备及计算机可读存储介质
Shahshahani et al. Memory optimization techniques for fpga based cnn implementations
CN110782430A (zh) 一种小目标的检测方法、装置、电子设备及存储介质
CN112799599A (zh) 一种数据存储方法、计算核、芯片和电子设备
CN104850516B (zh) 一种ddr变频设计方法和装置
CN109993286A (zh) 稀疏神经网络的计算方法及相关产品
CN110163349A (zh) 一种网络模型的计算方法及装置
CN111161705A (zh) 语音转换方法及装置
CN112200310B (zh) 智能处理器、数据处理方法及存储介质
CN109799483A (zh) 一种数据处理方法和装置
CN113205137A (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