CN114429208A - 基于残差结构剪枝的模型压缩方法、装置、设备及介质 - Google Patents
基于残差结构剪枝的模型压缩方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN114429208A CN114429208A CN202210071249.6A CN202210071249A CN114429208A CN 114429208 A CN114429208 A CN 114429208A CN 202210071249 A CN202210071249 A CN 202210071249A CN 114429208 A CN114429208 A CN 114429208A
- Authority
- CN
- China
- Prior art keywords
- pruning
- model
- training
- target detection
- detection network
- 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
本发明实施例公开了一种基于残差结构剪枝的模型压缩方法、装置、设备及介质,其中方法包括:对目标检测网络模型进行神经网络训练以获取mAP基线;在对目标检测网络模型的损失函数添加针对BN层缩放因子的范数之后对模型进行训练;在完成训练后,根据缩放因子的大小对训练完成后的目标检测网络模型进行剪枝处理;对剪枝处理后的目标检测网络模型进行微调训练。本发明通过对残差结构的BN层进行剪枝的策略,能够有效地进一步地减少大型卷积神经网络模型运算处理的时间和需要存储空间,成功解决了模型计算量过大以及模型体积过大导致的算力以及储存空间不足的问题,降低了模型运算处理的时间复杂度和空间复杂度,使之可以在边缘设备上部署。
Description
技术领域
本发明涉及图像处理技术,更具体地说是一种基于残差结构剪枝的模型压缩方法、装置、设备及介质。
背景技术
近年来,卷积神经网络(CNN)已成为各种计算机视觉任务的主要方法,例如图像分类,目标检测,语义分割。大规模数据集,高端现代的GPU和新的网络架构使得大型卷积神经网络模型得到了前所未有的开发。然而,拥有更强大能力的大型卷积神经网络模型却往往会要求更多的资源。卷积神经网络模型在实际应用中的部署是主要受制于:模型的大小,运行时的内存需求和浮点运算数的数量要求。
与此同时,人车非检测算法作为智能算法中不可或缺的一项技术,对监控场景中的人、车、非机动进行自动检测与跟踪,将画面中的人车非目标数据进行自动提取,另外还提供了周界报警等应用的逻辑层封装。包括YOLOv5在内的大型卷积神经网络模型在此任务上有着非常不俗的检测准确率与召回率。然而,在某些实际搭载的设备比如智能摄像机等边缘设备,计算资源和存储资源有限,而大型卷积神经网络模型需要执行大量的浮点运算,并且有大量权重参数,比如ResNet需要执行5GFLOPs,有24M个参数,这种情况严重制约了大型卷积神经网络模型的实际应用。因此,现有技术方案无法同时满足高准确率,少参数量/少FLOPs数量的要求。对于人车非监测的应用来说,现有技术无法在保持一定的检测准确率的同时,拥有更高的FPS又支持更小的内存/存储空间。
发明内容
本发明的目的在于克服现有技术的不足,提供了一种基于残差结构剪枝的模型压缩方法、装置、设备及介质。
为实现上述目的,本发明采用以下技术方案:
一方面,基于残差结构剪枝的模型压缩方法,所述方法包括:
对目标检测网络模型进行神经网络训练以获取mAP基线;
在对目标检测网络模型的损失函数添加针对BN层缩放因子的范数之后对模型进行训练;
在完成训练后,根据缩放因子的大小对训练完成后的目标检测网络模型进行剪枝处理;
对剪枝处理后的目标检测网络模型进行微调训练。
其进一步技术方案为:所述的在完成训练后,根据缩放因子的大小对训练完成后的目标检测网络模型进行剪枝处理,具体包括:
提取所有可剪枝BN层的通道的权重以及所有可剪枝BN层对应的正则化参数;
从大到小排列所有可剪枝BN层对应的正则化参数,并根据设定的剪枝幅度确定出正则化参数阈值;
根据正则化参数阈值计算出每一个可剪枝的BN层的剪枝通道和剩余通道,即为目标结构;
创建针对目标结构的新模型;
将正则化参数大于正则化参数阈值的通道的权重从已训练好的目标检测网络模型中复制到新模型中。
其进一步技术方案为:所述针对BN层缩放因子的范数为L1范数。
第二方面,基于残差结构剪枝的模型压缩装置,所述装置包括第一训练单元、第二训练单元、剪枝单元和微调训练单元;
所述第一训练单元,用于对目标检测网络模型进行神经网络训练以获取mAP基线;
所述第二训练单元,用于在对目标检测网络模型的损失函数添加针对BN层缩放因子的范数之后对模型进行训练;
所述剪枝单元,用于在完成训练后,根据缩放因子的大小对训练完成后的目标检测网络模型进行剪枝处理;
所述微调训练单元,用于对剪枝处理后的目标检测网络模型进行微调训练。
其进一步技术方案为:所述剪枝单元包括提取模块、排列模块、计算模块、创建模块和复制模块;
所述提取模块,用于提取所有可剪枝BN层的通道的权重以及所有可剪枝BN层对应的正则化参数;
所述排列模块,用于从大到小排列所有可剪枝BN层对应的正则化参数,并根据设定的剪枝幅度确定出正则化参数阈值;
所述计算模块,用于根据正则化参数阈值计算出每一个可剪枝的BN层的剪枝通道和剩余通道,即为目标结构;
所述创建模块,用于创建针对目标结构的新模型;
所述复制模块,用于将正则化参数大于正则化参数阈值的通道的权重从已训练好的目标检测网络模型中复制到新模型中。
其进一步技术方案为:所述针对BN层缩放因子的范数为L1范数。
第三方面,一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述的方法步骤。
第四方面,一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时,使得所述处理器执行如上述的方法步骤。
本发明与现有技术相比的有益效果是:本发明通过对残差结构的BN层进行剪枝的策略,能够有效地进一步地减少大型卷积神经网络模型运算处理的时间和需要存储空间。可以在保持一定的准确率的同时,尽可能地减少对内存/存储需求和FLOPs数量,在45%剪枝率的情况下,原本的目标检测网络模型在448×448的分辨率下有81.1%的mAP(基线),稀疏训练后,mAP维持在81.5%,而微调训练后,mAP甚至上升到了83.0%。在保持检测精准度的情况下,剪枝后模型与原模型相比,原模型大小为24.7MB,剪枝后模型大小为9.5MB,减小了38%。而从计算量/前向速度的角度出发,原模型计算量为4.87GFLOPs,剪枝后的模型计算量为1.35GFLOPs,计算量减少了28%,从而成功解决了模型计算量过大以及模型体积过大导致的算力以及储存空间不足的问题,降低了模型运算处理的时间复杂度和空间复杂度,使之可以在边缘设备上部署。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明技术手段,可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征及优点能够更明显易懂,以下特举较佳实施例,详细说明如下。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明具体实施例提供的基于残差结构剪枝的模型压缩方法的流程图一;
图2为本发明具体实施例提供的基于残差结构剪枝的模型压缩方法的流程图二;
图3为本发明具体实施例提供的基于残差结构剪枝的模型压缩装置的示意性框图一;
图4为本发明具体实施例提供的基于残差结构剪枝的模型压缩装置的示意性框图二;
图5为本发明具体实施例提供的一种计算机设备的的示意性框图;
图6为本发明具体实施例提供的剪枝处理的逻辑图。
具体实施方式
为了更充分理解本发明的技术内容,下面结合具体实施例对本发明的技术方案进一步介绍和说明,但不局限于此。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
本发明所要解决最核心的技术问题便是如何降低大型卷积神经网络模型运算处理的时间复杂度和空间复杂度,使其可以在如智能摄像机之类的边缘设备上部署。
解决此类问题的常用方法是模型压缩。模型剪枝,作为模型压缩中最常用的方法之一,近年来也吸引了许多研究者的目光,涌现了许多可行的神经网络剪枝策略和方案。然而,对于类似于ResNet和YOLO(目标检测网络)这样由残差结构组成的神经网络,所有的剪枝策略都是保持原有残差结构不变的。这就造成可剪枝层的选择非常的局限,整体剪枝幅度不足。一般的理论认为:由于残差的特殊结构,经过剪枝的分支需要与不剪枝的分支相加,导致如果剪枝的话,加法操作的两个对象会因为通道数不匹配而相加失败。然而,无论是常规的残差模块还是瓶颈的残差模块,但是可以通过本发明进行剪枝,从而达到提高剪枝幅度,进一步地减少大型卷积神经网络模型运算处理的时间和需要存储空间。
从人车非监测这个应用的角度来说,此前并无结构化剪枝在此领域非常成功地商业化的例子。更重要的是,本发明可以在保持一定的准确率的同时,尽可能地提升网络前向速度和减少内存/存储需求,从而使得视频应用拥有更高的FPS,且整个系统对硬件的要求会有显著的降低。
在介绍本发明具体实施例之前,首先介绍一下本发明为何要采用以下的剪枝策略,以及采用这种剪枝策略为何能够解决核心的技术问题。
一般的大型卷积神经网络模型的参数存在着巨大的冗余。对于训练好的网络模型,只需要给定大约5%的模型参数,便能完成模型的推断并且能够重构出剩余的模型参数。这些冗余在神经网络训练过程中是需要的,但是对于模型推断实际应用来说,神经网络参数的冗余往往意味着计算和存储的多余消耗,因此需要对网络模型进行压缩精简,在保证模型高准确度的同时,尽可能地降低其复杂度,从而达到资源与性能上的平衡。与一般以单个权重为最小单位的剪枝方法相比,以通道为最小单位的结构化剪枝可以使剪枝后的模型在大多数硬件设备上更高效地运行。最关键的问题便是找出冗余度较高的通道并把通道进行剪枝。
为了找出大型卷积神经网络中冗余度较高的通道,常见的思路是给每一个通道赋一个缩放因子,然后在稀疏训练时,对原来的损失函数中增加了一项对这一缩放因子的L1范数限制,使之变得更加稀疏。然而,对于大多数大型卷积神经网络,BN层之中的scale因子γ本身就是一个很合适的且与通道一一对应的缩放因子。具体的,BN层的作用:
其中μ为批次权重均值,σ为批次权重的标准差,而γ便是上文所述缩放因子。对于BN层而言,γ实际上的作用就是在网络空间特征的通道维度对输入的网络特征进行批归一化操作,从而有利于梯度的前向计算与反向传播,并且对于大多数现代网络模型,BN层是其不可或缺的一部分。因而可以利用BN层的缩放因子γ来代替引入的通道选择层的参数,通过对缩放因子γ施加L1正则化,达到稀疏化通道因子的目的。
把γ作为L1范数限制加到损失函数中,我们得到:
通过在损失函数中添加γ的L1正则约束,可以实现γ的稀疏化。在有了包括稀疏缩放因子的网络模型后,我们便可以进行剪枝操作。
对于传统的剪枝策略来说,通常在处理残差结构时会采取保守的策略,即不对残差结构进行剪枝。本发明大胆地对残差结构的一些卷积层/BN层进行剪枝,结果也证明了这样的剪枝策略能够有效地进一步地减少大型卷积神经网络模型运算处理的时间和需要存储空间。
下面以YOLOv5人车非检测模型为例,通过具体实施例来介绍本发明,当然,本发明还可以适用于其他的目标检测网络(YOLO)进行压缩,例如,对YOLOv3。
如图1所示,基于残差结构剪枝的模型压缩方法,该方法包括以下步骤:
S10、对目标检测网络模型进行神经网络训练以获取mAP基线。
对YOLOv5人车非检测原模型进行训练主要目的是获取mAP基线。mAP基线即为平均精度均值,这个mAP基线是用来跟微调训练后的模型的mAP基线做对比的,只有微调训练后模型的mAP接近或者大于这个基线mAP才能说明剪枝后的模型是基本没有精度损失的。
S20、在对目标检测网络模型的损失函数添加针对BN层缩放因子的范数之后对模型进行训练。
对YOLOv5人车非检测原模型的缩放因子添加L1正则约束后进行训练。
优选地,针对BN层缩放因子的范数为L1范数。L1范数是指向量中各个元素绝对值之和,也称作“稀疏规则算子”(Lasso regularization)。
具体的,训练所使用的数据集由2368663图片组成,成分如下:20%的网络开源公开数据集,7%自主收集数据集,25%纯背景,25%数据增广数据集以及24%高质量数据集。测试集则由17871张图片组成,共涵盖39323人目标,36981车目标以及11008非机动车目标。本次实验中,为了节省训练时间,设置训练图片的尺寸为448×448,训练数据的batch size为512;模型的优化方法均为动量SGD,其中学习率LR调度策略为one_cycle,而对于稀疏训练的正则化参数,初始值为0.001,调整策略为线性衰减。稀疏化训练与微调训练轮次数均为400。
S30、在完成训练后,根据缩放因子的大小对训练完成后的目标检测网络模型进行剪枝处理。
如图6所示,在完成训练后,根据缩放因子的大小对训练完成后的YOLOv5人车非检测模型进行剪枝处理。
如图2所示,步骤S30具体包括:
S301、提取所有可剪枝BN层的通道的权重以及所有可剪枝BN层对应的正则化参数。
S302、从大到小排列所有可剪枝BN层对应的正则化参数,并根据设定的剪枝幅度确定出正则化参数阈值。
S303、根据正则化参数阈值计算出每一个可剪枝的BN层的剪枝通道和剩余通道,即为目标结构。
S304、创建针对目标结构的新模型。
S305、将正则化参数大于正则化参数阈值的通道的权重从已训练好的目标检测网络模型中复制到新模型中。
假如,正则化训练后的模型的某一层有128个通道,如果创建了一个有80个通道的新模型,则把正则化训练后的模型的这80个通道的权重复制过来,剩下的48个通道就不作处理。
S40、对剪枝处理后的目标检测网络模型进行微调训练。
对完成剪枝的YOLOv5人车非检测模型进行微调训练以减小剪枝对模型带来的精度损失,得到微调后的模型。
微调训练的参数与正则化训练保持一致,除了取消了损失函数中的正则化限制。最后,再根据最终剪枝幅度和模型精度的实际需求进行多轮这样的循环。
重复步骤S20、S30和S40之后,相当于:正则化训练-剪枝-微调训练-正则化训练-剪枝-微调训练-正则化训练-剪枝-微调训练.....重复这三个过程,直到得到的模型符合预设模型剪枝阈值的条件(如模型大小,前向速度),且将符合所述条件的所述深度神经网络模型作为最终模型。
在一些实施例中,步骤S40之后还包括以下步骤:
S50、将最终模型进行平台移植。
在微调训练后,便得到了最终的模型,但是还需要一系列的流程将算法落地到实际应用之中,这个流程便是平台移植。
具体地,步骤S50以下步骤:
S501、框架模型转换。
通过脚本处理,将训练框架使用的模型转换成芯片平台支持的框架模型。
S502、转换验证。
验证框架转换的精度损失在接受范围内。
S503、芯片平台量化。
通过量化工具,将训练好的网络模型转换为移植模型,并且使用向量比对工具对移植前后的运行结果作检查,确认移植无错误且精度损失在可接受范围内。
S504、量化验证。
验证芯片平台的网络层的可移植性是否良好,表现良好的特征是:一,网络层支持转换;二,精度损失在可接受范围内。
S505、PC端仿真测试。
在移植模型于开发板上运行之前,需要在PC端进行仿真测试,只需加载相应仿真库。仿真测试分为功能仿真、指令仿真和性能仿真。功能仿真仅从功能一致性的角度去模拟硬件,有CUDA加速功能,速度较快。指令仿真从指令一致性的角度去模拟硬件,速度较慢。性能仿真输出各层的带宽、cycle数仿真结果。
S506、开发板测试。
在开发板上运行测试程序,输入测试图像,运行前向网络,输出识别结果。最终结果应关注两个问题:一是算法检测结果是否正确,二是与移植前模型的运行结果是否差距较大。
由上述可知,从人车非监测这个应用的角度来说,本发明可以在保持一定的准确率的同时,尽可能地减少大型卷积神经网络(YOLOv5)对内存/存储需求和FLOPs数量。在我们的数据集中,在45%剪枝率的情况下,原本的YOLOv5在448×448的分辨率下有81.1%的mAP(基线)。稀疏训练后,mAP维持在81.5%,而微调训练后,mAP甚至上升到了83.0%。
在保持检测精准度的情况下,上述的大型卷积神经网络剪枝模型与原模型相比,原模型大小为24.7MB,剪枝后模型大小为9.5MB,减小了38%。而从计算量/前向速度的角度出发,原模型计算量为4.87GFLOPs,剪枝后的模型计算量为1.35GFLOPs,计算量减少了28%。本发明成功解决了模型计算量过大以及模型体积过大导致的算力以及储存空间不足的问题。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
对应于上述的基于残差结构剪枝的模型压缩方法,本发明具体实施例还提供了一种基于残差结构剪枝的模型压缩装置。
如图3所示,基于残差结构剪枝的模型压缩装置100,包括第一训练单元110、第二训练单元120、剪枝单元130和微调训练单元140。
第一训练单元110,用于对目标检测网络模型进行神经网络训练以获取mAP基线。
对YOLOv5人车非检测原模型进行训练主要目的是以获取mAP基线。
mAP基线即为平均精度均值,这个mAP基线是用来跟微调训练后的模型的mAP基线做对比的,只有微调训练后模型的mAP接近或者大于这个基线mAP才能说明剪枝后的模型是基本没有精度损失的。
第二训练单元120,用于在对目标检测网络模型的损失函数添加针对BN层缩放因子的范数之后对模型进行训练。
对YOLOv5人车非检测原模型的缩放因子添加L1正则约束后进行训练。
优选地,针对BN层缩放因子的范数为L1范数。L1范数是指向量中各个元素绝对值之和,也称作“稀疏规则算子”(Lasso regularization)。
具体的,训练所使用的数据集由2368663图片组成,成分如下:20%的网络开源公开数据集,7%自主收集数据集,25%纯背景,25%数据增广数据集以及24%高质量数据集。测试集则由17871张图片组成,共涵盖39323人目标,36981车目标以及11008非机动车目标。本次实验中,为了节省训练时间,设置训练图片的尺寸为448×448,训练数据的batch size为512;模型的优化方法均为动量SGD,其中学习率LR调度策略为one_cycle,而对于稀疏训练的正则化参数,初始值为0.001,调整策略为线性衰减。稀疏化训练与微调训练轮次数均为400。
剪枝单元130,用于在完成训练后,根据缩放因子的大小对训练完成后的目标检测网络模型进行剪枝处理。
如图6所示,在完成训练后,根据缩放因子的大小对训练完成后的YOLOv5人车非检测模型进行剪枝处理。
如图4所示,剪枝单元130包括提取模块131、排列模块132、计算模块133、创建模块134和复制模块135。
提取模块131,用于提取所有可剪枝BN层的通道的权重以及所有可剪枝BN层对应的正则化参数。
排列模块132,用于从大到小排列所有可剪枝BN层对应的正则化参数,并根据设定的剪枝幅度确定出正则化参数阈值。
计算模块133,用于根据正则化参数阈值计算出每一个可剪枝的BN层的剪枝通道和剩余通道,即为目标结构。
创建模块134,用于创建针对目标结构的新模型。
复制模块135,用于将正则化参数大于正则化参数阈值的通道的权重从已训练好的目标检测网络模型中复制到新模型中。
假如,正则化训练后的模型的某一层有128个通道,如果创建了一个有80个通道的新模型,则把正则化训练后的模型的这80个通道的权重复制过来,剩下的48个通道就不作处理。
微调训练单元140,用于对剪枝处理后的目标检测网络模型进行微调训练。
对完成剪枝的YOLOv5人车非检测模型进行微调训练以减小剪枝对模型带来的精度损失,得到微调后的模型。
微调训练的参数与正则化训练保持一致,除了取消了损失函数中的正则化限制。最后,再根据最终剪枝幅度和模型精度的实际需求进行多轮这样的循环。
重复第二训练单元、剪枝单元和微调训练单元所执行的过程之后,相当于:正则化训练-剪枝-微调训练-正则化训练-剪枝-微调训练-正则化训练-剪枝-微调训练.....重复这三个过程,直到得到的模型符合预设模型剪枝阈值的条件(如模型大小,前向速度),且将符合所述条件的所述深度神经网络模型作为最终模型。
在一些实施例中,基于残差结构剪枝的模型压缩装置100还包括平台移植单元。
平台移植单元,用于将最终模型进行平台移植。
在微调训练后,便得到了最终的模型,但是还需要一系列的流程将算法落地到实际应用之中,这个流程便是平台移植。
具体地,平台移植单元包括转换模块、转换验证模块、量化模块、量化验证模块、仿真测试模块和开发板测试模块。
转换模块,用于通过脚本处理,将训练框架使用的模型转换成芯片平台支持的框架模型。
转换验证模块,用于验证框架转换的精度损失在接受范围内。
量化模块,用于将训练好的网络模型转换为移植模型,并且使用向量比对工具对移植前后的运行结果作检查,确认移植无错误且精度损失在可接受范围内。
通过量化工具,将训练好的网络模型转换为移植模型,并且使用向量比对工具对移植前后的运行结果作检查,确认移植无错误且精度损失在可接受范围内。
量化验证模块,用于验证芯片平台的网络层的可移植性是否良好。
验证芯片平台的网络层的可移植性是否良好,表现良好的特征是:一,网络层支持转换;二,精度损失在可接受范围内。
仿真测试模块,用于在移植模型于开发板上运行之前,在PC端进行仿真测试。
在移植模型于开发板上运行之前,需要在PC端进行仿真测试,只需加载相应仿真库。仿真测试分为功能仿真、指令仿真和性能仿真。功能仿真仅从功能一致性的角度去模拟硬件,有CUDA加速功能,速度较快。指令仿真从指令一致性的角度去模拟硬件,速度较慢。性能仿真输出各层的带宽、cycle数仿真结果。
开发板测试模块,用于在开发板上运行测试程序,输入测试图像,运行前向网络,输出识别结果。
最终结果应关注两个问题:一是算法检测结果是否正确,二是与移植前模型的运行结果是否差距较大。
由上述可知,从人车非监测这个应用的角度来说,本发明可以在保持一定的准确率的同时,尽可能地减少大型卷积神经网络(YOLOv5)对内存/存储需求和FLOPs数量。在我们的数据集中,在45%剪枝率的情况下,原本的YOLOv5在448×448的分辨率下有81.1%的mAP(基线)。稀疏训练后,mAP维持在81.5%,而微调训练后,mAP甚至上升到了83.0%。
在保持检测精准度的情况下,上述的大型卷积神经网络剪枝模型与原模型相比,原模型大小为24.7MB,剪枝后模型大小为9.5MB,减小了38%。而从计算量/前向速度的角度出发,原模型计算量为4.87GFLOPs,剪枝后的模型计算量为1.35GFLOPs,计算量减少了28%。本发明成功解决了模型计算量过大以及模型体积过大导致的算力以及储存空间不足的问题。
如图5所示,本发明具体实施例还提供了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如上述的基于残差结构剪枝的模型压缩方法步骤。
该计算机设备700可以是终端或服务器。该计算机设备700包括通过系统总线710连接的处理器720、存储器和网络接口750,其中,存储器可以包括非易失性存储介质730和内存储器740。
该非易失性存储介质730可存储操作系统731和计算机程序732。该计算机程序732被执行时,可使得处理器720执行任意一种基于残差结构剪枝的模型压缩方法。
该处理器720用于提供计算和控制能力,支撑整个计算机设备700的运行。
该内存储器740为非易失性存储介质730中的计算机程序732的运行提供环境,该计算机程序732被处理器720执行时,可使得处理器720执行任意一种基于残差结构剪枝的模型压缩方法。
该网络接口750用于进行网络通信,如发送分配的任务等。本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备700的限定,具体的计算机设备700可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。其中,所述处理器720用于运行存储在存储器中的程序代码,以实现以下步骤:
对目标检测网络模型进行神经网络训练以获取mAP基线;
在对目标检测网络模型的损失函数添加针对BN层缩放因子的范数之后对模型进行训练;
在完成训练后,根据缩放因子的大小对训练完成后的目标检测网络模型进行剪枝处理;
对剪枝处理后的目标检测网络模型进行微调训练。
其进一步技术方案为:所述的在完成训练后,根据缩放因子的大小对训练完成后的目标检测网络模型进行剪枝处理,具体包括:
提取所有可剪枝BN层的通道的权重以及所有可剪枝BN层对应的正则化参数;
从大到小排列所有可剪枝BN层对应的正则化参数,并根据设定的剪枝幅度确定出正则化参数阈值;
根据正则化参数阈值计算出每一个可剪枝的BN层的剪枝通道和剩余通道,即为目标结构;
创建针对目标结构的新模型;
将正则化参数大于正则化参数阈值的通道的权重从已训练好的目标检测网络模型中复制到新模型中。
其进一步技术方案为:所述针对BN层缩放因子的范数为L1范数。
应当理解,在本申请实施例中,处理器720可以是中央处理单元(CentralProcessing Unit,CPU),该处理器720还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本领域技术人员可以理解,图5中示出的计算机设备700结构并不构成对计算机设备700的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术作出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明中各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述装置中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (8)
1.基于残差结构剪枝的模型压缩方法,其特征在于,所述方法包括:
对目标检测网络模型进行神经网络训练以获取mAP基线;
在对目标检测网络模型的损失函数添加针对BN层缩放因子的范数之后对模型进行训练;
在完成训练后,根据缩放因子的大小对训练完成后的目标检测网络模型进行剪枝处理;
对剪枝处理后的目标检测网络模型进行微调训练。
2.根据权利要求1所述的基于残差结构剪枝的模型压缩方法,其特征在于,所述的在完成训练后,根据缩放因子的大小对训练完成后的目标检测网络模型进行剪枝处理,具体包括:
提取所有可剪枝BN层的通道的权重以及所有可剪枝BN层对应的正则化参数;
从大到小排列所有可剪枝BN层对应的正则化参数,并根据设定的剪枝幅度确定出正则化参数阈值;
根据正则化参数阈值计算出每一个可剪枝的BN层的剪枝通道和剩余通道,即为目标结构;
创建针对目标结构的新模型;
将正则化参数大于正则化参数阈值的通道的权重从已训练好的目标检测网络模型中复制到新模型中。
3.根据权利要求1所述的基于残差结构剪枝的模型压缩方法,其特征在于,所述针对BN层缩放因子的范数为L1范数。
4.基于残差结构剪枝的模型压缩装置,其特征在于,所述装置包括第一训练单元、第二训练单元、剪枝单元和微调训练单元;
所述第一训练单元,用于对目标检测网络模型进行神经网络训练以获取mAP基线;
所述第二训练单元,用于在对目标检测网络模型的损失函数添加针对BN层缩放因子的范数之后对模型进行训练;
所述剪枝单元,用于在完成训练后,根据缩放因子的大小对训练完成后的目标检测网络模型进行剪枝处理;
所述微调训练单元,用于对剪枝处理后的目标检测网络模型进行微调训练。
5.根据权利要求4所述的基于残差结构剪枝的模型压缩装置,其特征在于,所述剪枝单元包括提取模块、排列模块、计算模块、创建模块和复制模块;
所述提取模块,用于提取所有可剪枝BN层的通道的权重以及所有可剪枝BN层对应的正则化参数;
所述排列模块,用于从大到小排列所有可剪枝BN层对应的正则化参数,并根据设定的剪枝幅度确定出正则化参数阈值;
所述计算模块,用于根据正则化参数阈值计算出每一个可剪枝的BN层的剪枝通道和剩余通道,即为目标结构;
所述创建模块,用于创建针对目标结构的新模型;
所述复制模块,用于将正则化参数大于正则化参数阈值的通道的权重从已训练好的目标检测网络模型中复制到新模型中。
6.根据权利要求4所述的基于残差结构剪枝的模型压缩装置,其特征在于,所述针对BN层缩放因子的范数为L1范数。
7.一种计算机设备,其特征在于,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1~3中任意一项所述的方法步骤。
8.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时,使得所述处理器执行如权利要求1~3任意一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210071249.6A CN114429208A (zh) | 2022-01-21 | 2022-01-21 | 基于残差结构剪枝的模型压缩方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210071249.6A CN114429208A (zh) | 2022-01-21 | 2022-01-21 | 基于残差结构剪枝的模型压缩方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114429208A true CN114429208A (zh) | 2022-05-03 |
Family
ID=81313453
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210071249.6A Pending CN114429208A (zh) | 2022-01-21 | 2022-01-21 | 基于残差结构剪枝的模型压缩方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114429208A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114700957A (zh) * | 2022-05-26 | 2022-07-05 | 北京云迹科技股份有限公司 | 模型低算力需求的机器人控制方法及装置 |
CN114781640A (zh) * | 2022-06-16 | 2022-07-22 | 阿里巴巴达摩院(杭州)科技有限公司 | 模型部署方法、系统、存储介质以及电子设备 |
CN116468100A (zh) * | 2023-03-06 | 2023-07-21 | 美的集团(上海)有限公司 | 残差剪枝方法、装置、电子设备和可读存储介质 |
-
2022
- 2022-01-21 CN CN202210071249.6A patent/CN114429208A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114700957A (zh) * | 2022-05-26 | 2022-07-05 | 北京云迹科技股份有限公司 | 模型低算力需求的机器人控制方法及装置 |
CN114700957B (zh) * | 2022-05-26 | 2022-08-26 | 北京云迹科技股份有限公司 | 模型低算力需求的机器人控制方法及装置 |
CN114781640A (zh) * | 2022-06-16 | 2022-07-22 | 阿里巴巴达摩院(杭州)科技有限公司 | 模型部署方法、系统、存储介质以及电子设备 |
CN116468100A (zh) * | 2023-03-06 | 2023-07-21 | 美的集团(上海)有限公司 | 残差剪枝方法、装置、电子设备和可读存储介质 |
CN116468100B (zh) * | 2023-03-06 | 2024-05-10 | 美的集团(上海)有限公司 | 残差剪枝方法、装置、电子设备和可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114429208A (zh) | 基于残差结构剪枝的模型压缩方法、装置、设备及介质 | |
CN111950723B (zh) | 神经网络模型训练方法、图像处理方法、装置及终端设备 | |
CN112163601B (zh) | 图像分类方法、系统、计算机设备及存储介质 | |
CN112529146B (zh) | 神经网络模型训练的方法和装置 | |
CN110929564B (zh) | 基于对抗网络的指纹模型生成方法以及相关装置 | |
CN114004352B (zh) | 一种仿真实现方法、神经网络编译器以及计算机可读存储介质 | |
CN115018727A (zh) | 一种多尺度图像修复方法、存储介质及终端 | |
CN113505848A (zh) | 模型训练方法和装置 | |
CN111369430A (zh) | 基于移动深度学习引擎的移动端人像智能背景替换方法 | |
CN114925320B (zh) | 一种数据处理方法及相关装置 | |
CN113298931B (zh) | 一种物体模型的重建方法、装置、终端设备和存储介质 | |
CN110807428A (zh) | 煤类样品的识别方法、装置、服务器及存储介质 | |
CN115631192B (zh) | 一种阀门试压机的控制方法、装置、设备及介质 | |
CN112287950A (zh) | 特征提取模块压缩方法、图像处理方法、装置、介质 | |
US20240161474A1 (en) | Neural Network Inference Acceleration Method, Target Detection Method, Device, and Storage Medium | |
US20230021551A1 (en) | Using training images and scaled training images to train an image segmentation model | |
CN116543295A (zh) | 一种基于退化图像增强的轻量化水下目标检测方法及系统 | |
CN112288748B (zh) | 一种语义分割网络训练、图像语义分割方法及装置 | |
CN113033422A (zh) | 基于边缘计算的人脸检测方法、系统、设备和存储介质 | |
CN114582005B (zh) | 一种人脸识别方法及系统 | |
CN113947612B (zh) | 基于前景背景分离的视频异常检测方法 | |
CN116403064B (zh) | 图片处理方法、系统、设备及介质 | |
CN115689902A (zh) | 图像修复模型训练方法、图像修复方法、装置及存储介质 | |
CN116826734A (zh) | 一种基于多输入模型的光伏发电功率预测方法及装置 | |
CN117934852A (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 |