CN111340216A - 网络融合方法、网络融合装置、电子设备及存储介质 - Google Patents
网络融合方法、网络融合装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111340216A CN111340216A CN202010113285.5A CN202010113285A CN111340216A CN 111340216 A CN111340216 A CN 111340216A CN 202010113285 A CN202010113285 A CN 202010113285A CN 111340216 A CN111340216 A CN 111340216A
- Authority
- CN
- China
- Prior art keywords
- network layer
- network
- layer
- output result
- quantization parameter
- 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.)
- Pending
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
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
Abstract
本申请实施例公开了一种网络融合方法、网络融合装置、电子设备及存储介质,该网络融合方法包括:确定神经网络中的目标网络层对,其中,所述目标网络层对中在前的第一网络层与所述目标网络层对中在后的第二网络层连接;在所述目标网络层对满足条件的情况下,利用所述第二网络层的量化参数,更改所述第一网络层的量化参数,得到更改后的第一网络层;基于所述更改后的第一网络层调整所述神经网络的网络层连接关系,得到新的神经网络;使用所述新的神经网络进行运算,得到运算结果。
Description
技术领域
本申请涉及人工智能技术领域,具体涉及一种网络融合方法及相关产品。
背景技术
随着深度学习的不断发展,神经网络设计日趋复杂,网络层数也逐渐增加,人工智能应用对计算力的需求也在不断提高。为了满足应用侧对神经网络运行的实时性需求,除了芯片硬件上的更新换代之外,各类针对网络运行时间的算法优化、计算优化手段也被广泛使用。例如,层间融合(Layer Fusion)是简化神经网络计算过程的一种常用手段。层间融合是指将神经网络中某些层之间的计算过程进行融合,从而降低访存需求,达到提升运行性能的目的。
随着神经网络的深度加深,即使对神经网络中的某些层进行了层间融合,但是,在网络运算过程中,仍然需要很大的访存开销,导致运算速度仍然很慢。
发明内容
本申请实施例提供了一种网络融合方法、网络融合装置、电子设备及存储介质。降低使用神经网络运算时的访存开销,提高运算速度。
第一方面,本申请实施例提供一种网络融合方法,所述方法包括:
确定神经网络中的目标网络层对,其中,所述目标网络层对中在前的第一网络层与所述目标网络层对中在后的第二网络层连接;
在所述目标网络层对满足条件的情况下,利用所述第二网络层的量化参数,更改所述第一网络层的量化参数,得到更改后的第一网络层;
基于所述更改后的第一网络层调整所述神经网络的网络层连接关系,得到新的神经网络;
使用所述新的神经网络进行运算,得到运算结果。
在一种可能的实施方式中,所述利用所述第二网络层的量化参数,更改所述第一网络层的量化参数,得到更改后的第一网络层,包括:
获取所述第一网络层的输出结果和所述第二网络层的输出结果;
对所述第二网络层的输出结果进行量化,得到所述第二网络层的量化参数;
将所述第二网络层的量化参数赋值给所述第一网络层,并使用所述第二网络层的量化参数对所述第一网络层的输出结果进行重量化,得到所述更改后的第一网络层。
在一种可能的实施方式中,所述方法还包括:
获取对所述第一网络层的输出结果进行重量化时的第一处理方式;
获取对所述第二网络层的输入数据进行运算时的第二处理方式;
在所述第一处理方式与所述第二处理方式一致的情况下,确定所述目标网络层对满足条件。
在一种可能的实施方式中,所述第一处理方式包括:
在对所述第一网络层的输出结果进行重量化时,将所述输出结果中大于第一阈值的值按照所述第一阈值输出,将小于第二阈值的值按照所述第二阈值输出。
在一种可能的实施方式中,所述第一阈值为对所述第一网络层的输出结果进行重量化时的精度最高值,所述第二阈值为对所述第一网络层的输出结果进行重量化时的精度最低值。
在一种可能的实施方式中,所述基于所述更改后的第一网络层调整所述神经网络的网络层连接关系,得到新的神经网络,包括:
查找所述神经网络中与所述第二网络层连接的各网络层;
将所述各网络层分别与所述第二网络层之间的连接,替换为,所述各网络层分别与所述更改后的第一网络层之间的连接,得到所述新的神经网络。
在一种可能的实施方式中,所述第一网络层包括卷积层,所述第二网络层包括线性整流ReLU层。
第二方面,本申请实施例提供一种网络融合装置,包括:
确定单元,用于确定神经网络中的目标网络层对,其中,所述目标网络层对中在前的第一网络层与所述目标网络层对中在后的第二网络层连接;
更改单元,用于在所述目标网络层对满足条件的情况下,利用所述第二网络层的量化参数,更改所述第一网络层的量化参数,得到更改后的第一网络层;
所述更改单元,还用于基于所述更改后的第一网络层调整所述神经网络的网络层连接关系,得到新的神经网络;
运算单元,用于使用所述新的神经网络进行运算,得到运算结果。
在一种可能的实施方式中,在利用所述第二网络层的量化参数,更改所述第一网络层的量化参数,得到更改后的第一网络层方面,所述更改单元,具体用于:
获取所述第一网络层的输出结果和所述第二网络层的输出结果;
对所述第二网络层的输出结果进行量化,得到所述第二网络层的量化参数;
将所述第二网络层的量化参数赋值给所述第一网络层,并使用所述第二网络层的量化参数对所述第一网络层的输出结果进行重量化,得到所述更改后的第一网络层。
在一种可能的实施方式中,所述确定单元,还用于获取对所述第一网络层的输出结果进行重量化时的第一处理方式;
获取对所述第二网络层的输入数据进行运算时的第二处理方式;
在所述第一处理方式与所述第二处理方式一致的情况下,确定所述目标网络层对满足条件。
在一种可能的实施方式中,所述第一处理方式包括:
在对所述第一网络层的输出结果进行重量化时,将所述输出结果中大于第一阈值的值按照所述第一阈值输出,将小于第二阈值的值按照所述第二阈值输出。
在一种可能的实施方式中,所述第一阈值为对所述第一网络层的输出结果进行重量化时的精度最高值,所述第二阈值为对所述第一网络层的输出结果进行重量化时的精度最低值。
在一种可能的实施方式中,在基于所述更改后的第一网络层调整所述神经网络的网络层连接关系,得到新的神经网络方面,所述更改单元,具体用于:
查找所述神经网络中与所述第二网络层连接的各网络层;
将所述各网络层分别与所述第二网络层之间的连接,替换为,所述各网络层分别与所述更改后的第一网络层之间的连接,得到所述新的神经网络。
在一种可能的实施方式中,所述第一网络层包括卷积层,所述第二网络层包括线性整流ReLU层。
第三方面,本申请实施例提供一种电子设备,包括处理器、存储器、通信接口以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行,所述程序包括用于执行如第一方面所述的方法中的步骤的指令。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序使得计算机执行如第一方面所述的方法。
第五方面,本申请实施例提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机可操作来使计算机执行如第一方面所述的方法。
实施本申请实施例,具有如下有益效果:
可以看出,在本申请实施例中,通过更改第一网络层的量化参数以及调整神经网络的层连接关系,得到新的神经网络,在使用新的网络进行运算时,仅使用更改后的第一网络层进行运算,无需使用第二网络层进行运算,即可得到该目标网络层的输出结果;因此,无需对该第二网络层执行数据访存、指令访存以及运算等过程,提高了神经网络的运算速度。由于不需要使用第二网络层进行运算,降低了神经网络的网络层数(深度),减少了量化过程,进而减少了量化时的精度损失。另外,只更改第一网络层的量化参数,无需重新编写与该更改后的第一网络层对应的融合代码,提高网络融合的便捷性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种网络融合方法的流程示意图;
图2为本申请实施例提供的一种使用新的神经网络进行运算的示意图;
图3为本申请实施例提供的一种电子设备的结构示意图;
图4为本申请实施例提供的一种网络融合装置的功能单元组成框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结果或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了便于理解本申请实施例,首先对本申请涉及到的相关技术进行介绍。
量化(Quantization),将浮点类型数据线性映射到定点类型数据上,并将浮点数的计算过程变换到定点数运算。由于定点数(目前一般使用8位或16位)相比于32位的浮点数据所占用的内存更小,且对定点数据运算的硬件单元更丰富,功耗也更低,故量化成为加速神经网络计算的重要手段之一。
非对称量化,指映射后的浮点数零不一定是定点数中的零。举例来说,如将32位的浮点数非对称量化为无符号的8位定点数,则先确定该32位的浮点数中的最大值max和最小值min,将该max和min的数据范围均分为256段;然后,将256个数据段分别映射到0~255(无符号的8位定点数的取值范围1)这256个定点数中,并将32位的浮点数中的零所对应的定点数作为量化零zero。因此,32位的浮点数中的零对应的定点数并不一定是定点数中的零。
输入张量(tensor):各个网络层的输入数据,例如,卷积层Convolution或者线性整流(Rectified Linear Unit,ReLU)层的输入数据,该输入tensor来自上一层的输出tensor。需要说明,若该网络层为神经网络的第一个网络层,则该网络层的输入张量(tensor)为该神经网络的输入数据;
输出tensor:各个网络层的输出结果,且作为与各个网络层连接的下一层的输入tensor;
层参数:每个网络层计算时所需要的参数,例如卷积层的群卷积group、步长stride、填充padding等信息。本申请也将层参数称为网络参数。
另外,在一些可能的实施方式中,对于每一个tensor(输出tensor或输出tensor),该tensor除了包含数据之外,还可以包括表示该数据在浮点表示下和量化定点表示下的映射关系,也即该数据对应的量化参数。该量化参数包括量化零zero和步长step,或者浮点数据的最大值max和最小值max,两者可以互相推导得出。
在一些可能的实施方式中,若神经网络采用量化(对称量化和非对称量化)的方式进行运算,在使用该神经网络的每个网络层进行运算时,先根据每个网络层的第一量化参数(即,输入tensor中包含的量化参数),对该网络层的输入数据进行量化,得到新的输入数据;然后,按照该网络层的网络参数(即,上述层参数)与该新的输入数据进行运算,得到该网络层的输出结果;最后,根据第二量化参数(即输出tensor中包含的量化参数),对该输出结果重量化得到该网络层最终的输出结果,将该最终的输出结果缓存到该网络层的输出tensor中,并将该输出tensor作为下一层的输入tensor。其中,该第一量化参数和第二量化参数可以相同,也可以不同,本申请对此不做限定。
参阅图1,图1为本申请实施例提供的一种网络融合方法的流程示意图,该方法应用于网络融合装置。
其中,该网络融合装置包括但不限于智能手机、平板电脑、掌上电脑、笔记本电脑、移动互联网设备MID(Mobile Internet Devices,MID)、穿戴式设备、自动驾驶车辆或智能机器人等。
当然,在实际应用中该网络融合装置还可以是服务器,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务以及大数据和人工智能平台等基础云计算服务的云服务器,等等。
本申请实施例的方法包括如下步骤:
101:确定神经网络中的目标网络层对。
其中,该目标网络层对为该神经网络中两个相邻的网络层,本申请将该两个相邻的网络层称为第一网络层和第二网络层,且该第一网络层位于该第二网络层之前。
示例性的,该两个相邻的网络层为单连接结构,即该第一网络层的后面仅连接一个网络层(该第二网络层),该第二网络层的前面也仅连接一个网络层(该第一网络层)。
可选的,该第一网络层可以为卷积层,该第二网络层可以为ReLU激活层
需要说明的是,该神经网络中的目标网络层对可以为一个或多个,本申请中以一个目标网络层对为例做具体说明,其它目标网络层对的网络融合过程可参照该目标网络层对,不再叙述。
示例性的,该神经网络中每个网络层的量化方式例如可以采用非对称量化的方式。
102:在所述目标网络层对满足条件的情况下,利用所述第二网络层的量化参数,更改所述第一网络层的量化参数,得到更改后的第一网络层。
在一些可能的实施方式中,在对该第一网络层的输出结果进行重量化时的第一处理方式与对第二网络层的输入数据进行运算时的第二处理方式一致的情况下,可以确定该目标网络层对满足条件。
其中,该第一处理方式即为对第一网络层的输出结果进行重量化时的量化方式,第二处理方式即为使用第二网络层的网络参数对第二网络层的输入数据进行运算的方式。示例性的,该第一处理方式可以为在对第一网络层的输出结果进行重量化时,将该输出结果中大于第一阈值的值按照该第一阈值输出,将小于第二阈值的值按照所述第二阈值输出。示例性的,第一阈值为对该第一网络层的输出结果进行重量化时的精度最高值,第二阈值为对该第一网络层的输出结果进行重量化时的精度最低值。
在一些可能的实施方式中,上述第二网络层的量化参数可以为对第二网络层的输出数据进行重量化时的量化参数,上述第一网络层的量化参数可以为对第一网络层的输出数据进行重量化时的量化参数。上述利用所述第二网络层的量化参数,更改所述第一网络层的量化参数,可以为,将该第一网络层进行重量化时的量化参数更改为该第二网络层进行重量化时的量化参数,进而得到更改后的第一网络层。
在一些可能的实施方式中,获取该第一网络层的输出结果和第二网络层的输出结果,对该第二网络层的输出结果进行重量化,得到该第二网络层的量化参数;然后,将该第二网络层的量化参数(即,重量化时的量化参数)赋值給该第一网络层,并使用该第二网络层的量化参数对第一网络层的输出结果进行重量化,进而得到更改后的第一网络层。
103:基于所述更改后的第一网络层调整所述神经网络的网络层连接关系,得到新的神经网络。
在一些可能的实施方式中,可以查找该神经网络中与该第二网络层连接的各网络层,将该各网络层分别与该第二网络层的连接替换为与该更改后的第一网络层之间的连接,得到新的神经网络。调整连接关系后得到的新的神经网络,相当于从该神经网络中删除第二网络层,将与该第二网络层直接连接的各网络层更改为与该第一网络层直接连接。
从代码编写角度来说,直接将该更改后的第一网络层的输出结果(出参)作为与该第二网络层连接的各个网络层的输入数据(入参),可以实现上述网络层连接关系的调整。因此,在代码实现上,只需要改变网络层出参和入参之间的的赋值方式,无需重新编写与该改后的第一网络层对应的代码,提高了网络融合的便捷性。
104:使用所述新的神经网络进行运算,得到运算结果。
将该神经网络中所有的目标网络对进行上述的融合过程,得到新的神经网络,并使用该新的神经网络进行运算,得到该神经网络的运算结果。
可以看出,在本申请实施例中,通过更改神经网络的目标网络层对中的第一网络层的量化参数,并调整神经网络的层连接关系,进而得到新的神经网络,并且在使用新的网络进行运算时,仅使用更改后的第一网络层进行运算,无需使用第二网络层进行运算,即可得到该目标网络层的输出结果;因此,无需对该第二网络层执行数据访存、指令访存以及运算等过程,提高了神经网络的运算速度。由于不需要使用第二网络层进行运算,降低了神经网络的网络层数(深度),从而减少了量化过程,进而减少了量化时的精度损失。另外,本申请中只是更改了第一网络层的量化参数,未更改第一网络层的结构,从而在实现网络融合时,无需重新编写与该更改后的第一网络层对应的代码,进而提高网络融合的便捷性。
在一些可能的实施方式中,该第一网络层可以为卷积层,第二网络层可以为ReLU层。下面详细叙述将卷积层和ReLU层进行融合的过程。
若第一网络层为卷积层,在对该第一网络层的输出结果进行重量化时,还可以对该第一网络层的输出结果进行饱和操作,饱和操作具体可以为:将重量化后中大于第一阈值的数据全部赋值为该第一阈值,将小于第二阈值的数据全部赋值为该第二阈值。
举例来说,若第一网络层的输入数据为uint8类型的定点数据,且需要将输入数据量化为int32类型的新的定点数据。因此,在得到第一网络层的输出结果后,可以将得到的输出结果(int32类型)重量化为uint8类型的定点数据,在对输出结果进行重量化时,由于该uint8类型的定点数据取值范围为0~255,而int32类型的定点数据取值范围为-2147483647~2147483647,故在将输出结果重量化为uint8类型的定点数据时,则存在大于255或小于0的数据。为了保证能将输出结果成功重量化回uint8类型的定点数据(以减少存储空间),可以采用饱和操作,将该输出结果中大于255的值全部重量化为255,小于0的值全部重量化为0。对于位于0和255之间的值,则按照第二量化参数进行重量化。
在将该第一网络层的输出结果(输出tensor)作为输入数据输入到该ReLU层后,则按照该ReLU层的输入tensor包含的量化参数对该ReLU层的输入数据进行量化,并对量化后的数据进行ReLU操作,并将ReLU操作后的输出结果进行重量化,得到该ReLU层的输出结果。
若该第一网络层对输出结果进行重量化时采用了饱和操作,则将该第一网络层的输出tensor(即ReLU层的输入tensor)取值范围限定在了整数取值范围内。也就是说,第一网络层对输出结果进行重量化时的处理方式,与该ReLU层对输入数据的处理方式一致,导致了该ReLU层中的ReLU操作是无效的,即该ReLU层实质上只进行了一个量化过程即可得到该ReLU层的输出结果;因此,可将第一网络层和第二网络层进行融合,将该第二网络层重量化时的量化参数赋值给第一网络层,并使用该第二网络层重量化时的量化参数对该第一网络层的输出结果进行重量化,得到的输出结果与未融合时经过该第一网络层以及第二网络层之后得到的输出结果相同。
因此,若第一网络层为卷积层,第二网络层为ReLU层,且第一卷积层对输出结果进行量化时采用了饱和操作,则该第一网络层的第一处理方式与第二网络层的处理方式一致,可将第一网络层与第二网络进行融合。
此外,通过如下公式进一步说明上述将卷积层和ReLU层进行融合的原理。
卷积层的运算过程:
假设A,B分别表示卷积层的输入数据,O表示卷积层的输出结果;Za,Zb分别表示输入数据A,B的量化零zero point,Zo表示输出结果O的量化零zero;Sa,Sb分别表示输入数据A,B的量化步长step,So表示输出结果O的step;因此,卷积层的运算过程可通过公式(1)表示:
(O-Zo)*So=SUM((A-Za)*Sa*(B-Zb)*Sb)
=Sa*Sb*SUM((A-Za)*(B-Zb)) (1);
ReLU层的运算过程:
假设R表示ReLU层的输出结果,Zr表示输出结果R的zero,Sr表示输出结果R的step,输入数据为卷积层的输出结果,即(O-Zo)*So,因此,ReLU层的运算过程可通过公式(2)表示:
R=(O-Zo)*So/Sr,O-Zo>0;
R=0,O-Zo<=0 (2)
进一步地,对该卷积层的运算和ReLU层的运算过程进行叠加,即将卷积层的计算结果中的SUM((A-Za)*(B-Zb))记为sum,则利用公式(1)中的Sa*Sb*SUM((A-Za)*(B-Zb))替换公式(2)中的(O-Zo)*So,则可得到公式(3):
R=Sa*Sb/Sr*sum,O-Zo>0
R=0,O-Zo<=0; (3)
由于step都是正数,故Sa*Sb/So>0,因此根据式(1)的变形(O-Zo)=Sa*Sb/So*sum确定(O-Zo)和sum同正负。
因此,公式(3)等价于:
R=Sa*Sb/Sr*sum,sum>0
R=0,sum<=0;
也即R=saturate(Sa*Sb/Sr*sum),即(R-Zr)saturate(Sr*((O-Zo)*So)),saturate为饱和操作对应的饱和函数;
可以看出,若卷积层的饱和函数中的参数为该ReLU层的量化参数,则利用ReLU层对卷积层的输出结果进行运算后得到的输出结果,相当于使用饱和函数对卷积层的输出结果进行处理,得到的输出结果。由于卷积层在重量化时本身就会使用到饱和参数,故可将ReLU层的量化参数赋值给卷积层,得到更改后的卷积层,仅使用更改后的卷积层进行运算,即可实现更改前的卷积层和ReLU对应的整个运算过程。
下面结合图2说明本申请进行网络融合后的运算过程。图2为本申请实施例提供的一种使用新的神经网络进行运算的示意图。
如图2所示,在融合前卷积层进行两次量化,即基于输入tensor中的量化参数对输入数据进行量化,基于输出tensor中的量化参数对卷积运算得到的结果进行重量化;然后,将重量化后的结果作为输入数据输出至ReLU层;然后,基于ReLU层的输入tensor中的量化参数对输入数据进行量化,并基于输出tensor中的量化参数对ReLU操作得到的结果进行重量化,将重量化的结果作为输入数据输出给其他网络层。因此,融合前需要经过卷积层和ReLU需要进行四次量化过程。
可以看出,将ReLU层的输出tensor中的量化参数赋值给卷积层,得到融合后的卷积层,并取消ReLU层的运算过程;然后,使用该融合后的卷积层进行运算,则执行量化过程时,相当于仅使用融合后的卷积层的量化参数执行量化过程(即执行了两次量化过程),进而减少了量化过程,降低了量化过程的精度损失。由于取消ReLU层的运算过程,进而无需对ReLU层执行数据访存、指令访存以及运算等过程,进而提高了神经网络的运算速度。
参阅图3,图3为本申请实施例提供的一种电子设备300的结构示意图。如图3所示,电子设备300包括处理器、存储器、通信接口以及一个或多个程序,上述一个或多个程序被存储在上述存储器中,并且被配置由上述处理器执行,上述程序包括用于执行以下步骤的指令:
确定神经网络中的目标网络层对,其中,所述目标网络层对中在前的第一网络层与所述目标网络层对中在后的第二网络层连接;
在所述目标网络层对满足条件的情况下,利用所述第二网络层的量化参数,更改所述第一网络层的量化参数,得到更改后的第一网络层;
基于所述更改后的第一网络层调整所述神经网络的网络层连接关系,得到新的神经网络;
使用所述新的神经网络进行运算,得到运算结果。
在一种可能的实施方式中,在利用所述第二网络层的量化参数,更改所述第一网络层的量化参数,得到更改后的第一网络层方面,上述程序具体用于执行以下步骤的指令:
获取所述第一网络层的输出结果和所述第二网络层的输出结果;
对所述第二网络层的输出结果进行量化,得到所述第二网络层的量化参数;
将所述第二网络层的量化参数赋值给所述第一网络层,并使用所述第二网络层的量化参数对所述第一网络层的输出结果进行重量化,得到所述更改后的第一网络层。
在一种可能的实施方式中,上述程序还用于执行以下步骤的指令:
获取对所述第一网络层的输出结果进行重量化时的第一处理方式;
获取对所述第二网络层的输入数据进行运算时的第二处理方式;
在所述第一处理方式与所述第二处理方式一致的情况下,确定所述目标网络层对满足条件。
在一种可能的实施方式中,所述第一处理方式包括:
在对所述第一网络层的输出结果进行重量化时,将所述输出结果中大于第一阈值的值按照所述第一阈值输出,将小于第二阈值的值按照所述第二阈值输出。
在一种可能的实施方式中,所述第一阈值为对所述第一网络层的输出结果进行重量化时的精度最高值,所述第二阈值为对所述第一网络层的输出结果进行重量化时的精度最低值。
在一种可能的实施方式中,在基于所述更改后的第一网络层调整所述神经网络的网络层连接关系,得到新的神经网络方面,上述程序具体用于执行以下步骤的指令:
查找所述神经网络中与所述第二网络层连接的各网络层;
将所述各网络层分别与所述第二网络层之间的连接,替换为,所述各网络层分别与所述更改后的第一网络层之间的连接,得到所述新的神经网络。
在一种可能的实施方式中,所述第一网络层包括卷积层,所述第二网络层包括线性整流ReLU层。
参阅图4,图4为本申请实施例提供的一种网络融合装置的功能单元组成框图。网络融合装置400包括:确定单元410、更改单元420和运算单元430,其中:
确定单元410,用于确定神经网络中的目标网络层对,其中,所述目标网络层对中在前的第一网络层与所述目标网络层对中在后的第二网络层连接;
更改单元420,用于在所述目标网络层对满足条件的情况下,利用所述第二网络层的量化参数,更改所述第一网络层的量化参数,得到更改后的第一网络层;
更改单元420,还用于基于所述更改后的第一网络层调整所述神经网络的网络层连接关系,得到新的神经网络;
运算单元430,用于使用所述新的神经网络进行运算,得到运算结果。
在一种可能的实施方式中,在利用所述第二网络层的量化参数,更改所述第一网络层的量化参数,得到更改后的第一网络层方面,更改单元420,具体用于:
获取所述第一网络层的输出结果和所述第二网络层的输出结果;
对所述第二网络层的输出结果进行量化,得到所述第二网络层的量化参数;
将所述第二网络层的量化参数赋值给所述第一网络层,并使用所述第二网络层的量化参数对所述第一网络层的输出结果进行重量化,得到所述更改后的第一网络层。
在一种可能的实施方式中,确定单元410,还用于获取对所述第一网络层的输出结果进行重量化时的第一处理方式;
获取对所述第二网络层的输入数据进行运算时的第二处理方式;
在所述第一处理方式与所述第二处理方式一致的情况下,确定所述目标网络层对满足条件。
在一种可能的实施方式中,所述第一处理方式包括:
在对所述第一网络层的输出结果进行重量化时,将所述输出结果中大于第一阈值的值按照所述第一阈值输出,将小于第二阈值的值按照所述第二阈值输出。
在一种可能的实施方式中,所述第一阈值为对所述第一网络层的输出结果进行重量化时的精度最高值,所述第二阈值为对所述第一网络层的输出结果进行重量化时的精度最低值。
在一种可能的实施方式中,在基于所述更改后的第一网络层调整所述神经网络的网络层连接关系,得到新的神经网络方面,更改单元420,具体用于:
查找所述神经网络中与所述第二网络层连接的各网络层;
将所述各网络层分别与所述第二网络层之间的连接,替换为,所述各网络层分别与所述更改后的第一网络层之间的连接,得到所述新的神经网络。
在一种可能的实施方式中,所述第一网络层包括卷积层,所述第二网络层包括线性整流ReLU层。
本申请实施例还提供一种计算机存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现如上述方法实施例中记载的任何一种网络融合方法的部分或全部步骤。
本申请实施例还提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序可操作来使计算机执行如上述方法实施例中记载的任何一种网络融合方法的部分或全部步骤。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (16)
1.一种网络融合方法,其特征在于,所述方法包括:
确定神经网络中的目标网络层对,其中,所述目标网络层对中在前的第一网络层与所述目标网络层对中在后的第二网络层连接;
在所述目标网络层对满足条件的情况下,利用所述第二网络层的量化参数,更改所述第一网络层的量化参数,得到更改后的第一网络层;
基于所述更改后的第一网络层调整所述神经网络的网络层连接关系,得到新的神经网络;
使用所述新的神经网络进行运算,得到运算结果。
2.根据权利要求1所述的方法,其特征在于,所述利用所述第二网络层的量化参数,更改所述第一网络层的量化参数,得到更改后的第一网络层,包括:
获取所述第一网络层的输出结果和所述第二网络层的输出结果;
对所述第二网络层的输出结果进行量化,得到所述第二网络层的量化参数;
将所述第二网络层的量化参数赋值给所述第一网络层,并使用所述第二网络层的量化参数对所述第一网络层的输出结果进行重量化,得到所述更改后的第一网络层。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
获取对所述第一网络层的输出结果进行重量化时的第一处理方式;
获取对所述第二网络层的输入数据进行运算时的第二处理方式;
在所述第一处理方式与所述第二处理方式一致的情况下,确定所述目标网络层对满足条件。
4.根据权利要求3所述的方法,其特征在于,所述第一处理方式包括:
在对所述第一网络层的输出结果进行重量化时,将所述输出结果中大于第一阈值的值按照所述第一阈值输出,将小于第二阈值的值按照所述第二阈值输出。
5.根据权利要求4所述的方法,其特征在于,所述第一阈值为对所述第一网络层的输出结果进行重量化时的精度最高值,所述第二阈值为对所述第一网络层的输出结果进行重量化时的精度最低值。
6.根据权利要求1至5任一所述的方法,其特征在于,所述基于所述更改后的第一网络层调整所述神经网络的网络层连接关系,得到新的神经网络,包括:
查找所述神经网络中与所述第二网络层连接的各网络层;
将所述各网络层分别与所述第二网络层之间的连接,替换为,所述各网络层分别与所述更改后的第一网络层之间的连接,得到所述新的神经网络。
7.根据权利要求1至6任一所述的方法,其特征在于,所述第一网络层包括卷积层,所述第二网络层包括线性整流ReLU层。
8.一种网络融合装置,其特征在于,包括:
确定单元,用于确定神经网络中的目标网络层对,其中,所述目标网络层对中在前的第一网络层与所述目标网络层对中在后的第二网络层连接;
更改单元,用于在所述目标网络层对满足条件的情况下,利用所述第二网络层的量化参数,更改所述第一网络层的量化参数,得到更改后的第一网络层;
所述更改单元,还用于基于所述更改后的第一网络层调整所述神经网络的网络层连接关系,得到新的神经网络;
运算单元,用于使用所述新的神经网络进行运算,得到运算结果。
9.根据权利要求8所述的装置,其特征在于,
在利用所述第二网络层的量化参数,更改所述第一网络层的量化参数,得到更改后的第一网络层方面,所述更改单元,具体用于:
获取所述第一网络层的输出结果和所述第二网络层的输出结果;
对所述第二网络层的输出结果进行量化,得到所述第二网络层的量化参数;
将所述第二网络层的量化参数赋值给所述第一网络层,并使用所述第二网络层的量化参数对所述第一网络层的输出结果进行重量化,得到所述更改后的第一网络层。
10.根据权利要求8或9所述的装置,其特征在于,
所述确定单元,还用于获取对所述第一网络层的输出结果进行重量化时的第一处理方式;
获取对所述第二网络层的输入数据进行运算时的第二处理方式;
在所述第一处理方式与所述第二处理方式一致的情况下,确定所述目标网络层对满足条件。
11.根据权利要求10所述的装置,其特征在于,所述第一处理方式包括:
在对所述第一网络层的输出结果进行重量化时,将所述输出结果中大于第一阈值的值按照所述第一阈值输出,将小于第二阈值的值按照所述第二阈值输出。
12.根据权利要求11所述的装置,其特征在于,所述第一阈值为对所述第一网络层的输出结果进行重量化时的精度最高值,所述第二阈值为对所述第一网络层的输出结果进行重量化时的精度最低值。
13.根据权利要求8-12任一所述的装置,其特征在于,
在基于所述更改后的第一网络层调整所述神经网络的网络层连接关系,得到新的神经网络方面,所述更改单元,具体用于:
查找所述神经网络中与所述第二网络层连接的各网络层;
将所述各网络层分别与所述第二网络层之间的连接,替换为,所述各网络层分别与所述更改后的第一网络层之间的连接,得到所述新的神经网络。
14.根据权利要求8-13任一所述的装置,其特征在于,所述第一网络层包括卷积层,所述第二网络层包括线性整流ReLU层。
15.一种电子设备,其特征在于,包括处理器、存储器、通信接口以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行,所述程序包括用于执行权利要求1-7任一项方法中的步骤的指令。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010113285.5A CN111340216A (zh) | 2020-02-24 | 2020-02-24 | 网络融合方法、网络融合装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010113285.5A CN111340216A (zh) | 2020-02-24 | 2020-02-24 | 网络融合方法、网络融合装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111340216A true CN111340216A (zh) | 2020-06-26 |
Family
ID=71185562
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010113285.5A Pending CN111340216A (zh) | 2020-02-24 | 2020-02-24 | 网络融合方法、网络融合装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111340216A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022001822A1 (zh) * | 2020-06-30 | 2022-01-06 | 华为技术有限公司 | 获取神经网络的方法和装置 |
-
2020
- 2020-02-24 CN CN202010113285.5A patent/CN111340216A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022001822A1 (zh) * | 2020-06-30 | 2022-01-06 | 华为技术有限公司 | 获取神经网络的方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109284823B (zh) | 一种运算装置及相关产品 | |
CN110009486B (zh) | 一种欺诈检测的方法、系统、设备及计算机可读存储介质 | |
CN110163334B (zh) | 集成电路芯片装置及相关产品 | |
CN110795235B (zh) | 一种移动web深度学习协作的方法及系统 | |
CN109389208B (zh) | 数据的量化装置及量化方法 | |
CN111870959B (zh) | 一种游戏中的资源推荐方法及装置 | |
CN109214543B (zh) | 数据处理方法及装置 | |
US20200389182A1 (en) | Data conversion method and apparatus | |
CN111240746B (zh) | 一种浮点数据反量化及量化的方法和设备 | |
CN110826706B (zh) | 用于神经网络的数据处理方法和装置 | |
KR20190140841A (ko) | 확률 적응적 자원 할당을 통한 신경망 하드웨어 가속 | |
CN112130805A (zh) | 包括浮点加法器的芯片、设备及浮点运算的控制方法 | |
CN111340216A (zh) | 网络融合方法、网络融合装置、电子设备及存储介质 | |
CN109389209B (zh) | 处理装置及处理方法 | |
CN117420982A (zh) | 包括融合乘累加器的芯片、设备及数据运算的控制方法 | |
CN111915689A (zh) | 用于生成目标函数的方法、装置、电子设备和计算机可读介质 | |
CN117215646A (zh) | 一种浮点运算方法、处理器、电子设备及存储介质 | |
CN112052945A (zh) | 神经网络的训练方法、神经网络的训练装置和电子设备 | |
EP4170547A1 (en) | Method for extracting data features, and related apparatus | |
CN114742163A (zh) | 一种售后任务的审核方法及装置 | |
CN113886547A (zh) | 基于人工智能的客户实时对话转接方法、装置和电子设备 | |
CN114444688A (zh) | 神经网络的量化方法、装置、设备、存储介质及程序产品 | |
US20200134434A1 (en) | Arithmetic processing device, learning program, and learning method | |
CN111930670A (zh) | 异构智能处理量化装置、量化方法、电子设备及存储介质 | |
CN113761934B (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 |