CN110472736A - 一种裁剪神经网络模型的方法和电子设备 - Google Patents

一种裁剪神经网络模型的方法和电子设备 Download PDF

Info

Publication number
CN110472736A
CN110472736A CN201910791699.0A CN201910791699A CN110472736A CN 110472736 A CN110472736 A CN 110472736A CN 201910791699 A CN201910791699 A CN 201910791699A CN 110472736 A CN110472736 A CN 110472736A
Authority
CN
China
Prior art keywords
neuron
cut
neuronal
neuronal layers
layers
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
CN201910791699.0A
Other languages
English (en)
Other versions
CN110472736B (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.)
Lenovo Beijing Ltd
Original Assignee
Lenovo Beijing 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 Lenovo Beijing Ltd filed Critical Lenovo Beijing Ltd
Priority to CN201910791699.0A priority Critical patent/CN110472736B/zh
Publication of CN110472736A publication Critical patent/CN110472736A/zh
Application granted granted Critical
Publication of CN110472736B publication Critical patent/CN110472736B/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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Feedback Control In General (AREA)
  • Semiconductor Memories (AREA)

Abstract

本申请提供了一种裁剪神经网络模型的方法,基于神经元在待裁剪神经元层中的重要度最低,确定第一神经元为待裁剪的神经元,基于与该第一神经元差异度最小,确定第二神经元为待裁剪的神经元,以此类推,确定与上一待裁剪的神经元差异度最低的神经元为新的待裁剪的神经元,直至裁剪的神经元数量满足预设待裁剪的神经元数量为止。由于裁剪的神经元为重要度最低,以及与该重要度最低的神经元差异度最低的神经元,不会对神经网络模型的准确度产生较大的影响,在保证了神经网络模型数据处理准确度的前提下,完成率了对于神经网络模型的压缩裁剪,方便其部署在边缘设备上。

Description

一种裁剪神经网络模型的方法和电子设备
技术领域
本申请涉及电子设备领域,更具体的说,是涉及一种裁剪神经网络模型的方法和电子设备。
背景技术
“边缘智能”作为人工智能落实到真实生活的最后一里路,需在终端设备上运行复杂的深度神经网络模型。
而随着人工智能领域对机器智能化需求的提高,神经网络的结构设计得愈加复杂,所需的计算量和存储空间也随之大大增加,但处于边缘的便携设备(如移动手机的FaceID(刷脸认证)、无人机、去中心化自动驾驶系统等)的计算和存储等资源有限,这使得深度神经网络难以在边缘设备上的高效的部署。因此需对神经网络模型进行压缩裁剪以完成轻量级部署。
所以,亟需一种能够对神经网络模型进行裁剪的方法。
发明内容
有鉴于此,本申请提供了一种裁剪神经网络模型的方法,解决现有技术中边缘设备的资源有限导致其不能支持神经网络模型部署的问题。
为实现上述目的,本申请提供如下技术方案:
一种裁剪神经网络模型的方法,包括:
选择待裁剪神经元层,所述待裁剪神经元层中包含至少两个神经元;
从待裁剪神经元层中选择重要度最低的第一神经元;
计算所述待裁剪神经元层中至少两个神经元之间的差异度;
选取与第一神经元差异度最小的第二神经元,删除所述第一神经元与第二神经元,选择待裁剪神经元层的剩余神经元中与所述第二神经元差异度最低的第三神经元删除,并统计删除的神经元数量,至删除神经元的数量满足预设待裁剪的神经元数量停止删除神经元。
优选的,上述的方法,所述从待裁剪神经元层中选择重要度最低的第一神经元,包括:
依次计算所述待裁剪神经元层中任一神经元与上一神经元层之间的连接度,所述连接度表征所述任一神经元在所述待裁剪神经元层中的重要度;
从计算得到的所述至少两个神经元的重要度,选择重要度数值最小的第一神经元。
优选的,上述的方法,计算所述待裁剪神经元层中第四神经元与上一神经元层之间的连接度,包括:
依据预设的权值序列,依次与上一神经元层中每个神经元的重要度相乘并取和,得到的数值为所述第四神经元与上一神经元层之间的连接度,所述权值序列中针对上一层每个神经元具有一个权值。
优选的,上述的方法,所述计算所述待裁剪神经元层中至少两个神经元之间的差异度,包括:
依次计算所述待裁剪神经元层中任意两个神经元之间的欧式距离;
获取任意神经元与预设个数临近神经元之间的欧式距离,断开所述待裁剪神经元层中除所述预设个数神经元之外的神经元与所述任意神经元之间连接;
依据任意神经元与所述临近神经元的欧式距离,计算所述待裁剪神经元层中任意两个神经元之间的所有测地路径以及测地距离,所述测地路径包括所述任意两个神经元之间的直接连接路径以及间接连接路径;
将任意两个神经元之间最小测地距离作为所述任意两个神经元之间的距离,所述两个神经元之间的距离表征了所述两个神经之间的差异度。
优选的,上述的方法,所述获取任意神经元与预设个数临近神经元之间的欧式距离,具体包括:
比对所述任意神经元与所述待裁剪神经元层中其他神经元的欧式距离,按照从小到大的顺序,选择预设个数的神经元作为所述任意神经元的临近神经元;
获取所述任意神经元与所述临近神经元之间的欧式距离。
优选的,上述的方法,还包括:
获取预设裁剪量;
依据所述预设裁剪量,计算得到待裁剪神经元数量。
一种电子设备,包括:
选择模块,用于选择待裁剪神经元层,所述待裁剪神经元层中包含至少两个神经元;从待裁剪神经元层中选择重要度最低的第一神经元;
计算模块,用于计算所述待裁剪神经元层中至少两个神经元之间的差异度;
删除模块,用于选取与第一神经元差异度最小的第二神经元,删除所述第一神经元与第二神经元,选择待裁剪神经元层的剩余神经元中与所述第二神经元差异度最低的第三神经元删除,并统计删除的神经元数量,至删除神经元的数量满足预设待裁剪的神经元数量停止删除神经元。
优选的,上述的电子设备,选择模块,具体用于:
依次计算所述待裁剪神经元层中任一神经元与上一神经元层之间的连接度,所述连接度表征所述任一神经元在所述待裁剪神经元层中的重要度;
从计算得到的所述至少两个神经元的重要度,选择重要度数值最小的第一神经元。
优选的,上述的电子设备,计算模块,具体用于:
依次计算所述待裁剪神经元层中任意两个神经元之间的欧式距离;
获取任意神经元与预设个数临近神经元之间的欧式距离,断开所述待裁剪神经元层中除所述预设个数神经元之外的神经元与所述任意神经元之间连接;
依据任意神经元与所述临近神经元的欧式距离,计算所述待裁剪神经元层中任意两个神经元之间的所有测地路径以及测地距离,所述测地路径包括所述任意两个神经元之间的直接连接路径以及间接连接路径;
将任意两个神经元之间最小测地距离作为所述任意两个神经元之间的距离,所述两个神经元之间的距离表征了所述两个神经之间的差异度。
一种电子设备,包括:
处理器,用于选择待裁剪神经元层,所述待裁剪神经元层中包含至少两个神经元;从待裁剪神经元层中选择重要度最低的第一神经元;计算所述待裁剪神经元层中至少两个神经元之间的差异度;选取与第一神经元差异度最小的第二神经元,删除所述第一神经元与第二神经元,选择待裁剪神经元层的剩余神经元中与所述第二神经元差异度最低的第三神经元删除,并统计删除的神经元数量,至删除神经元的数量满足预设待裁剪的神经元数量停止删除神经元;
存储器,用于存储预设待裁剪的神经元数量。
经由上述的技术方案可知,与现有技术相比,本申请提供了一种裁剪神经网络模型的方法,包括:选择待裁剪神经元层,所述待裁剪神经元层中包含至少两个神经元;从待裁剪神经元层中选择重要度最低的第一神经元;计算所述待裁剪神经元层中至少两个神经元之间的差异度;选取与第一神经元差异度最小的第二神经元,删除所述第一神经元与第二神经元,选择待裁剪神经元层的剩余神经元中与所述第二神经元差异度最低的第三神经元删除,并统计删除的神经元数量,至删除神经元的数量满足待裁剪的神经元数量停止删除神经元。本方案中,基于神经元在待裁剪神经元层中的重要度最低,确定第一神经元为待裁剪的神经元,基于与该第一神经元差异度最小,确定第二神经元为待裁剪的神经元,以此类推,确定与上一待裁剪的神经元差异度最低的神经元为新的待裁剪的神经元,直至裁剪的神经元数量满足预设待裁剪的神经元数量为止。由于裁剪的神经元为重要度最低,以及与该重要度最低的神经元差异度最低的神经元,不会对神经网络模型的准确度产生较大的影响,在保证了神经网络模型数据处理准确度的前提下,完成率了对于神经网络模型的压缩裁剪,方便其部署在边缘设备上。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请提供的一种裁剪神经网络模型的方法实施例1的流程图;
图2为本申请提供的一种裁剪神经网络模型的方法实施例2的流程图;
图3为本申请提供的一种裁剪神经网络模型的方法实施例2的两个神经元层的连接示意图;
图4为本申请提供的一种裁剪神经网络模型的方法实施例3的流程图;
图5为本申请提供的一种裁剪神经网络模型的方法实施例3待裁剪神经元层中各个神经元的连接示意图;
图6为本申请提供的一种裁剪神经网络模型的方法实施例4的流程图;
图7为本申请提供的一种电子设备实施例1的结构示意图;
图8为本申请提供的一种电子设备实施例2的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图1所示的,为本申请提供的一种裁剪神经网络模型的方法实施例1的流程图,该方法应用于一电子设备,该方法包括以下步骤:
步骤S101:选择待裁剪神经元层,所述待裁剪神经元层中包含至少两个神经元;
其中,该神经网络模型中包含有多个神经元层,每个神经元层中可以包含多个神经元。
具体实施中,可以根据预设的信息选择待裁剪的神经元层,如可以选择数据处理精确度要求较低的神经元层,或者可以选择神经元数量最大的神经元层。
需要说明的是,本申请中提出的几种选择神经元层的方式仅是示例,不对选择待裁剪神经元层的方式做限制。
步骤S102:从待裁剪神经元层中选择重要度最低的第一神经元;
其中,某一神经元在其所在的神经元层中重要度最低,则可以认为该神经元是可以忽略/删掉的神经元,即使删掉该神经元,其所属的神经元层的精度受到影响最小。
具体的,该重要度可以采用某一神经元与上一层中各个神经元的连接度表示,该连接度的数值越大,该神经元的重要度越高。
具体的,从待裁剪神经元层中选择重要度最低的第一神经元,该第一神经元与上一层各个神经元的连接度最小。
后续实施例中会针对选择第一神经元的具体过程,本实施例中不做赘述。
步骤S103:计算所述待裁剪神经元层中至少两个神经元之间的差异度;
其中,该神经元层中包含的大量神经元,其中存在神经元功能类似、重复的结构,则可以认为该两个神经元之间的差异度小。
具体实施中,该神经元之间的差异度可以采用神经元之间的距离表示。
后续实施例中会针对计算神经元之间的差异度的过程详细解释,本实施例中不做详述。
步骤S104:选取与第一神经元差异度最小的第二神经元,删除所述第一神经元与第二神经元,选择待裁剪神经元层的剩余神经元中与所述第二神经元差异度最低的第三神经元删除,并统计删除的神经元数量,至删除神经元的数量满足预设待裁剪的神经元数量停止删除神经元。
其中,由于该第一神经元是重要度最低的神经元,其对应神经元层整体的准确度影响最低,则删除该第一神经元,在保证了其所属神经元层的数据处理精确度的前提下,也减少了该神经元层的数据处理量,所以,删除该第一神经元,简化压缩该神经网络模型。
其中,该第二神经元与该第一神经元差异度最小,那么,该第二神经元的功能等于该第一神经元最接近,基于该第一神经元是其所属神经元层重要度最低的神经元,那么,除了该第一神经元,可以认为该第二神经元对其所属神经元层整体的准确度影响最低,删除该第二神经元,实现简化压缩该神经网络模型。
然后,从该神经元层中剩余的神经元中,选择与刚刚删除的该第二神经元差异度最小的第三神经元,可以删除该第三神经元以实现压缩该神经网络模型。
当然,删除了第三神经元后,还可以从该神经元层中剩余的神经元中,选择与刚刚删除的该第三神经元差异度最小的第四神经元,可以删除该第四神经元以实现压缩该神经网络模型。
具体实施中,根据预设的待裁剪的神经元数量,确定删除的神经元数量。
具体实施过程中,由于任意神经元层中包含海量的神经元,则一般的,至少需要将重要度最低的第一神经元和与其差异度最小的第二神经元删除。
当然,具体实施中,该预设待裁剪的神经元数量为1时,可以只删除该第一神经元,不再删除其他神经元。
综上,本实施例提供的一种裁剪神经网络模型的方法中,基于神经元在待裁剪神经元层中的重要度最低,确定第一神经元为待裁剪的神经元,基于与该第一神经元差异度最小,确定第二神经元为待裁剪的神经元,以此类推,确定与上一待裁剪的神经元差异度最低的神经元为新的待裁剪的神经元,直至裁剪的神经元数量满足预设待裁剪的神经元数量为止。由于裁剪的神经元为重要度最低,以及与该重要度最低的神经元差异度最低的神经元,不会对神经网络模型的准确度产生较大的影响,在保证了神经网络模型数据处理准确度的前提下,完成率了对于神经网络模型的压缩裁剪,方便其部署在边缘设备上。
如图2所示的,为本申请提供的一种裁剪神经网络模型的方法实施例2的流程图,该方法包括以下步骤:
步骤S201:选择待裁剪神经元层,所述待裁剪神经元层中包含至少两个神经元;
其中,步骤S201与实施例1中的步骤S101一致,本实施例中不做赘述。
步骤S202:依次计算所述待裁剪神经元层中任一神经元与上一神经元层之间的连接度;
其中,所述连接度表征所述任一神经元在所述待裁剪神经元层中的重要度。
其中,神经元层中某一神经元的重要度,可以通过该神经元与上一神经元层的连接度表示,该连接度的数值越大,该神经元的重要度越高。
具体的,将该待裁剪神经元中的某一神经元记为第四神经元,计算所述待裁剪神经元层中第四神经元与上一神经元层之间的连接度,包括:
依据预设的权值序列,依次与上一神经元层中每个神经元的重要度相乘并取和,得到的数值为所述第四神经元与上一神经元层之间的连接度,所述权值序列中针对上一层每个神经元具有一个权值。
其中,该计算神经元与上一神经元层的连接度可以采用如下公式:
yi=||wi||l1 i
其中,i的取值为正整数,yi表示神经元i与上一层神经元层的连接度,wi表示各个神经元的权重值,l1表示神经元范数。
如图3所示的为本实施例中提供的两个神经元层的连接示意图,其中上一神经元层中包括5个神经元,分别为x1-x5,待裁剪的神经元层中包含4个神经元,分别为y1-y4。其中,各个神经元的权重值表301中行对应待裁剪神经元层中神经元数,列对应上一神经元层中神经元数。
其中,该权重值表中,第一行对应的是计算y1所需的权重值,该计算y1的公式如下:y1=x1 A1+x2 B1+x3 C1+x4 D1+x5 E1;
其中,第二行对应的是计算y2所需的权重值,该计算y2的公式如下:y2=x1 A2+x2B2+x3 C2+x4 D2+x5 E2;
其中,第三行对应的是计算y3所需的权重值,该计算y3的公式如下:y3=x1 A3+x2B3+x3 C3+x4 D3+x5 E3;
其中,第四行对应的是计算y4所需的权重值,该计算y4的公式如下:y4=x1 A4+x2B4+x3 C4+x4 D4+x5 E4。
具体实施中,可以采用如上计算方式,对于该待裁剪神经元层中的各个神经元计算重要度。
步骤S203:从计算得到的所述至少两个神经元的重要度,选择重要度数值最小的第一神经元;
其中,从计算得到的该待裁剪神经元层中各个神经元的重要度,选择重要度最低的一个神经元作为第一神经元。
具体的,该重要度最低表示该神经元与上一神经元层的连接度最低,则该上一神经元层中输出的数据对于该神经元的影响最小。
步骤S204:计算所述待裁剪神经元层中至少两个神经元之间的差异度;
步骤S205:选取与第一神经元差异度最小的第二神经元,删除所述第一神经元与第二神经元,选择待裁剪神经元层的剩余神经元中与所述第二神经元差异度最低的第三神经元删除,并统计删除的神经元数量,至删除神经元的数量满足预设待裁剪的神经元数量停止删除神经元。
其中,步骤S204-205与实施例1中的步骤S103-104一致,本实施例中不做赘述。
综上,本实施例提供的一种裁剪神经网络模型的方法中,从待裁剪神经元层中选择重要度最低的第一神经元,包括:依次计算所述待裁剪神经元层中任一神经元与上一神经元层之间的连接度,所述连接度表征所述任一神经元在所述待裁剪神经元层中的重要度;从计算得到的所述至少两个神经元的重要度,选择重要度数值最小的第一神经元。本方案中,通过计算待裁剪层神经元层中每个神经元与上一神经元层之间的连接度,确定该待裁剪神经元层中最不重要的第一神经元,后续步骤中,可以将该最不重要的第一神经元删除,不会对神经网络模型的准确度产生较大的影响,在保证了神经网络模型数据处理准确度的前提下,完成率了对于神经网络模型的压缩裁剪。
如图4所示的,为本申请提供的一种裁剪神经网络模型的方法实施例3的流程图,该方法包括以下步骤:
步骤S401:选择待裁剪神经元层,所述待裁剪神经元层中包含至少两个神经元;
步骤S402:从待裁剪神经元层中选择重要度最低的第一神经元;
其中,步骤S401-402与实施例1的步骤S101-102一致,本实施例中不做赘述。
步骤S403:依次计算所述待裁剪神经元层中任意两个神经元之间的欧式距离;
需要说明的是,本申请中,将待裁剪神经元层中的神经元与前一层连接的权重向量作为其显性表示,将神经元看作高维空间的点,由于高维空间直接计算样本之间的直线距离(欧式距离)是具有很大的误导性的。举个例子,计算地球上南极到北极之间的距离,可以直接计算这两点之间的距离,但是这种距离是毫无意义的,测地距离才是两点之间的本真距离。因此将神经元的测地距离来衡量神经元之间的差异性。
具体的,依次计算该待裁剪神经元层中任意两个神经元之间的欧式距离,以确定两个神经元之间的距离。
步骤S404:获取任意神经元与预设个数临近神经元之间的欧式距离,断开所述待裁剪神经元层中除所述预设个数神经元之外的神经元与所述任意神经元之间连接;
需要说明的是,由于欧式距离有很大的误导性,所以,本申请中,计算两个神经元之间的测地距离,而该测地距离是基于欧式距离计算得到的。本申请中,采用两个神经元之间的距离来表示二者之间的差异度,距离越小,差异度越小;距离越大,差异度越大。
具体的,某一神经元与其他神经元临近,表示两个神经元直接连接,二者之间无其他神经元。
其中,当神经元与其他神经元之间欧式距离较大时,则二者之间的差异度较大,为了降低确定神经元与其他神经元之间的测地距离的计算量,则将与该距离较大的神经元之间的连接断开。
作为一个具体示例,断开神经元a与神经元b之间的连接,则将记录的二者之间欧式距离设为正无穷(∞)。
具体实施中,可以按照预设的个数,从与该神经元临近的多个神经元中选择预设个数的神经元,并断开其他神经元与该神经元之间的连接(欧式距离设为正无穷);还可以按照预设的阈值,将从与该神经元临近的多个神经元中选择欧式距离小于阈值的神经元,并断开其他神经元与该神经元之间的连接(欧式距离设为正无穷)。
具体的,步骤S404获取任意神经元与预设个数临近神经元之间的欧式距离,具体包括:
比对所述任意神经元与所述待裁剪神经元层中其他神经元的欧式距离,按照从小到大的顺序,选择预设个数的神经元作为所述任意神经元的临近神经元;获取所述任意神经元与所述临近神经元之间的欧式距离。
具体实施中,任意神经元与其所属的神经元层中的其他神经元之间的距离均能够计算得到,按照从小到大的顺序,从中选择预设个数的神经元作为该神经元的临近神经元,获取该临近神经元与该任意神经元之间的欧式距离。剩余的神经元与该神经元之间的欧式距离设为无穷。
作为一个具体示例,待裁剪神经元层中包括4个神经元y1-y4,计算该4个神经元的任意两个之间的欧式距离,得到待裁剪神经元层的神经元之间的欧式距离矩阵,如下表1所示。
表1
y1 y2 y3 y4
y1 0 1 0.1 1.5
y2 1 0 5.2 0.5
y3 0.1 5.2 0 0.2
y4 1.5 0.5 0.2 0
以欧式距离小于阈值1为准,保留临近神经元,将该表1中大于1的欧式距离修改为无穷,得到如下表2所示的保留两个临近神经元的欧式距离矩阵。
表2
y1 y2 y3 y4
y1 0 1 0.1
y2 1 0 0.5
y3 0.1 0 0.2
y4 0.5 0.2 0
根据该欧式距离修改,表征断开神经元y1与y4之间的连接、y2与y3之间的连接。
如下图5所示为本实施例中待裁剪神经元层中各个神经元的连接示意图,其中,y1与y2之间的欧式距离是1,y1与y3之间的欧式距离为0.1,y3与y4的欧式距离为0.2,y2与y4之间的欧式距离为0.5。
步骤S405:依据任意神经元与所述临近神经元的欧式距离,计算所述待裁剪神经元层中任意两个神经元之间的所有测地路径以及测地距离;
其中,所述测地路径包括所述任意两个神经元之间的直接连接路径以及间接连接路径;
其中,任意两个神经元之间的差异度采用测地距离表示,则需要确定该神经元层中任意两个神经元之间的所有测地路径与以及测地距离。
如图5中,该y1到y3的测地路径包括:y1→y3、y1→y2→y4→y3(测地距离1.3)
其中,y1→y3的测地距离是0.1;y1→y2→y4→y3的测地距离是1.7(1+0.5+0.2)。
该图5中,该神经层中各个神经元所有的测地路径以及测地距离如下:
y1到y2的测地路径包括:y1→y2(测地距离1)、y1→y3→y4→y2(测地距离0.8);
y1到y3的测地路径包括:y1→y3(测地距离0.1)、y1→y2→y4→y3(测地距离1.7);
y1到y4的测地路径包括:y1→y2→y4(测地距离1.5)、y1→y3→y4(测地距离0.3);
y2到y1的测地路径包括:y2→y1(测地距离1)、y2→y4→y3→y1(测地距离0.8);
y2到y3的测地路径包括:y2→y1→y3(测地距离1.1)、y2→y4→y3(测地距离0.7);
y2到y4的测地路径包括:y2→y4(测地距离0.5)、y2→y1→y3→y4(测地距离1.3);
y3到y1的测地路径包括:y3→y1(测地距离0.1)、y3→y4→y2→y1(测地距离1.7);
y3到y2的测地路径包括:y3→y1→y2(测地距离1.1)、y3→y4→y2(测地距离0.7);
y3到y4的测地路径包括:y3→y1→y2→y4(测地距离1.6)、y3→y4(测地距离0.2);
y4到y1的测地路径包括:y4→y2→y1(测地距离1.5)、y4→y3→y1(测地距离0.3);
y4到y2的测地路径包括:y4→y2(测地距离0.5)、y4→y3→y1→y2(测地距离1.3);
y4到y3的测地路径包括::y4→y2→y1→y3(测地距离1.6)、y4→y3(测地距离0.2)。
则具上述计算结果,筛选得到每两个神经元之间的最小测地距离,得到如下表3。
表3
y1 y2 y3 y4
y1 0 0.8 0.1 0.3
y2 0.8 0 0.7 0.5
y3 0.1 0.7 0 0.2
y4 0.3 0.5 0.2 0
步骤S406:将任意两个神经元之间最小测地距离作为所述任意两个神经元之间的距离;
其中,所述两个神经元之间的距离表征了所述两个神经之间的差异度。
根据上述步骤中计算得到的任意两个神经元之间的最小测地距离,作为该两个神经元之间的距离,该距离表征了高维空间中样本之间的距离(神经元之间的距离)准确度更高。
后续步骤中,选择与第一神经元差异度最小的第二神经元,具体该第二神经元是与该第一神经元的距离最小的神经元。
如表3所示的,如该y1为第一神经元,则第二神经元是与其测地距离最小的y3,第三神经元是与剩余神经元中与该第二神经元y3测地距离最小的y4。
步骤S407:选取与第一神经元差异度最小的第二神经元,删除所述第一神经元与第二神经元,选择待裁剪神经元层的剩余神经元中与所述第二神经元差异度最低的第三神经元删除,并统计删除的神经元数量,至删除神经元的数量满足预设待裁剪的神经元数量停止删除神经元。
其中,步骤S407与实施例1总的步骤S104一致,本实施例中不做赘述。
综上,本实施例提供的一种裁剪神经网络模型的方法中,该计算所述待裁剪神经元层中至少两个神经元之间的差异度,包括:依次计算所述待裁剪神经元层中任意两个神经元之间的欧式距离;获取任意神经元与预设个数临近神经元之间的欧式距离,断开所述待裁剪神经元层中除所述预设个数神经元之外的神经元与所述任意神经元之间连接;依据任意神经元与所述临近神经元的欧式距离,计算所述待裁剪神经元层中任意两个神经元之间的所有测地路径以及测地距离,所述测地路径包括所述任意两个神经元之间的直接连接路径以及间接连接路径;将任意两个神经元之间最小测地距离作为所述任意两个神经元之间的距离,所述两个神经元之间的距离表征了所述两个神经之间的差异度。本实施例中,通过任意两个神经元之间的欧式距离,计算任意神经元与其他神经元之间的测地距离,并基于测地距离确定该两个神经元之间的差异度,该测地距离表征了高维空间中样本之间的距离(神经元之间的距离),用于其表示神经元之间的差异度,准确度更高。
如图6所示的,为本申请提供的一种裁剪神经网络模型的方法实施例4的流程图,该方法包括以下步骤:
步骤S601:获取预设裁剪量;
需要说明的是,本实施例中的裁剪量是针对待裁剪神经元层而设置的。
具体实施中,可以根据实际情况预设神经元网络模型整体的裁剪量,或者针对各个神经元层可以对应设置单独的裁剪量,也可以各个神经元层平均分割该裁剪量,本申请中不对该各个神经元层的裁剪量区别做限制。
其中,该预设裁剪量可以是该待裁剪神经元层的比例或者百分比,如30%,1/5等。
具体实施中,为了简化神经网络模型,可以对裁剪的各个神经元层的裁剪量进行设置,也可以对其全部的裁剪量进行设置。
本实施例中,是以针对该确定的待裁剪神经元层的裁剪量进行的设置。需要说明的是,该30%以及1/5作为一个具体示例,本申请不对该取值以及裁剪量的设定方式做限制。
步骤S602:依据所述预设裁剪量,计算得到待裁剪神经元数量;
其中,根据该预设裁剪量计算得到该待裁剪神经元层中的待裁剪神经元数量。
例如,待裁剪量是1/5,而该待裁剪神经元层中具有100个神经元,则计算得到待裁剪神经元数量是100×(1/5)=20,则需要裁剪20个神经元。
相应的,后续步骤S606中,先删除该待裁剪神经元层中重要度最低的第一神经元,再删除与该第一神经元差异度最小的第二神经元,删除与该第二神经元差异度最小的第三神经元,以此类推,直至删除与第十九神经元差异度最小的第二十神经元,一共删除20个神经元,完成对该待裁剪神经元层的采集。
步骤S603:选择待裁剪神经元层,所述待裁剪神经元层中包含至少两个神经元;
步骤S604:从待裁剪神经元层中选择重要度最低的第一神经元;
步骤S605:计算所述待裁剪神经元层中至少两个神经元之间的差异度;
步骤S606:选取与第一神经元差异度最小的第二神经元,删除所述第一神经元与第二神经元,选择待裁剪神经元层的剩余神经元中与所述第二神经元差异度最低的第三神经元删除,并统计删除的神经元数量,至删除神经元的数量满足预设待裁剪的神经元数量停止删除神经元。
其中,步骤S603-606与实施例1中的步骤S101-104一致,本实施例中不做赘述。
综上,本实施例提供的一种裁剪神经网络模型的方法中,还包括:获取预设裁剪量;依据所述预设裁剪量,计算得到待裁剪神经元数量。通过预先设置裁剪量,并计算待裁剪神经元数量,实现为后续删除神经元提供依据。
与上述本申请提供的一种建立网络会议的方法实施例相对应的,本申请还提供了应用该建立网络会议的方法的电子设备实施例。
如图7所示的为本申请提供的一种电子设备实施例1的结构示意图,该电子设备包括以下结构:选择模块701、计算模块702和删除模块703;
其中,该选择模块701,用于选择待裁剪神经元层,所述待裁剪神经元层中包含至少两个神经元;从待裁剪神经元层中选择重要度最低的第一神经元;
其中,该计算模块702,用于计算所述待裁剪神经元层中至少两个神经元之间的差异度;
其中,该删除模块703,用于选取与第一神经元差异度最小的第二神经元,删除所述第一神经元与第二神经元,选择待裁剪神经元层的剩余神经元中与所述第二神经元差异度最低的第三神经元删除,并统计删除的神经元数量,至删除神经元的数量满足预设待裁剪的神经元数量停止删除神经元。
优选的,该选择模块,具体用于:
依次计算所述待裁剪神经元层中任一神经元与上一神经元层之间的连接度,所述连接度表征所述任一神经元在所述待裁剪神经元层中的重要度;
从计算得到的所述至少两个神经元的重要度,选择重要度数值最小的第一神经元。
优选的,所述选择模块计算所述待裁剪神经元层中第四神经元与上一神经元层之间的连接度,具体包括:
依据预设的权值序列,依次与上一神经元层中每个神经元的重要度相乘并取和,得到的数值为所述第四神经元与上一神经元层之间的连接度,所述权值序列中针对上一层每个神经元具有一个权值。
优选的,该计算模块,具体用于:
依次计算所述待裁剪神经元层中任意两个神经元之间的欧式距离;
获取任意神经元与预设个数临近神经元之间的欧式距离,断开所述待裁剪神经元层中除所述预设个数神经元之外的神经元与所述任意神经元之间连接;
依据任意神经元与所述临近神经元的欧式距离,计算所述待裁剪神经元层中任意两个神经元之间的所有测地路径以及测地距离,所述测地路径包括所述任意两个神经元之间的直接连接路径以及间接连接路径;
将任意两个神经元之间最小测地距离作为所述任意两个神经元之间的距离;
依次比对待裁剪神经元层中任意两个神经元之间的距离,得到距离最小的两个神经元。
优选的,所述计算模块获取任意神经元与预设个数临近神经元之间的欧式距离,具体包括:
比对所述任意神经元与所述待裁剪神经元层中其他神经元的欧式距离,按照从小到大的顺序,选择预设个数的神经元作为所述任意神经元的临近神经元;
获取所述任意神经元与所述临近神经元之间的欧式距离。
优选的,还包括:
预处理模块,用于获取预设裁剪量;依据所述预设裁剪量,计算得到待裁剪神经元数量。
综上,本实施例提供的一种电子设备中,基于神经元在待裁剪神经元层中的重要度最低,确定第一神经元为待裁剪的神经元,基于与该第一神经元差异度最小,确定第二神经元为待裁剪的神经元,以此类推,确定与上一待裁剪的神经元差异度最低的神经元为新的待裁剪的神经元,直至裁剪的神经元数量满足预设待裁剪的神经元数量为止。由于裁剪的神经元为重要度最低,以及与该重要度最低的神经元差异度最低的神经元,不会对神经网络模型的准确度产生较大的影响,在保证了神经网络模型数据处理准确度的前提下,完成率了对于神经网络模型的压缩裁剪,方便其部署在边缘设备上。
如图8所示的为本申请提供的一种电子设备实施例2的结构示意图,该电子设备包括以下结构:处理器801和存储器802;
其中,该处理器801,用于选择待裁剪神经元层,所述待裁剪神经元层中包含至少两个神经元;从待裁剪神经元层中选择重要度最低的第一神经元;计算所述待裁剪神经元层中至少两个神经元之间的差异度;选取与第一神经元差异度最小的第二神经元,删除所述第一神经元与第二神经元,选择待裁剪神经元层的剩余神经元中与所述第二神经元差异度最低的第三神经元删除,并统计删除的神经元数量,至删除神经元的数量满足预设待裁剪的神经元数量停止删除神经元;
其中,该存储器802,用于存储预设待裁剪的神经元数量。
优选的,所述处理器从待裁剪神经元层中选择重要度最低的第一神经元,包括:
依次计算所述待裁剪神经元层中任一神经元与上一神经元层之间的连接度,所述连接度表征所述任一神经元在所述待裁剪神经元层中的重要度;
从计算得到的所述至少两个神经元的重要度,选择重要度数值最小的第一神经元。
优选的,所述处理器计算所述待裁剪神经元层中第四神经元与上一神经元层之间的连接度,包括:
依据预设的权值序列,依次与上一神经元层中每个神经元的重要度相乘并取和,得到的数值为所述第四神经元与上一神经元层之间的连接度,所述权值序列中针对上一层每个神经元具有一个权值。
优选的,所述处理器计算所述待裁剪神经元层中至少两个神经元之间的差异度,包括:
依次计算所述待裁剪神经元层中任意两个神经元之间的欧式距离;
获取任意神经元与预设个数临近神经元之间的欧式距离,断开所述待裁剪神经元层中除所述预设个数神经元之外的神经元与所述任意神经元之间连接;
依据任意神经元与所述临近神经元的欧式距离,计算所述待裁剪神经元层中任意两个神经元之间的所有测地路径以及测地距离,所述测地路径包括所述任意两个神经元之间的直接连接路径以及间接连接路径;
将任意两个神经元之间最小测地距离作为所述任意两个神经元之间的距离,所述两个神经元之间的距离表征了所述两个神经之间的差异度。
优选的,所述处理器获取任意神经元与预设个数临近神经元之间的欧式距离,具体包括:
比对所述任意神经元与所述待裁剪神经元层中其他神经元的欧式距离,按照从小到大的顺序,选择预设个数的神经元作为所述任意神经元的临近神经元;
获取所述任意神经元与所述临近神经元之间的欧式距离。
优选的,所述处理器,还用于获取预设裁剪量;
依据所述预设裁剪量,计算得到待裁剪神经元数量。
具体实施中,该处理器采用具有信息处理能力的结构芯片,如CPU(centralprocessing unit,中央处理器);该存储器可以采用具有信息存储能力的存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)。
综上,本实施例提供的一种电子设备中,基于神经元在待裁剪神经元层中的重要度最低,确定第一神经元为待裁剪的神经元,基于与该第一神经元差异度最小,确定第二神经元为待裁剪的神经元,以此类推,确定与上一待裁剪的神经元差异度最低的神经元为新的待裁剪的神经元,直至裁剪的神经元数量满足预设待裁剪的神经元数量为止。由于裁剪的神经元为重要度最低,以及与该重要度最低的神经元差异度最低的神经元,不会对神经网络模型的准确度产生较大的影响,在保证了神经网络模型数据处理准确度的前提下,完成率了对于神经网络模型的压缩裁剪,方便其部署在边缘设备上。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例提供的装置而言,由于其与实施例提供的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
对所提供的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所提供的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种裁剪神经网络模型的方法,包括:
选择待裁剪神经元层,所述待裁剪神经元层中包含至少两个神经元;
从待裁剪神经元层中选择重要度最低的第一神经元;
计算所述待裁剪神经元层中至少两个神经元之间的差异度;
选取与第一神经元差异度最小的第二神经元,删除所述第一神经元与第二神经元,选择待裁剪神经元层的剩余神经元中与所述第二神经元差异度最低的第三神经元删除,并统计删除的神经元数量,至删除神经元的数量满足预设待裁剪的神经元数量停止删除神经元。
2.根据权利要求1所述的方法,所述从待裁剪神经元层中选择重要度最低的第一神经元,包括:
依次计算所述待裁剪神经元层中任一神经元与上一神经元层之间的连接度,所述连接度表征所述任一神经元在所述待裁剪神经元层中的重要度;
从计算得到的所述至少两个神经元的重要度,选择重要度数值最小的第一神经元。
3.根据权利要求2所述的方法,计算所述待裁剪神经元层中第四神经元与上一神经元层之间的连接度,包括:
依据预设的权值序列,依次与上一神经元层中每个神经元的重要度相乘并取和,得到的数值为所述第四神经元与上一神经元层之间的连接度,所述权值序列中针对上一层每个神经元具有一个权值。
4.根据权利要求1所述的方法,所述计算所述待裁剪神经元层中至少两个神经元之间的差异度,包括:
依次计算所述待裁剪神经元层中任意两个神经元之间的欧式距离;
获取任意神经元与预设个数临近神经元之间的欧式距离,断开所述待裁剪神经元层中除所述预设个数神经元之外的神经元与所述任意神经元之间连接;
依据任意神经元与所述临近神经元的欧式距离,计算所述待裁剪神经元层中任意两个神经元之间的所有测地路径以及测地距离,所述测地路径包括所述任意两个神经元之间的直接连接路径以及间接连接路径;
将任意两个神经元之间最小测地距离作为所述任意两个神经元之间的距离,所述两个神经元之间的距离表征了所述两个神经之间的差异度。
5.根据权利要求4所述的方法,所述获取任意神经元与预设个数临近神经元之间的欧式距离,具体包括:
比对所述任意神经元与所述待裁剪神经元层中其他神经元的欧式距离,按照从小到大的顺序,选择预设个数的神经元作为所述任意神经元的临近神经元;
获取所述任意神经元与所述临近神经元之间的欧式距离。
6.根据权利要求1所述的方法,还包括:
获取预设裁剪量;
依据所述预设裁剪量,计算得到待裁剪神经元数量。
7.一种电子设备,包括:
选择模块,用于选择待裁剪神经元层,所述待裁剪神经元层中包含至少两个神经元;从待裁剪神经元层中选择重要度最低的第一神经元;
计算模块,用于计算所述待裁剪神经元层中至少两个神经元之间的差异度;
删除模块,用于选取与第一神经元差异度最小的第二神经元,删除所述第一神经元与第二神经元,选择待裁剪神经元层的剩余神经元中与所述第二神经元差异度最低的第三神经元删除,并统计删除的神经元数量,至删除神经元的数量满足预设待裁剪的神经元数量停止删除神经元。
8.根据权利要求7所述的电子设备,选择模块,具体用于:
依次计算所述待裁剪神经元层中任一神经元与上一神经元层之间的连接度,所述连接度表征所述任一神经元在所述待裁剪神经元层中的重要度;
从计算得到的所述至少两个神经元的重要度,选择重要度数值最小的第一神经元。
9.根据权利要求7所述的电子设备,计算模块,具体用于:
依次计算所述待裁剪神经元层中任意两个神经元之间的欧式距离;
获取任意神经元与预设个数临近神经元之间的欧式距离,断开所述待裁剪神经元层中除所述预设个数神经元之外的神经元与所述任意神经元之间连接;
依据任意神经元与所述临近神经元的欧式距离,计算所述待裁剪神经元层中任意两个神经元之间的所有测地路径以及测地距离,所述测地路径包括所述任意两个神经元之间的直接连接路径以及间接连接路径;
将任意两个神经元之间最小测地距离作为所述任意两个神经元之间的距离,所述两个神经元之间的距离表征了所述两个神经之间的差异度。
10.一种电子设备,包括:
处理器,用于选择待裁剪神经元层,所述待裁剪神经元层中包含至少两个神经元;从待裁剪神经元层中选择重要度最低的第一神经元;计算所述待裁剪神经元层中至少两个神经元之间的差异度;选取与第一神经元差异度最小的第二神经元,删除所述第一神经元与第二神经元,选择待裁剪神经元层的剩余神经元中与所述第二神经元差异度最低的第三神经元删除,并统计删除的神经元数量,至删除神经元的数量满足预设待裁剪的神经元数量停止删除神经元;
存储器,用于存储预设待裁剪的神经元数量。
CN201910791699.0A 2019-08-26 2019-08-26 一种裁剪神经网络模型的方法和电子设备 Active CN110472736B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910791699.0A CN110472736B (zh) 2019-08-26 2019-08-26 一种裁剪神经网络模型的方法和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910791699.0A CN110472736B (zh) 2019-08-26 2019-08-26 一种裁剪神经网络模型的方法和电子设备

Publications (2)

Publication Number Publication Date
CN110472736A true CN110472736A (zh) 2019-11-19
CN110472736B CN110472736B (zh) 2022-04-22

Family

ID=68512181

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910791699.0A Active CN110472736B (zh) 2019-08-26 2019-08-26 一种裁剪神经网络模型的方法和电子设备

Country Status (1)

Country Link
CN (1) CN110472736B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112418393A (zh) * 2020-10-23 2021-02-26 联想(北京)有限公司 一种模型裁剪方法及设备
WO2021159714A1 (zh) * 2020-02-12 2021-08-19 华为技术有限公司 一种数据处理方法及相关设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103679267A (zh) * 2013-12-05 2014-03-26 河海大学 基于无标记样本的rbf神经网络构建方法及其装置
CN106548234A (zh) * 2016-11-17 2017-03-29 北京图森互联科技有限责任公司 一种神经网络剪枝方法及装置
CN107784360A (zh) * 2017-10-27 2018-03-09 江苏环实科技有限公司 步进式卷积神经网络剪枝压缩方法
CN107977703A (zh) * 2016-10-21 2018-05-01 辉达公司 用于修剪神经网络以实现资源有效推理的系统和方法
CN108154232A (zh) * 2018-01-23 2018-06-12 厦门中控智慧信息技术有限公司 人工神经网络的剪枝方法、装置、设备及可读存储介质
US20190057308A1 (en) * 2017-08-16 2019-02-21 SK Hynix Inc. Method and device for pruning a neural network
CN110097187A (zh) * 2019-04-29 2019-08-06 河海大学 一种基于激活-熵权重剪枝的cnn模型压缩方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103679267A (zh) * 2013-12-05 2014-03-26 河海大学 基于无标记样本的rbf神经网络构建方法及其装置
CN107977703A (zh) * 2016-10-21 2018-05-01 辉达公司 用于修剪神经网络以实现资源有效推理的系统和方法
CN106548234A (zh) * 2016-11-17 2017-03-29 北京图森互联科技有限责任公司 一种神经网络剪枝方法及装置
US20190057308A1 (en) * 2017-08-16 2019-02-21 SK Hynix Inc. Method and device for pruning a neural network
CN107784360A (zh) * 2017-10-27 2018-03-09 江苏环实科技有限公司 步进式卷积神经网络剪枝压缩方法
CN108154232A (zh) * 2018-01-23 2018-06-12 厦门中控智慧信息技术有限公司 人工神经网络的剪枝方法、装置、设备及可读存储介质
CN110097187A (zh) * 2019-04-29 2019-08-06 河海大学 一种基于激活-熵权重剪枝的cnn模型压缩方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021159714A1 (zh) * 2020-02-12 2021-08-19 华为技术有限公司 一种数据处理方法及相关设备
CN112418393A (zh) * 2020-10-23 2021-02-26 联想(北京)有限公司 一种模型裁剪方法及设备

Also Published As

Publication number Publication date
CN110472736B (zh) 2022-04-22

Similar Documents

Publication Publication Date Title
CN107818509A (zh) 业务数据校验方法、装置、存储介质及电子设备
CN110472736A (zh) 一种裁剪神经网络模型的方法和电子设备
CN110175789A (zh) 基于模糊层次和critic法的配电网诊断评估指标权重赋权方法
CN110245145A (zh) 关系型数据库到Hadoop数据库的结构同步方法和装置
CN104484600B (zh) 一种基于改进密度聚类的入侵检测方法及装置
CN103516912A (zh) 一种移动终端定位省电方法
CN105048483A (zh) 含光伏配电网的储能容量配置方法与系统
CN106713034A (zh) 微信公众号制定用户群活跃度监测方法及装置
CN106908752A (zh) 一种基于特征分组的电能计量异常诊断方法及系统
CN106325756A (zh) 一种数据存储、数据计算方法和设备
CN108305163A (zh) 基于特征库的信用预警方法及系统
CN103366062A (zh) 基于bbo算法和电网生存性的核心骨干网架构建方法
CN109840353A (zh) 锂离子电池双因素不一致性预测方法及装置
CN105701239A (zh) 账户信息共享方法及装置
CN109754135A (zh) 信用行为数据处理方法、装置、存储介质和计算机设备
CN105790262B (zh) 一种基于枚举法的eens等值计算的方法及系统
CN110147941A (zh) 考核内容获取方法、员工评估方法及装置
CN106451434B (zh) 一种基于神经网络算法的配电网电压确定方法及装置
CN104077361B (zh) 一种用于大数据的排序方法及系统
CN113378231A (zh) 一种大数据应用开放平台的隐私计算方法及应用
CN112994078B (zh) 一种面向高密度分布式发电的集群分区划分方法
CN108564261A (zh) 基于工作票的电力信息确定方法、装置和计算机设备
CN106874286A (zh) 一种筛选用户特征的方法及装置
CN106204252A (zh) 内部债权债务余额识别、采集及核对的方法和系统
CN108268899A (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