CN116468100A - 残差剪枝方法、装置、电子设备和可读存储介质 - Google Patents

残差剪枝方法、装置、电子设备和可读存储介质 Download PDF

Info

Publication number
CN116468100A
CN116468100A CN202310213879.7A CN202310213879A CN116468100A CN 116468100 A CN116468100 A CN 116468100A CN 202310213879 A CN202310213879 A CN 202310213879A CN 116468100 A CN116468100 A CN 116468100A
Authority
CN
China
Prior art keywords
target
residual
calculation
pruning
operator
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
CN202310213879.7A
Other languages
English (en)
Other versions
CN116468100B (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.)
Midea Group Co Ltd
Midea Group Shanghai Co Ltd
Original Assignee
Midea Group Co Ltd
Midea Group Shanghai 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 Midea Group Co Ltd, Midea Group Shanghai Co Ltd filed Critical Midea Group Co Ltd
Priority to CN202310213879.7A priority Critical patent/CN116468100B/zh
Priority claimed from CN202310213879.7A external-priority patent/CN116468100B/zh
Publication of CN116468100A publication Critical patent/CN116468100A/zh
Application granted granted Critical
Publication of CN116468100B publication Critical patent/CN116468100B/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
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • 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

Abstract

本申请提出了一种残差剪枝方法、装置、电子设备和可读存储介质,其中,残差剪枝方法,包括:查找第一模型对应的计算图中的目标节点,目标节点与第一模型中的残差连接结构相对应;基于目标节点遍历计算图,确定计算图中的目标卷积层;对目标卷积层进行剪枝处理。

Description

残差剪枝方法、装置、电子设备和可读存储介质
技术领域
本申请属于模型处理技术领域,具体而言,涉及一种残差剪枝方法、装置、电子设备和可读存储介质。
背景技术
通道剪枝技术旨在压缩模型中的冗余权重,在缩小模型体积的同时,优化模型运行时的推理速度。
在相关技术中,自动化剪枝方案均需要人工手动输入所需剪枝处理的卷积层在模型中对应的名称,导致对模型自动化剪枝处理效率低下。
发明内容
本申请旨在解决现有技术或相关技术中存在的技术问题之一。
为此,本申请的第一方面提出了一种残差剪枝方法。
本申请的第二方面提出了一种残差剪枝装置。
本申请的第三方面提出了一种残差剪枝装置。
本申请的第四方面提出了一种计算机程序产品。
本申请的第五方面提出了一种可读存储介质。
本申请的第六方面提出了一种电子设备。
有鉴于此,根据本申请的第一方面提出一种残差剪枝方法,包括:查找第一模型对应的计算图中的目标节点,目标节点与第一模型中的残差连接结构相对应;基于目标节点遍历计算图,确定计算图中的目标卷积层;对目标卷积层进行剪枝处理。
根据本申请第二方面提出了一种残差剪枝装置,包括:查找模块,用于查找第一模型对应的计算图中的目标节点,目标节点与第一模型中的残差连接结构相对应;确定模块,用于基于目标节点遍历计算图,确定计算图中的目标卷积层;处理模块,用于对目标卷积层进行剪枝处理。
根据本申请第三方面提出了一种残差剪枝装置,包括:存储器,存储器中存储有程序或指令;处理器,处理器执行存储在存储器中的程序或指令以实现如第一方面中任一技术方案中的残差剪枝方法的步骤,因而具有上述第一方面中任一技术方案中的残差剪枝方法的全部有益技术效果,在此不再做过多赘述。
根据本申请第四方面提出了一种计算机程序产品,计算机程序产品被处理器执行时实现如第一方面中任一技术方案中的残差剪枝方法的步骤,因而具有上述第一方面中任一技术方案中的残差剪枝方法的全部有益技术效果,在此不再做过多赘述。
根据本申请第五方面提出了一种可读存储介质,可读存储介质上存储有程序或指令,程序或指令被处理器执行时实现如上述第一方面中任一技术方案中的残差剪枝方法的步骤。因而具有上述第一方面中任一技术方案中的残差剪枝方法的全部有益技术效果,在此不再做过多赘述。
根据本申请第六方面提出了一种电子设备,包括:如上述第二方面或第三方面中限定的残差剪枝装置,和/或上述第四方面中限定的可读存储介质,因而具有上述第二方面或第三方面中残差剪枝装置,和/或上述第四方面中限定的可读存储介质的全部有益技术效果,在此不再做过多赘述。
本申请的技术方案中,通过将第一模型转换为计算图结构,并基于计算图结构查找到目标节点,再通过目标节点查找到所需进行剪枝处理的目标卷积层,自动对目标卷积层进行定位,并对定位得到的目标卷积层进行自动剪枝处理,实现了自动化获取模型中的残差连接结构的卷积层连接关系,无需用户手动输入这些卷积层在模型中对应的名称,保证对模型剪枝处理准确性的同时,提高模型剪枝处理的效率。
本申请的附加方面和优点将在下面的描述部分中变得明显,或通过本申请的实践了解到。
附图说明
本申请的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1示出了本申请的一些实施例中提供的残差剪枝方法的示意流程图之一;
图2示出了本申请的一些实施例中提供的残差连接结构的示意图之一;
图3示出了本申请的一些实施例中提供的残差剪枝方法的示意流程图之二;
图4示出了本申请的一些实施例中提供的残差剪枝方法的示意流程图之三;
图5示出了本申请的一些实施例中提供的查找目标卷集成的方法的示意流程图;
图6示出了本申请的一些实施例中提供的残差剪枝方法的示意流程图之四;
图7示出了本申请的一些实施例中提供的残差剪枝方法的示意流程图之五;
图8示出了本申请的一些实施例中提供的残差剪枝方法的示意流程图之六;
图9示出了本申请的一些实施例中提供的残差连接结构的示意图之二;
图10示出了本申请的一些实施例中提供的残差连接结构的示意图之三;
图11示出了本申请的一些实施例中提供的残差连接结构的示意图之四:
图12示出了本申请的一些实施例中提供的残差剪枝装置的结构框图;
图13示出了本申请的一些实施例提供的残差剪枝装置的结构框图;
图14示出了本申请的一些实施例提供的电子设备的结构框图。
具体实施方式
为了能够更清楚地理解本申请的上述目的、特征和优点,下面结合附图和具体实施方式对本申请进行进一步的详细描述。需要说明的是,在不冲突的情况下,本实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本申请,但是,本申请还可以采用其他不同于在此描述的其他方式来实施,因此,本申请的保护范围并不受下面公开的具体实施例的限制。
下面参照图1至图14描述根据本申请一些实施例的残差剪枝方法、装置、可读存储介质和电子设备。
根据本申请的一个实施例中,如图1所示,提出了一种残差剪枝方法,包括:
步骤102,查找第一模型对应的计算图中的目标节点,目标节点与第一模型中的残差连接结构相对应;
步骤104,基于目标节点遍历计算图,确定计算图中的目标卷积层;
步骤106,对目标卷积层进行剪枝处理。
本申请提供的残差剪枝方法用于对第一模型中的残差连接结构中的算子进行剪枝处理。
在该实施例中,第一模型为数据处理模型,示例性地,第一模型可以为图像分类模型、目标检测模型等,具体例如:图像分类中的ResNet模型(一种图像分类模型),目标检测中的YOLOv7-tiny模型(一种目标检测模型)。计算图为基于第一模型所构建的计算图,计算图中的算子节点与第一模型中的算子一一对应,通过将第一模型展开为计算图,便于查找相应的目标节点。目标节点为第一模型中残差连接结构中的算子节点,即在查找到目标节点时,通过目标节点能够查找到目标卷积层,该目标卷积层即为需要进行剪枝处理的残差网络结构,通过对目标卷积层进行残差剪枝处理,能够,压缩第一模型中冗余权重,缩小第一模型的体积的同时,提高模型的运行速度。其中,残差连接结构是指某个卷积层的输入来自于上层两个卷积层输出的叠加。需要说明的是,搭建网络的时候为了缓解梯度消失的影响引入了残差结构,残差结构就是需要用到不同卷积层的输出来丰富特征提取的信息,即加法加号,在算子层面就是add算子。add算子的作用是对两个及以上的卷积输出进行求和作为下一个卷积的输入,其实也就是模型前向推理时的加法操作。如果不对add操作进行有特殊处理,剪枝以后就会导致输入的那些卷积层彼此之间输出通道个数不一致从而求和失败,经过这技术就能保证求和运算的成功性,相比于跳过add算子,在该技术方案能够挖掘出更多的冗余参数。通过删除掉的对精度影响低的冗余参数,从而减小模型大小。
如图9所示,示例性地,add算子代表残差连接,故将add算子作为目标节点,在查找到add算子之后,基于该add算子查找到相应的卷积层。ConvC的输入就是ConvA与ConvB两者的输出之和,故ConvA、ConvB和ConvC形成的卷积层即为需要进行剪枝处理的目标卷积层ConvD。其中,ConvA、ConvB、ConvC、ConvD均为卷积层。可见,add算子的两个输入分别为ConvA和ConvB,且ConvC的输入为add算子的输出,故能够确定该add算子、ConvA、ConvB、ConvC为残差连接结构。
如图10所示,add算子的输入为layer1.0.conv2和conv1,add算子的输出为layer1.1.conv1,可见,add算子的输入和输出均为卷积算子,可判定add算子的输入和输出所组成的结构为残差连接结构。
如图11所示,add_1算子的两个输入为layer1_0_relu和layer_1_1_bn2,可见,add_1算子的两个输入分别为BN算子(归一化算子)和relu算子(激活算子),其中,残差连接结构是包含add算子输入及输出方向的卷积层的,如果沿某个方向的搜索没能找到卷积层,就会继续前进。由于没有抵达任何一个模型中的卷积层,才判定还没搜索完整残差链接结构,故判定add算子的输入和输出所组成的结构不是残差连接结构。具体来说,将第一模型展开呈计算图,从而确定该第一模型的推理结构。通过遍历计算图中的每个算子节点,能够定位到计算图中的目标节点。在查找到目标节点之后,将目标节点作为遍历的起点,沿输入和输出两个方向遍历计算图,以找到能够作为剪枝对象的目标卷积层,并对目标卷积层进行剪枝处理。
示例性地,目标节点可以为add算子节点,如add、add_1等。以节点名称为add的算子为例,add算子的“opcode(操作码)”为“call_function(调用函数)”,add算子接收的两个输入为(layer1_0_bn2,relu),但是不论是BN算子(归一化算子)还是relu算子(激活算子)本身都不是卷积层,只有卷积层才属于剪枝对象。因此要沿着数据流继续寻找直到找到对应的卷积层为止。例如:通过Pytorch代码“if isinstance(a,torch.nn.Conv2d)”,即判断“a”是否为目标卷积层,其中,“a”就是拿来判断的模块对象。
本申请的实施例中,通过将第一模型转换为计算图结构,并基于计算图结构查找到目标节点,再通过目标节点查找到所需进行剪枝处理的目标卷积层,自动对目标卷积层进行定位,并对定位得到的目标卷积层进行自动剪枝处理,实现了自动化获取模型中的残差连接结构的卷积层连接关系,无需用户手动输入这些卷积层在模型中对应的名称,保证对模型剪枝处理准确性的同时,提高模型剪枝处理的效率。
如图3所示,在上述实施例中,基于目标节点遍历计算图,确定计算图中的目标卷积层,包括:
步骤302,沿目标节点的输入方向和输出方向遍历计算图,直至确定目标节点对应的第一算子结构;
步骤304,在第一算子结构与预设算子结构相匹配的情况下,确定第一算子结构为目标卷积层。
在该实施例中给出了通过目标节点遍历计算图,以查找目标卷积层结构的具体过程。
在该实施例中,在查找到计算图中的目标节点之后,由于目标节点为残差连接结构中的算子节点,因而将目标节点作为遍历计算图的起点,并沿算子节点的输出方向和输入方向对计算图进行遍历,查找到目标节点所对应的第一算子结构,通过将第一算子结构与预设算子结构进行比对,在比对结果为匹配时,确定该第一算子结构为目标卷积层,实现了自动查找需要被剪枝处理的目标卷积层。
示例性地,目标节点为add算子节点,在定位到add算子节点后,开始遍历该add算子节点的输入方向和输出方向。将add算子节点对应的输入节点和输出节点的名称带入网络,以获取输入节点和输出节点模型中具体对应的结构,该结构为第一算子结构。预设算子结构为卷积层结构,如果第一算子结构为卷积层结构的情况下,则确定该第一算子结构为目标卷积层,如果第一算子结构不是卷积层结构的情况下,继续从当前的输入节点和输出节点作为起点继续查找,直至查找到与预设算子结构相匹配的第一算子结构。
需要说明的是,在遍历计算图的过程中,可以选择先从输入方向开始遍历,在输入方向遍历完成之后,再沿输出方向开始遍历,也可以选择先从输出方向开始遍历,在输出方向遍历完成之后,再沿输入方向开始遍历。
示例性地,目标节点包括多个输出路径的情况下,则对多个输出路径进行排序,并按照顺序依次对多个输出路径进行遍历。
在本申请的实施例中,由于目标节点为目标卷积层中的算子节点,故需要按照输入方向和输出方向分别对计算图进行遍历,通过遍历计算图能够查找到包括该目标节点的第一算子结构,在查找到的第一算子结构与预设算子结构相匹配,则判定该第一算子结构为目标卷积层,从而实现了基于目标节点自动查找相应的目标卷积层。
如图4所示,在上述任一实施例中,目标节点的数量为至少两个;沿目标节点的输入方向和输出方向遍历计算图,确定目标节点对应的第一算子结构,包括:
步骤402,获取至少两个目标节点的排列顺序;
步骤404,沿排列顺序,依次将至少两个目标节点作为起点对计算图进行遍历。
在该实施例中,在查找到计算图中包括多个目标节点的情况下,则按照排列顺序依次对每个目标节点查找相应的第一算子结构,并依次查找每个目标节点是否对应有目标卷积层。
需要说明的是,目标卷积层对应的算子结构中一定包括目标节点,但是每个目标节点并不均对应目标卷积层的算子结构。
具体来说,计算图中包括多个目标节点,获取多个目标节点的排列顺序,并依次将每个目标节点均作为起点对计算图进行遍历,以查找相应的目标卷积层。
示例性地,计算图中包括两个目标节点,分别为节点1、节点2,确定两个目标节点的排列顺序为节点1、节点2。首先,以节点1作为起点沿输出方向和输入方向对计算图进行遍历,在对节点1遍历完成后查找到目标卷积层1。然后,以节点2作为起点沿输出方向和输入方向对计算图进行遍历,在对节点2遍历完成后查找到目标卷积层2。
本申请的实施例中,在计算图中包括多个目标节点时,依次对目标节点进行遍历,查找到每个目标节点所对应的目标卷积层,保证能够查找到计算图中全部需要进行剪枝处理的目标卷积层。
如图5所示,在一些可能的实施例中,查找目标卷集成的方法包括:
步骤502,定位add算子;
在该实施例中,add算子为计算图中的目标节点。
步骤504,遍历算子输入/输出;
在该实施例中,以add算子节点作为起点沿输出方向/输入方向对计算图进行遍历,查找第一算子结构;
步骤506,获取模型中对应结构;
在该实施例中,模型中对应的结构为第一算子结构。
步骤508,判断是否为卷积层,判断结果为是则执行步骤510,判断结果为否则执行步骤512;
在该实施例中,在第一算子结构与预设算子结构相匹配的情况下,则该第一算子结构为目标卷积层。
步骤510,当前算子是否遍历完成,判断结果为是则返回执行步骤502,判断结果为否则返回执行步骤504;
在该实施例中,在计算图中包括多个目标节点的情况下,对当前算子(当前的目标节点)完成遍历之后,则对下一个目标节点进行遍历,在未完成遍历的情况下,则继续沿输入方向或输出方向进行遍历。
步骤512,重新定位输入/输出节点,返回执行步骤506。
在该实施例中,在第一算子结构未与预设算子结构相匹配的情况下,则重新将对应的输入节点或输出节点作为起点,继续对计算图进行遍历直至查找到下一个第一算子结构。
如图6所示,在上述任一实施例中,对目标卷积层进行剪枝处理,包括:
步骤602,确定目标卷积层中的目标计算通道;
步骤604,对目标计算通道进行裁剪处理。
在该实施例中,在确定目标卷积层之后,需要查找目标卷积层中的目标计算通道,其中,目标计算通道为能够进行裁剪处理的计算通道,即目标卷积层经过剪枝处理之后,目标计算通道被裁剪删除,从而压缩了目标卷积层所在第一模型的体积,也提高了该第一模型的推理效率。
具体来说,为了保证经过剪枝处理后的第一模型的推理效果,则需要保留残差连接结构中每个卷积层中的所需调用的计算通道,并将每个卷积层中均无需调用的计算通道确定为目标通道,并对该目标通道进行裁剪。
如图2所示,示例性地,残差连接结构中包括三个目标卷积层,分别为ConvA、ConvB和ConvC。其中,ConvA有4个计算通道,则ConvB也有4个计算通道,在ConvA和ConvB相加时,ConvA和ConvB的通道数必须相等。在计算过程中,ConvA只保留前两个计算通道,ConvB只保留最后一个计算通道,由于ConvC的计算通道的输入需要与ConvA和ConvB的计算通道的输出保持一致,则四个计算通道中的第三个计算通道为目标计算通道,将第三个计算通道进行裁剪,以完成对该残差连接结构的剪枝处理。
在本申请的实施例中,通过查找残差连接结构中目标卷积层中的目标计算通道,并将目标计算通道进行裁剪,实现了在保证剪枝处理后的第一模型的推理效果的前提下,压缩了第一模型的体积,提高了第一模型的推理效率。
如图7所示,在上述任一实施例中,同一个残差连接结构对应多个目标卷积层,确定目标卷积层中的目标计算通道,包括:
步骤702,确定目标卷积层中的第一计算通道,第一计算通道为目标卷基层所需调用的计算通道;
步骤704,将目标卷积层中除第一计算通道外的其余计算通道,确定为目标计算通道。
在该实施例中,将目标卷积层中所需调用的计算通道之外的其余计算通道均作为目标计算通道。
具体来说,在一个残差连接结构中包括多个目标卷积层时,需要统计多个目标卷积层所需调用的计算通道,并将每个目标卷积层均不需要调用的计算通道作为目标计算通道,并对该目标计算通道进行裁剪。
示例性地,残差连接结构中包括三个目标卷积层,其中两个目标卷积层为上层卷积层,另外一个目标卷积层为下层卷积层。三个目标卷积层中的计算通道数量相同,查找到三个目标卷积层分别需要调用的第一计算通道,并将多个目标卷积层中除第一计算通道外的其余计算通道均作为目标计算通道。
本申请的实施例中,残差连接结构中包括多个目标卷积层,统计多个目标卷积层中所需调用的第一计算通道,并将多个目标卷积层中除第一计算通道之外的全部计算通道均为目标计算通道进行裁剪处理,进一步保证了对残差连接结构进行剪枝处理的准确性,保证了剪枝处理后的第一模型推理的准确性。
如图8所示,在上述任一实施例中,确定多个目标卷积层中的第一计算通道,包括:
步骤802,对每个目标卷积层中所需调用的第二计算通道进行掩码处理,得到目标通道掩码;
步骤804,基于目标通道掩码,确定第一计算通道。
本申请的实施例中,第一计算通道为同一个残差连接结构中多个目标卷积层所需调用的计算通道。第二计算通道为每个目标卷积层所需调用的计算通道。
在该实施例中,通过对每个目标卷积层中需要调用的第二计算通道进行掩码处理,得到目标通道掩码,基于该目标通道掩码,能够确定与目标通道掩码相匹配的第一计算通道。
具体来说,分别对多个目标卷积层中的第二计算通道进行掩码处理得到第一通道掩码,通过对多个第一通道掩码进行计算处理,能够得到目标通道掩码,并基于该目标通道掩码得到第一计算通道。
如图2所示,示例性地,残差连接结构中包括三个目标卷积层,分别为ConvA、ConvB和ConvC。其中,ConvA、ConvB、ConvC均有4个计算通道。在计算过程中,ConvA只保留前两个计算通道,ConvA对应的第一通道掩码为[1,1,0,0],ConvB只保留最后一个计算通道,ConvB对应的第一通道掩码为[0,0,0,1],由于ConvC的计算通道的输入需要与ConvA和ConvB的计算通道的输出保持一致,故ConvC对应的第一通道掩码即为目标通道掩码,基于上述两个第一通道掩码进行计算,得到目标通道掩码为[1,1,0,1],可见,四个通道中掩码为0的通道为目标计算通道,掩码为1的通道为第一计算通道。
本申请的实施例中,通过对多个目标卷积层中的第二计算通道进行掩码处理得到相应的第一通道掩码,再基于第一通道掩码能够得到多个卷积层所对应的目标通道掩码,从而得到多个卷积层所需调用的第一计算通道,简化了查找多个卷积层所需调用的第一计算通道的步骤。
在上述任一实施例中,对目标计算通道进行裁剪处理之后,还包括:建立目标计算通道与目标卷积层之间的映射关系。
在该实施例中,在查找到目标卷积层,以及对目标卷积层中的目标计算通道完成裁剪之后,将目标卷积层和目标计算通道建立映射关系,使下次遍历查找到相同的目标卷积层自动对目标计算通道进行裁剪。
具体来说,在建立目标卷积层和目标计算通道的映射关系的步骤,包括:获取目标卷积层的算子标识,以及目标计算通道的通道信息,建立算子标识、通道信息与目标节点之间映射关系。
示例性地,算子标识可以目标卷积层的名称信息等,通道信息可以为目标计算通道的通道标识。
示例性地,建立参与残差连接结构的目标卷积层与目标计算通道的映射关系,将它们保存在一个字典里。在下一次对模型进行剪枝时会遍历该模型中的全部卷积层,当遍历到的目标卷积层已经位于字典内,则意味着这个卷积层处于残差连接结构,且作为add算子的输入,并查找另一个参与该算子的输入的目标卷积层,以及相应的目标计算通道,从而确对该目标卷积层的裁剪方式。
本申请的实施例中,在对目标卷积层完成裁剪之后,将裁剪的目标计算通道和目标卷积层建立映射关系,便于之后对其他模型进行剪枝处理时,能够直接调用相应的目标计算通道,简化后续对其他模型剪枝处理的步骤。
在上述任一实施例中,查找第一模型对应的计算图中的目标节点,包括:构建第一模型对应的计算图;基于目标算子信息,查找计算图中的残差节点。
在该实施例中,在查找目标节点之前,将第一模型展开得到与第一模型相匹配的计算图,根据目标算子节点对应的目标算子信息,查找该计算图中的目标节点。
需要说明的是,目标算子信息为目标节点对应的算子信息。
示例性地,目标算子信息可以为目标节点的算子节点名称,例如:add,即将算子节点名称为“add”的算子节点作为目标节点。
本申请的实施例中,通过将第一模型展开成为计算图,获取该第一模型的推理结构,并基于目标算子信息查找相应的目标节点,从而初步确定残差连接结构对应的目标卷积层在计算图中所处的位置。
在上述任一实施例中,构建第一模型对应的计算图,包括:获取第一模型中的至少两个算子的算子信息,以及至少两个算子之间的顺序信息;基于算子信息和顺序信息,构建计算图。
在该实施例中给出了将第一模型展开为计算图的具体过程,通过将第一模型中的算子作为计算图中的节点,并将第一模型中的算子之间的关系作为计算图中的边,使计算能够准确反映第一模型的推理结构。
具体来说,提取第一模型中每个算子的算子信息,以及第一模型中每个算子之间的顺序信息。基于每个算子信息构建计算图中相应的算子节点,以及基于多个算子信息之间的顺序信息,确定计算图中多个算子节点之间的输入/输出关系,从而构建与第一模型相匹配的计算图。
本申请的实施例中,通过提取第一模型中多个算子的算子信息,以及多个算子之间的顺序信息,能够构建与第一模型相匹配的计算图,保证计算图与第一模型的匹配性。
在上述任一实施例中,算子信息包括以下任一项:算子节点名称、算子计算参数、算子计算结果。
在该实施例中,算子信息包括算子节点名称,算子节点名称为第一模型中每个算子对应的名称信息。算子信息包括算子计算参数,算子计算参数为能够反映算子在计算处理过程中的计算过程的参数。算子信息包括算子计算结果,算子计算结果为算子对数据进行计算处理后的结果。
本申请的实施例中,通过将算子节点名称、算子计算结果、算子计算参数中的任一项作为算子信息,能够对计算图构建相应的算子节点,进一步提高了构建得到的计算图与第一模型的匹配性。
在上述任一实施例中,第一模型包括以下任一项:图像分类模型、目标识别模型。
在根据本申请的一个实施例中,如图12所示,提出了一种残差剪枝装置1200,包括:
查找模块1202,用于查找第一模型对应的计算图中的目标节点,目标节点与第一模型中的残差连接结构相对应;
确定模块1204,用于基于目标节点遍历计算图,确定计算图中的目标卷积层;
处理模块1206,用于对目标卷积层进行剪枝处理。
本申请的实施例中,通过将第一模型转换为计算图结构,并基于计算图结构查找到目标节点,再通过目标节点查找到所需进行剪枝处理的目标卷积层,自动对目标卷积层进行定位,并对定位得到的目标卷积层进行自动剪枝处理,实现了自动化获取模型中的残差连接结构的卷积层连接关系,无需用户手动输入这些卷积层在模型中对应的名称,保证对模型剪枝处理准确性的同时,提高模型剪枝处理的效率。
在上述实施例中,确定模块1204,用于沿目标节点的输入方向和输出方向遍历计算图,确定目标节点对应的第一算子结构;
确定模块1204,用于在第一算子结构与预设算子结构相匹配的情况下,确定第一算子结构为目标卷积层。
在本申请的实施例中,由于目标节点为目标卷积层中的算子节点,故需要按照输入方向和输出方向分别对计算图进行遍历,通过遍历计算图能够查找到包括该目标节点的第一算子结构,在查找到的第一算子结构与预设算子结构相匹配,则判定该第一算子结构为目标卷积层,从而实现了基于目标节点自动查找相应的目标卷积层。
在上述任一实施例中,目标节点的数量为至少两个;
残差剪枝装置1200,还包括:
获取模块,用于获取至少两个目标节点的排列顺序;
处理模块1206,用于沿排列顺序,依次将至少两个目标节点作为起点对计算图进行遍历。
本申请的实施例中,在计算图中包括多个目标节点时,依次对目标节点进行遍历,查找到每个目标节点所对应的目标卷积层,保证能够查找到计算图中全部需要进行剪枝处理的目标卷积层。
在上述任一实施例中,确定模块1204,用于确定目标卷积层中的目标计算通道;
处理模块1206,用于对目标计算通道进行裁剪处理。
在本申请的实施例中,通过查找残差连接结构中目标卷积层中的目标计算通道,并将目标计算通道进行裁剪,实现了在保证剪枝处理后的第一模型的推理效果的前提下,压缩了第一模型的体积,提高了第一模型的推理效率。
在上述任一实施例中,确定模块1204,用于确定目标卷积层中的第一计算通道,第一计算通道为目标卷基层所需调用的计算通道;
确定模块1204,用于将目标卷积层中除第一计算通道外的其余计算通道,确定为目标计算通道。
本申请的实施例中,残差连接结构中包括多个目标卷积层,统计多个目标卷积层中所需调用的第一计算通道,并将多个目标卷积层中除第一计算通道之外的全部计算通道均为目标计算通道进行裁剪处理,进一步保证了对残差连接结构进行剪枝处理的准确性,保证了剪枝处理后的第一模型推理的准确性。
在上述任一实施例中,处理模块1206,用于对每个目标卷积层中所需调用的第二计算通道进行掩码处理,得到目标通道掩码;
确定模块1204,用于基于目标通道掩码,确定第一计算通道。
本申请的实施例中,通过对多个目标卷积层中的第二计算通道进行掩码处理得到相应的第一通道掩码,再基于第一通道掩码能够得到多个卷积层所对应的目标通道掩码,从而得到多个卷积层所需调用的第一计算通道,简化了查找多个卷积层所需调用的第一计算通道的步骤。
在上述任一实施例中,处理模块1206,用于建立目标计算通道与目标卷积层之间的映射关系。
本申请的实施例中,在对目标卷积层完成裁剪之后,将裁剪的目标计算通道和目标卷积层建立映射关系,便于之后对其他模型进行剪枝处理时,能够直接调用相应的目标计算通道,简化后续对其他模型剪枝处理的步骤。
在上述任一实施例中,处理模块1206,用于构建第一模型对应的计算图;
处理模块1206,用于基于目标算子信息,查找计算图中的残差节点。
本申请的实施例中,通过将第一模型展开成为计算图,获取该第一模型的推理结构,并基于目标算子信息查找相应的目标节点,从而初步确定残差连接结构对应的目标卷积层在计算图中所处的位置。
在上述任一实施例中,获取模块,用于获取第一模型中的至少两个算子的算子信息,以及至少两个算子之间的顺序信息;
处理模块1206,用于基于算子信息和顺序信息,构建计算图。
本申请的实施例中,通过提取第一模型中多个算子的算子信息,以及多个算子之间的顺序信息,能够构建与第一模型相匹配的计算图,保证计算图与第一模型的匹配性。
在上述任一实施例中,算子信息包括以下任一项:算子节点名称、算子计算参数、算子计算结果。
本申请的实施例中,通过将算子节点名称、算子计算结果、算子计算参数中的任一项作为算子信息,能够对计算图构建相应的算子节点,进一步提高了构建得到的计算图与第一模型的匹配性。
在根据本申请的一个实施例中,如图13所示,提出了一种残差剪枝装置1300,包括:处理器1302和存储器1304,存储器1304中存储有程序或指令;处理器1302执行存储在存储器1304中的程序或指令以实现如上述任一实施例中的残差剪枝方法的步骤,因而具有上述任一实施例中的残差剪枝方法的全部有益技术效果,在此不再做过多赘述。
在根据本申请的一个实施例中,提出了一种计算机程序产品,计算机程序产品被处理器执行时实现如上述任一实施例中的残差剪枝方法的步骤,因而具有上述任一实施例中的残差剪枝方法的全部有益技术效果,在此不再做过多赘述。
在根据本申请的一个实施例中,提出了一种可读存储介质,可读存储介质上存储有程序或指令,程序或指令被处理器执行时实现如上述任一实施例中的残差剪枝方法的步骤。因而具有上述任一实施例中的残差剪枝方法的全部有益技术效果,在此不再做过多赘述。
在根据本申请的一个实施例中,如图14所示,提出了一种电子设备1400,包括:如上述任一实施例中的残差剪枝装置1200,和/或上述任一实施例中的计算机程序产品1402,和/或上述第四方面中限定的可读存储介质1404,因而具有上述任一实施例中的残差剪枝装置1200,和/或上述任一实施例中的可读存储介质1404的全部有益技术效果,在此不再做过多赘述。
需要明确的是,在本申请的权利要求书、说明书和说明书附图中,术语“多个”则指两个或两个以上,除非有额外的明确限定,术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了更方便地描述本申请和使得描述过程更加简便,而不是为了指示或暗示所指的装置或元件必须具有所描述的特定方位、以特定方位构造和操作,因此这些描述不能理解为对本申请的限制;术语“连接”、“安装”、“固定”等均应做广义理解,举例来说,“连接”可以是多个对象之间的固定连接,也可以是多个对象之间的可拆卸连接,或一体地连接;可以是多个对象之间的直接相连,也可以是多个对象之间的通过中间媒介间接相连。对于本领域的普通技术人员而言,可以根据上述数据地具体情况理解上述术语在本申请中的具体含义。
在本申请的权利要求书、说明书和说明书附图中,术语“一个实施例”、“一些实施例”、“具体实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或特点包含于本申请的实施例或示例中。在本申请的权利要求书、说明书和说明书附图中,对上述术语的示意性表述不一定指的是相同的实施例或实例。而且,描述的具体特征、结构、材料或特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (16)

1.一种残差剪枝方法,其特征在于,包括:
查找第一模型对应的计算图中的目标节点,所述目标节点与所述第一模型中的残差连接结构相对应;
基于所述目标节点遍历所述计算图,确定所述计算图中的目标卷积层;
对所述目标卷积层进行剪枝处理。
2.根据权利要求1所述的残差剪枝方法,其特征在于,所述基于所述目标节点遍历所述计算图,确定所述计算图中的目标卷积层,包括:
沿所述目标节点的输入方向和输出方向遍历所述计算图,直至确定所述目标节点对应的第一算子结构;
在所述第一算子结构与预设算子结构相匹配的情况下,确定所述第一算子结构为所述目标卷积层。
3.根据权利要求2所述的残差剪枝方法,其特征在于,所述目标节点的数量为至少两个;
所述沿所述目标节点的输入方向和输出方向遍历所述计算图,确定所述目标节点对应的第一算子结构,包括:
获取至少两个所述目标节点的排列顺序;
沿所述排列顺序,依次将至少两个所述目标节点作为起点对所述计算图进行遍历。
4.根据权利要求1至3中任一项所述的残差剪枝方法,其特征在于,所述对所述目标卷积层进行剪枝处理,包括:
确定所述目标卷积层中的目标计算通道;
对所述目标计算通道进行裁剪处理。
5.根据权利要求4所述的残差剪枝方法,其特征在于,同一个所述残差连接结构对应多个所述目标卷积层的数量;
所述确定所述目标卷积层中的目标计算通道,包括:
确定多个所述目标卷积层中的第一计算通道,所述第一计算通道为所述目标卷基层所需调用的计算通道;
将多个所述目标卷积层中除第一计算通道外的其余计算通道,确定为目标计算通道。
6.根据权利要求5所述的残差剪枝方法,其特征在于,所述确定多个所述目标卷积层中的第一计算通道,包括:
对每个所述目标卷积层中所需调用的第二计算通道进行掩码处理,得到目标通道掩码;
基于所述目标通道掩码,确定所述第一计算通道。
7.根据权利要求4所述的残差剪枝方法,其特征在于,所述对所述目标计算通道进行裁剪处理之后,还包括:
建立所述目标计算通道与所述目标卷积层之间的映射关系。
8.根据权利要求1至3中任一项所述的残差剪枝方法,其特征在于,所述查找第一模型对应的计算图中的目标节点,包括:
构建所述第一模型对应的所述计算图;
基于目标算子信息,查找所述计算图中的目标节点。
9.根据权利要求8所述的残差剪枝方法,其特征在于,所述构建所述第一模型对应的所述计算图,包括:
获取所述第一模型中的至少两个算子的算子信息,以及所述至少两个算子之间的顺序信息;
基于所述算子信息和所述顺序信息,构建所述计算图。
10.根据权利要求9所述的残差剪枝方法,其特征在于,所述算子信息包括以下任一项:算子节点名称、算子计算参数、算子计算结果。
11.根据权利要求1至3中任一项所述的残差剪枝方法,其特征在于,所述第一模型包括以下任一项:图像分类模型、目标检测模型。
12.一种残差剪枝装置,其特征在于,包括:
查找模块,用于查找第一模型对应的计算图中的目标节点,所述目标节点与所述第一模型中的残差连接结构相对应;
确定模块,用于基于所述目标节点遍历所述计算图,确定所述计算图中的目标卷积层;
处理模块,用于对所述目标卷积层进行剪枝处理。
13.一种残差剪枝装置,其特征在于,包括:
存储器,其上存储有程序或指令;
处理器,用于执行所述程序或指令时实现如权利要求1至11中任一项所述的残差剪枝方法的步骤。
14.一种计算机程序产品,其特征在于,所述计算机程序产品被处理器执行时实现如权利要求1至11中任一项所述的残差剪枝方法的步骤。
15.一种可读存储介质,其上存储有程序或指令,其特征在于,所述程序或指令被处理器执行时实现如权利要求1至11中任一项所述的残差剪枝方法的步骤。
16.一种电子设备,其特征在于,包括:
如权利要求12或13所述的残差剪枝装置;或
如权利要求14所述的计算机程序产品;
如权利要求15所述的可读存储介质。
CN202310213879.7A 2023-03-06 残差剪枝方法、装置、电子设备和可读存储介质 Active CN116468100B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310213879.7A CN116468100B (zh) 2023-03-06 残差剪枝方法、装置、电子设备和可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310213879.7A CN116468100B (zh) 2023-03-06 残差剪枝方法、装置、电子设备和可读存储介质

Publications (2)

Publication Number Publication Date
CN116468100A true CN116468100A (zh) 2023-07-21
CN116468100B CN116468100B (zh) 2024-05-10

Family

ID=

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190385059A1 (en) * 2018-05-23 2019-12-19 Tusimple, Inc. Method and Apparatus for Training Neural Network and Computer Server
US20200342360A1 (en) * 2018-06-08 2020-10-29 Tencent Technology (Shenzhen) Company Limited Image processing method and apparatus, and computer-readable medium, and electronic device
CN112001483A (zh) * 2020-08-14 2020-11-27 广州市百果园信息技术有限公司 一种剪枝神经网络模型的方法和装置
CN112836751A (zh) * 2021-02-03 2021-05-25 歌尔股份有限公司 一种目标检测方法和装置
CN113222138A (zh) * 2021-04-25 2021-08-06 南京大学 一种联合层剪枝和通道剪枝的卷积神经网络压缩方法
US20210256385A1 (en) * 2020-02-14 2021-08-19 Northeastern University Computer-implemented methods and systems for dnn weight pruning for real-time execution on mobile devices
US20210312240A1 (en) * 2020-11-30 2021-10-07 Beijing Baidu Netcom Science And Technology Co., Ltd. Header Model For Instance Segmentation, Instance Segmentation Model, Image Segmentation Method and Apparatus
CN114429208A (zh) * 2022-01-21 2022-05-03 深圳市同为数码科技股份有限公司 基于残差结构剪枝的模型压缩方法、装置、设备及介质
CN114462582A (zh) * 2022-02-25 2022-05-10 腾讯科技(深圳)有限公司 基于卷积神经网络模型的数据处理方法及装置、设备
CN115660066A (zh) * 2022-10-14 2023-01-31 桂林理工大学 一种基于分布差异的卷积神经网络剪枝方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190385059A1 (en) * 2018-05-23 2019-12-19 Tusimple, Inc. Method and Apparatus for Training Neural Network and Computer Server
US20200342360A1 (en) * 2018-06-08 2020-10-29 Tencent Technology (Shenzhen) Company Limited Image processing method and apparatus, and computer-readable medium, and electronic device
US20210256385A1 (en) * 2020-02-14 2021-08-19 Northeastern University Computer-implemented methods and systems for dnn weight pruning for real-time execution on mobile devices
CN112001483A (zh) * 2020-08-14 2020-11-27 广州市百果园信息技术有限公司 一种剪枝神经网络模型的方法和装置
US20210312240A1 (en) * 2020-11-30 2021-10-07 Beijing Baidu Netcom Science And Technology Co., Ltd. Header Model For Instance Segmentation, Instance Segmentation Model, Image Segmentation Method and Apparatus
CN112836751A (zh) * 2021-02-03 2021-05-25 歌尔股份有限公司 一种目标检测方法和装置
CN113222138A (zh) * 2021-04-25 2021-08-06 南京大学 一种联合层剪枝和通道剪枝的卷积神经网络压缩方法
CN114429208A (zh) * 2022-01-21 2022-05-03 深圳市同为数码科技股份有限公司 基于残差结构剪枝的模型压缩方法、装置、设备及介质
CN114462582A (zh) * 2022-02-25 2022-05-10 腾讯科技(深圳)有限公司 基于卷积神经网络模型的数据处理方法及装置、设备
CN115660066A (zh) * 2022-10-14 2023-01-31 桂林理工大学 一种基于分布差异的卷积神经网络剪枝方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
KAI HUANG 等: "Acceleration-Aware Fine-Grained Channel Pruning for Deep Neural Networks via Residual Gating", IEEE, pages 1902 - 1915 *
张亚平 等: "基于YOLOv3的神经网络模型压缩与实现", 微纳电子与智能制造, pages 86 - 91 *
马治楠 等: "基于深层卷积神经网络的剪枝优化", 电子技术应用, pages 125 - 128 *

Similar Documents

Publication Publication Date Title
Pham et al. Complete and accurate clone detection in graph-based models
CN108154198B (zh) 知识库实体归一方法、系统、终端和计算机可读存储介质
JP3787743B2 (ja) 数値解析用メッシュ生成装置
CN109697500B (zh) 数据处理方法、装置、电子设备及存储介质
CN108446280A (zh) 数据更新方法及装置
CN116431837B (zh) 基于大型语言模型和图网络模型的文档检索方法和装置
CN110874528A (zh) 文本相似度的获取方法及装置
CN113902034A (zh) 一种矢量道路数据变化信息识别与提取方法和装置
CN113312175A (zh) 一种算子确定、运行方法及装置
CN116468100B (zh) 残差剪枝方法、装置、电子设备和可读存储介质
CN116468100A (zh) 残差剪枝方法、装置、电子设备和可读存储介质
CN112148819A (zh) 结合rpa和ai的地址识别方法和装置
Asiler et al. Bb-graph: A subgraph isomorphism algorithm for efficiently querying big graph databases
US20220197881A1 (en) Multipath verification of data transforms in a system of systems
CN113568987B (zh) 知识图谱嵌入模型的训练方法、装置、计算机设备
CN114443911A (zh) 一种图数据语义分析方法、装置、设备及可读存储介质
CN115146022A (zh) 用于知识图中的关键词搜索的计算机实现方法
CN115238655A (zh) 一种json数据编辑方法和装置
CN112001483A (zh) 一种剪枝神经网络模型的方法和装置
CN112256637A (zh) 一种基于抽象语法树的文件管理方法、装置及存储介质
JP3389636B2 (ja) データ検索装置
CN116383088B (zh) 一种源代码形式化验证方法、装置、设备及存储介质
CN110032366A (zh) 一种代码定位方法及装置
CN115242612B (zh) 一种故障诊断方法和装置
CN110083679B (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