CN116402117B - 图像分类卷积神经网络剪枝方法及芯粒器件数据分配方法 - Google Patents
图像分类卷积神经网络剪枝方法及芯粒器件数据分配方法 Download PDFInfo
- Publication number
- CN116402117B CN116402117B CN202310666689.0A CN202310666689A CN116402117B CN 116402117 B CN116402117 B CN 116402117B CN 202310666689 A CN202310666689 A CN 202310666689A CN 116402117 B CN116402117 B CN 116402117B
- Authority
- CN
- China
- Prior art keywords
- pruning
- neural network
- convolutional neural
- filter
- network model
- 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.)
- Active
Links
- 238000013138 pruning Methods 0.000 title claims abstract description 141
- 238000013527 convolutional neural network Methods 0.000 title claims abstract description 110
- 239000007771 core particle Substances 0.000 title claims abstract description 53
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000009826 distribution Methods 0.000 title claims abstract description 14
- 238000004364 calculation method Methods 0.000 claims abstract description 24
- 238000012549 training Methods 0.000 claims abstract description 15
- 230000002776 aggregation Effects 0.000 claims abstract description 7
- 238000004220 aggregation Methods 0.000 claims abstract description 7
- 239000011159 matrix material Substances 0.000 claims description 17
- 238000003860 storage Methods 0.000 claims description 15
- 238000003062 neural network model Methods 0.000 claims description 12
- 230000006870 function Effects 0.000 claims description 11
- 239000013598 vector Substances 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 10
- 230000006835 compression Effects 0.000 claims description 8
- 238000007906 compression Methods 0.000 claims description 8
- 230000003139 buffering effect Effects 0.000 claims description 3
- 238000012544 monitoring process Methods 0.000 claims description 3
- 238000004422 calculation algorithm Methods 0.000 claims description 2
- 239000000758 substrate Substances 0.000 claims 2
- 238000013528 artificial neural network Methods 0.000 abstract description 15
- 238000012545 processing Methods 0.000 abstract description 11
- 238000012360 testing method Methods 0.000 abstract description 2
- 239000010410 layer Substances 0.000 description 44
- 230000008569 process Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 3
- 238000005520 cutting process Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000010420 art technique Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000008188 pellet Substances 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
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/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/762—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using clustering, e.g. of similar faces in social networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/764—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
- G06V10/765—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects using rules for classification or partitioning the feature space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/774—Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T10/00—Road transport of goods or passengers
- Y02T10/10—Internal combustion engine [ICE] based vehicles
- Y02T10/40—Engine management systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Databases & Information Systems (AREA)
- Multimedia (AREA)
- Medical Informatics (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Image Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及图像处理技术领域,特别涉及一种图像分类卷积神经网络剪枝方法及芯粒器件数据分配方法,其中剪枝方法包括:获取训练好的原始模型;对每层网络中的各滤波器分别进行聚类,得到第一聚类结果;对原始模型进行随机剪枝;对模型进行重训练,并对每层网络中的各滤波器分别进行聚类,得到当前的第二聚类结果;对当前模型进行重剪枝;测试重剪枝后的模型,若识别准确率下降超过预设阈值,则根据第一聚类结果和增枝率新增加滤波器,再进行训练,对每层网络中的各滤波器分别进行聚类,更新当前的第二聚类结果后,返回重剪枝的步骤,否则结束剪枝,得到最终的模型。本发明能够对大型神经网络进行压缩以减少算力。
Description
技术领域
本发明涉及图像处理技术领域,特别涉及一种图像分类卷积神经网络剪枝方法及芯粒器件数据分配方法。
背景技术
卷积神经网络(CNN)是深度学习中的常见模型,在图像处理中应用广泛,能够提取图像特征,实现图像分类。增加神经网络复杂度,可提升模型性能,但同时伴随着高额的存储空间与计算资源消耗,这限制了深度神经网络在移动端上的使用。
已有研究表明,卷积神经网络模型中存在大量冗余滤波器,参与主要计算并对最终结果产生影响的只占总数5%~10%。神经网络压缩旨在不影响神经网络性能的前提下,通过降低模型的复杂度以减少算力,实现神经网络在移动端等设备上的应用。
发明内容
针对上述至少一部分不足之处,本发明实施例提供了一种图像分类卷积神经网络剪枝方法,能够对大型卷积神经网络进行剪枝以实现网络压缩。
第一方面,本发明实施例提供了一种图像分类卷积神经网络剪枝方法,包括如下步骤:
获取已经训练好的用于进行图像分类识别的原始卷积神经网络模型;
根据滤波器的相似性,对所述原始卷积神经网络模型每层网络中的各滤波器分别进行聚类,得到第一聚类结果;
根据预设的第一剪枝率,对所述原始卷积神经网络模型中的滤波器进行随机剪枝;所述第一剪枝率包括每层网络的剪枝率;
对随机剪枝后的卷积神经网络模型进行重训练,并根据滤波器的相似性,对重训练后的卷积神经网络模型每层网络中的各滤波器分别进行聚类,得到当前的第二聚类结果;
根据当前的第二聚类结果和预设的第二剪枝率,对当前卷积神经网络模型中的滤波器进行重剪枝;所述第二剪枝率包括每层网络的剪枝率,且每层网络的剪枝率均不超过所述第一剪枝率中对应层网络的剪枝率;
确定重剪枝后的卷积神经网络模型的识别准确率相比随机剪枝后的卷积神经网络模型的识别准确率,是否下降超过预设阈值;
若是,则根据所述第一聚类结果和预设增枝率,对重剪枝后的卷积神经网络模型新增加滤波器,并对新增加滤波器的卷积神经网络模型进行再训练;根据滤波器的相似性,对再训练后的卷积神经网络模型每层网络中的各滤波器分别进行聚类,得到当前的第二聚类结果后,基于当前的第二聚类结果返回执行所述重剪枝的步骤;
若否,则结束剪枝,将当前得到的卷积神经网络模型作为最终的卷积神经网络模型。
可选地,每层网络中的各滤波器的聚类方式为:
对该层网络中各滤波器的三维权重矩阵进行降维,将三维权重矩阵的高度维度压缩为1;压缩后得到的二维权重矩阵宽度维度不变,行向量对应滤波器通道,相应权值变为高度维度上的权值平均值;
以对应的压缩后二维权重矩阵之间的相似度作为损失函数进行计算,得到n个聚类;n为根据需要设置的聚类类别数。
可选地,两个二维权重矩阵之间的相似度通过如下方式计算:
逐行计算一个二维权重矩阵的行向量与另一个二维权重矩阵的每一行向量之间的马氏距离;
对所有马氏距离求和,作为两个二维权重矩阵之间的相似度。
可选地,所述对随机剪枝后的卷积神经网络模型进行重训练,包括:
初始化随机剪枝后的卷积神经网络模型中滤波器的权重;
采用训练所述原始卷积神经网络模型的图像样本集,重新训练随机剪枝后的卷积神经网络模型至收敛。
可选地,所述根据当前的第二聚类结果和预设的第二剪枝率,对当前卷积神经网络模型中的滤波器进行重剪枝,包括:
针对每层网络均执行如下操作:
根据所述第二剪枝率,确定该层网络对应的剪枝率;
根据当前的第二聚类结果,确定该层网络中各聚类类别对应滤波器的数量;
根据该层网络对应的剪枝率及各聚类类别对应滤波器的数量,为各聚类类别分配剪除滤波器指标,分配的剪除滤波器指标与相应聚类类别中滤波器的数量成正比;
根据分配的剪除滤波器指标,对各聚类类别随机剪除滤波器。
可选地,所述根据所述第一聚类结果和预设增枝率,对重剪枝后的卷积神经网络模型新增加滤波器,包括:
针对每层网络均执行如下操作:
根据所述预设增枝率,确定该层网络对应的增枝率;
根据所述第一聚类结果,确定该层网络中各聚类类别对应滤波器的数量;
根据该层网络对应的增枝率及各聚类类别对应滤波器的数量,为各聚类类别分配新增滤波器指标,分配的新增滤波器指标与相应聚类类别中滤波器的数量成正比;
根据分配的新增滤波器指标,对各聚类类别新增滤波器;其中,新增滤波器从所述第一聚类结果中同一聚类类别下的滤波器中随机选择,且不与该层网络中已有滤波器重复。
可选地,所述对新增加滤波器的卷积神经网络模型进行再训练,包括:
对于原有滤波器,保留其在重训练的卷积神经网络模型中的权重;
对于新增滤波器,保留其在所述原始卷积神经网络模型中的权重;
继续训练当前的卷积神经网络模型至收敛。
第二方面,本发明实施例还提供了一种芯粒器件数据分配方法,应用于芯粒器件;所述芯粒器件包括输入输出端、集中缓存区、微控制器和多个芯粒资源单元;所述输入输出端用于交互数据,所述集中缓存区用于缓存数据,所述微控制器用于根据输入指令控制芯粒资源单元的连接关系,多个所述芯粒资源单元呈阵列式排布;
该芯粒器件数据分配方法包括如下步骤:
获取待分配芯粒器件的算力资源统计表;所述算力资源统计表的记载信息包括各芯粒资源单元的尺寸、位置、连接关系及算力大小;
基于如上述任一项所述的图像分类卷积神经网络剪枝方法得到的最终的卷积神经网络模型,构建对应的有向无环图;所述有向无环图用于表示卷积神经网络模型中各算子的运算顺序;
基于所述有向无环图和所述算力资源统计表,为各芯粒资源单元分配计算任务;各芯粒资源单元采用权重固定数据流进行计算;
监控芯粒器件的工作状态,并定期基于芯粒器件的工作状态重新为各芯粒资源单元分配计算任务。
第三方面,本发明实施例还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时,实现本说明书任一实施例所述的方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行本说明书任一实施例所述的方法。
本发明实施例提供了一种图像分类卷积神经网络剪枝方法、电子设备及存储介质,本发明先对原始卷积神经网络进行随机剪枝,以快速压缩网络规模,然后依据滤波器的相似性进行有限制性的剪枝,以剪除可替代性高的滤波器并尽量保持模型精度,最后测试模型性能,若性能不佳,则依据滤波器的相似性再为模型新增滤波器,通过反复调整,能够得到性能较佳且规模较小的神经网络模型,有效减少图像分类卷积神经网络所需算力,为其在移动端等设备上应用提供技术支持。
本发明实施例还提供了一种芯粒器件数据分配方法,将剪枝后的卷积神经网络模型运算任务分配给不同的芯粒单元执行,能够实现数据的并行处理,提高处理效率,为在移动端等设备上使用深度卷积神经网络提供了技术支持。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种图像分类卷积神经网络剪枝方法流程图;
图2是本发明一实施例提供的一种芯粒器件结构示意图;
图3是本发明一实施例提供的一种芯粒器件数据分配方法流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如前所述,卷积神经网络是深度学习中的常见模型,在图像处理中应用广泛,能够提取图像特征,实现图像分类。增加神经网络复杂度,可提升模型性能,但同时伴随着高额的存储空间与计算资源消耗,这限制了深度神经网络在移动端上的使用。已有研究表明,卷积神经网络模型中存在大量冗余滤波器,参与主要计算并对最终结果产生影响的只占总数5%~10%。因此,如何有效筛选出冗余滤波器而尽量不影响网络精度,成为神经网络压缩的关键。有鉴于此,本发明采用随机修剪加根据滤波器相似程度进行修剪的方式对用于图像识别的卷积神经网络模型进行剪枝,通过降低模型的复杂度减少算力,为实现神经网络在移动端等设备上的应用提供技术支持。
下面描述以上构思的具体实现方式。
请参考图1,本发明实施例提供了一种图像分类卷积神经网络剪枝方法,该方法包括如下步骤:
步骤100,获取已经训练好的用于进行图像分类识别的原始卷积神经网络模型;
卷积神经网络能够实现单类型或多类型图像的识别,一般讨论的多是多类型图像识别技术;训练所述原始卷积神经网络模型的图像样本集优选包括多种类型的图像样本,且不同类型的图像样本数量相同,避免单类型的样本过度影响滤波器权重分布;卷积神经网络的具体训练过程可参考现有技术,在此不再赘述;
步骤102,根据滤波器的相似性,对所述原始卷积神经网络模型每层网络中的各滤波器分别进行聚类,得到第一聚类结果;
所述第一聚类结果包括每层网络中滤波器的聚类类别数、每个类别包括的滤波器数量及具体滤波器;为区分具体滤波器,可对滤波器进行命名或编号;
步骤104,根据预设的第一剪枝率,对所述原始卷积神经网络模型中的滤波器进行随机剪枝;所述第一剪枝率包括每层网络的剪枝率;
所述第一剪枝率中,每层网络的剪枝率可以相同也可以不同;优选地,网络层级越深,即越靠近模型的输出端,相应的剪枝率可以更高,以提高整体模型压缩率;
此步骤104对所述原始卷积神经网络模型进行随机剪枝,不受限于第一聚类结果;
步骤106,对随机剪枝后的卷积神经网络模型进行重训练,并根据滤波器的相似性,对重训练后的卷积神经网络模型每层网络中的各滤波器分别进行聚类,得到当前的第二聚类结果;
步骤108,根据当前的第二聚类结果和预设的第二剪枝率,对当前卷积神经网络模型中的滤波器进行重剪枝;所述第二剪枝率包括每层网络的剪枝率,且每层网络的剪枝率均不超过所述第一剪枝率中对应层网络的剪枝率;
此步骤108中,重新剪除滤波器受限于第二聚类结果,不再是完全随机剪枝;
步骤110,确定重剪枝后的卷积神经网络模型的识别准确率相比随机剪枝后的卷积神经网络模型的识别准确率,是否下降超过预设阈值;
若是,则根据所述第一聚类结果和预设的增枝率,对重剪枝后的卷积神经网络模型新增加滤波器,并对新增加滤波器的卷积神经网络模型进行再训练;根据滤波器的相似性,对再训练后的卷积神经网络模型每层网络中的各滤波器分别进行聚类,得到当前的第二聚类结果后,基于当前的第二聚类结果返回执行所述重剪枝的步骤,即返回步骤108;
若否,则结束剪枝,将当前得到的卷积神经网络模型作为最终的卷积神经网络模型。
步骤110确定重剪枝后的卷积神经网络模型的识别准确率相比随机剪枝后的卷积神经网络模型的识别准确率,优选采用全新的图像样本集,即与训练所述原始卷积神经网络模型的图像样本集完全不同的图像样本集,包括多种类型的图像样本。
本发明实施例先采用随机剪枝的方式对原始卷积神经网络模型进行剪枝,以压缩部分冗余的滤波器,层次深、规模大的神经网络具有较高的鲁棒性,这样的处理方式简单有效,能够快速压缩网络规模,且压缩后的网络再进行后续处理过程,所需算力也显著降低;在每层网络中,根据滤波器的相似性进行聚类,越相似的滤波器其相互之间可替代性越高,根据聚类的结果有倾向性地剪除部分滤波器,能够减少随机剪枝剪除重要滤波器的风险,以便更好地保持模型精度;当重剪枝后的模型精度下降明显(超过预设阈值),则根据原始卷积神经网络的聚类结果补充新的滤波器,以提高模型精度,最终得到性能较佳的压缩后模型。本发明采用随机修剪加根据滤波器相似程度进行修剪的方式进行若干轮剪枝,逐步压缩模型规模,能够有效减少神经网络所需算力,且能够保持模型精度,即筛选出大规模模型中较为重要的滤波器及相应权重。
可选地,针对步骤102、步骤106和步骤110,每层网络中的各滤波器的聚类方式为:
对该层网络中各滤波器的三维权重矩阵进行降维,将三维权重矩阵的高度维度压缩为1;压缩后得到的二维权重矩阵宽度维度不变,行向量对应滤波器通道,相应权值变为高度维度上的权值平均值;
以对应的压缩后二维权重矩阵之间的相似度作为损失函数进行计算,得到n个聚类;n为根据需要设置的聚类类别数。
为判断滤波器之间的相似性,上述实施例对三维权重矩阵进行了降维。滤波器的权重矩阵具有高度、宽度和通道三个维度,考虑到图像分类中,图像中相邻近的像素点通常具有相似性,在滤波器同一位置进行卷积运算的结果也是相似的,因此,判断滤波器相似性应考虑通道间的相似性,在高度维度上压缩,可保留通道维度信息,减少噪声的同时保证多通道输入数据完整性。在其他实施例中,也可在宽度维度进行压缩,仍以行向量对应滤波器通道,相应权值变为宽度维度上的权值平均值。
进一步地,两个二维权重矩阵之间的相似度可通过如下方式计算:
逐行计算一个二维权重矩阵的行向量与另一个二维权重矩阵的每一行向量之间的马氏距离;
对两两行向量之间所有马氏距离求和,作为两个二维权重矩阵之间的相似度。
上述实施例将马氏距离(马哈拉诺比斯距离)作为衡量两个二维权重矩阵之间相似程度的标准,逐行比较两个滤波器对应的二维权重矩阵之间的距离,再求和,两个滤波器越相似,权重矩阵越接近,求得的距离越小,从而可评价滤波器的相似性。
其他实施例中,也可用其他方式,例如欧式距离、两个二维权重矩阵之间的RV系数(RV Coefficient)等,作为两个二维权重矩阵之间的相似度。
进一步地,以对应的压缩后二维权重矩阵之间的相似度作为损失函数进行计算,得到n个聚类,包括:
随机选择n个滤波器作为初始的聚类中心;
根据二维权重矩阵之间的相似度,将各滤波器分配到相似度最接近的聚类中心,以聚类中心及分配的滤波器代表一个聚类,然后根据现有聚类结果,重新计算各聚类中心,令损失函数最小;
重复上述步骤直至聚类中心不再变化。
上述实施例给出一种快速获得聚类结果的方式。在其他实施例中,也可参考其他现有技术实现滤波器聚类。
可选地,步骤104包括:
按照对应的剪枝率,逐层随机剪除该层网络的滤波器,记录剩余滤波器的名称或编号;其中,单层网络的剪枝率最大不超过55%。
随机剪枝不依赖先进的剪枝技术,实现方式简单、快速,适用于深度学习网络。
可选地,步骤104对所述原始卷积神经网络模型中的滤波器进行随机剪枝,还包括:
根据所述原始卷积神经网络模型的规模进行判断,选择对应的第一剪枝率,令规模更大的模型选择数值更高的第一剪枝率。
层次深、规模大的卷积神经网络模型鲁棒性更强,可在随机剪除更多滤波器之后仍保持较好的模型精度。
可选地,步骤104还包括:
确定随机剪枝后的卷积神经网络模型的识别准确率相比所述原始卷积神经网络模型的识别准确率,是否下降超过预设阈值;
若是,则调整所述第一剪枝率后,重新对所述原始卷积神经网络模型进行随机剪枝;
若否,则继续执行后续步骤。
此步骤优选以全新的图像样本集测试随机剪枝后的卷积神经网络模型。采用上述实施例,可避免在随机剪枝的阶段模型精度下降过快,避免剪除重要的滤波器。
可选地,步骤106中“对随机剪枝后的卷积神经网络模型进行重训练”,包括:
初始化随机剪枝后的卷积神经网络模型中滤波器的权重;
采用训练所述原始卷积神经网络模型的图像样本集,重新训练随机剪枝后的卷积神经网络模型至收敛。
上述实施例在训练前对随机剪枝后的卷积神经网络模型中滤波器的权重进行初始化,而非保留原始权重,这样一来,部分滤波器可能在重训练过程中起到新的作用,滤波器的聚类结果也可能发生变化,即在第一聚类结果中被认为是一类的滤波器,可能在第二聚类结果中并非属于一类,更有利于分辨出剪枝后相似的滤波器。
可选地,步骤108进一步包括:
针对每层网络均执行如下操作:
根据所述第二剪枝率,确定该层网络对应的剪枝率;
根据当前的第二聚类结果,确定该层网络中各聚类类别对应滤波器的数量;
根据该层网络对应的剪枝率及各聚类类别对应滤波器的数量,为各聚类类别分配剪除滤波器指标,分配的剪除滤波器指标与相应聚类类别中滤波器的数量成正比;
根据分配的剪除滤波器指标,对各聚类类别随机剪除滤波器。
采用上述实施例,可在第二聚类结果的限制下剪除滤波器,如根据该层网络对应的剪枝率可确定总共需要剪除10个滤波器,且第二聚类结果中该层网络存在3个聚类类别,3个聚类类别的滤波器数量比为2:3:5,则在这三个聚类类别中分别随机剪除2个、3个和5个滤波器。采用有一定限制条件的剪除而非完全随机剪除,能够更加有效地压缩冗余的滤波器(即可被其他滤波器替代的滤波器),减少剪枝对模型精度的影响。
可选地,步骤110中“根据所述第一聚类结果和预设的增枝率,对重剪枝后的卷积神经网络模型新增加滤波器”,包括:
针对每层网络均执行如下操作:
根据所述增枝率,确定该层网络对应的增枝率;
根据所述第一聚类结果,确定该层网络中各聚类类别对应滤波器的数量;
根据该层网络对应的增枝率及各聚类类别对应滤波器的数量,为各聚类类别分配新增滤波器指标,分配的新增滤波器指标与相应聚类类别中滤波器的数量成正比;
根据分配的新增滤波器指标,对各聚类类别新增滤波器;其中,新增滤波器从所述第一聚类结果中同一聚类类别下的滤波器中随机选择,且不与该层网络中已有滤波器重复。此处滤波器不重复是指并非同一滤波器,而不是滤波器权重不同。
上述实施例记载了在剪枝导致模型精度明显下降后如何对其新增滤波器,新增滤波器在第一聚类结果的限制下进行,以便快速为模型补充适当的滤波器。
进一步地,步骤110中“对新增加滤波器的卷积神经网络模型进行再训练”,包括:
对于原有滤波器,保留其在重训练的卷积神经网络模型中的权重;
对于新增滤波器,保留其在所述原始卷积神经网络模型中的权重;
继续训练当前的卷积神经网络模型至收敛。
上述实施例在增枝后的模型基础上再进行训练,原有滤波器的权重不变化,而对新增滤波器,选其在所述原始卷积神经网络模型中的权重,从而实现在一定基础上继续调整模型,而非完全重新训练模型,一方面有利于缩短训练时长,另一方面有利于继承卷积神经网络模型提取图像特征的能力,以恢复模型分类识别精度。
剪枝后的卷积神经网络模型更加稀疏,所需算子显著减少,也更加有利于拆分神经网络的运算任务。芯粒器件采用多个封装在一起的芯粒单元相互配合实现复杂芯片的功能。将拆分后的神经网络运算任务分配给不同的芯粒单元执行,能够实现数据的并行处理,提高处理效率。如图2和图3所示,本发明还提供了一种芯粒器件数据分配方法,应用于芯粒器件;如图2所示,所述芯粒器件包括输入输出端、集中缓存区、微控制器和多个芯粒资源单元;所述输入输出端用于交互数据,所述集中缓存区用于缓存数据,所述微控制器用于根据输入指令控制芯粒资源单元的连接关系,多个所述芯粒资源单元呈阵列式排布;
该芯粒器件数据分配方法包括如下步骤:
步骤300,获取待分配芯粒器件的算力资源统计表;所述算力资源统计表的记载信息包括各芯粒资源单元的尺寸、位置、连接关系及算力大小;
步骤302,基于如任一项实施例所述的图像分类卷积神经网络剪枝方法得到的最终的卷积神经网络模型,构建对应的有向无环图;所述有向无环图用于表示卷积神经网络模型中各算子的运算顺序;
步骤304,基于所述有向无环图和所述算力资源统计表,为各芯粒资源单元分配计算任务;各芯粒资源单元采用权重固定数据流进行计算;
步骤306,监控芯粒器件的工作状态,并定期基于芯粒器件的工作状态重新为各芯粒资源单元分配计算任务。
本发明提供的芯粒器件数据分配方法能够利用芯粒器件实现图像分类卷积神经网络功能,芯粒器件有利于进一步优化算力分配,提升处理速度,为在移动端等设备上使用深度卷积神经网络提供了技术支持。权重固定数据流即在计算中先把权重放入芯粒资源单元的片上存储中进行存储,再通过不断地更换输入特征图和输出的部分和完成神经网络的计算。
本发明实施例还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时,实现本发明任一实施例中的一种图像分类卷积神经网络剪枝方法。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序在被处理器执行时,使所述处理器执行本发明任一实施例中的一种图像分类卷积神经网络剪枝方法。
具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的程序代码。
在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。
用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上下载程序代码。
此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。
此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展模块中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展模块上的CPU等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (9)
1.一种图像分类卷积神经网络剪枝方法,其特征在于,包括如下步骤:
获取已经训练好的用于进行图像分类识别的原始卷积神经网络模型;
根据滤波器的相似性,对所述原始卷积神经网络模型每层网络中的各滤波器分别进行聚类,得到第一聚类结果;
根据预设的第一剪枝率,对所述原始卷积神经网络模型中的滤波器进行随机剪枝;所述第一剪枝率包括每层网络的剪枝率;
对随机剪枝后的卷积神经网络模型进行重训练,并根据滤波器的相似性,对重训练后的卷积神经网络模型每层网络中的各滤波器分别进行聚类,得到当前的第二聚类结果;
根据当前的第二聚类结果和预设的第二剪枝率,对当前卷积神经网络模型中的滤波器进行重剪枝;所述第二剪枝率包括每层网络的剪枝率,且每层网络的剪枝率均不超过所述第一剪枝率中对应层网络的剪枝率;
确定重剪枝后的卷积神经网络模型的识别准确率相比随机剪枝后的卷积神经网络模型的识别准确率,是否下降超过预设阈值;
若是,则根据所述第一聚类结果和预设增枝率,对重剪枝后的卷积神经网络模型新增加滤波器,并对新增加滤波器的卷积神经网络模型进行再训练;根据滤波器的相似性,对再训练后的卷积神经网络模型每层网络中的各滤波器分别进行聚类,得到当前的第二聚类结果后,基于当前的第二聚类结果返回执行所述重剪枝的步骤;
若否,则结束剪枝,将当前得到的卷积神经网络模型作为最终的卷积神经网络模型;
其中,每层网络中的各滤波器的聚类方式为:
对该层网络中各滤波器的三维权重矩阵进行降维,将三维权重矩阵的高度维度压缩为1;压缩后得到的二维权重矩阵宽度维度不变,行向量对应滤波器通道,相应权值变为高度维度上的权值平均值;
以对应的压缩后二维权重矩阵之间的相似度作为损失函数进行计算,得到n个聚类;n为根据需要设置的聚类类别数。
2.根据权利要求1所述的方法,其特征在于,
两个二维权重矩阵之间的相似度通过如下方式计算:
逐行计算一个二维权重矩阵的行向量与另一个二维权重矩阵的每一行向量之间的马氏距离;
对所有马氏距离求和,作为两个二维权重矩阵之间的相似度。
3.根据权利要求1所述的方法,其特征在于,
所述对随机剪枝后的卷积神经网络模型进行重训练,包括:
初始化随机剪枝后的卷积神经网络模型中滤波器的权重;
采用训练所述原始卷积神经网络模型的图像样本集,重新训练随机剪枝后的卷积神经网络模型至收敛。
4.根据权利要求3所述的方法,其特征在于,所述根据当前的第二聚类结果和预设的第二剪枝率,对当前卷积神经网络模型中的滤波器进行重剪枝,包括:
针对每层网络均执行如下操作:
根据所述第二剪枝率,确定该层网络对应的剪枝率;
根据当前的第二聚类结果,确定该层网络中各聚类类别对应滤波器的数量;
根据该层网络对应的剪枝率及各聚类类别对应滤波器的数量,为各聚类类别分配剪除滤波器指标,分配的剪除滤波器指标与相应聚类类别中滤波器的数量成正比;
根据分配的剪除滤波器指标,对各聚类类别随机剪除滤波器。
5.根据权利要求4所述的方法,其特征在于,所述根据所述第一聚类结果和预设增枝率,对重剪枝后的卷积神经网络模型新增加滤波器,包括:
针对每层网络均执行如下操作:
根据所述预设增枝率,确定该层网络对应的增枝率;
根据所述第一聚类结果,确定该层网络中各聚类类别对应滤波器的数量;
根据该层网络对应的增枝率及各聚类类别对应滤波器的数量,为各聚类类别分配新增滤波器指标,分配的新增滤波器指标与相应聚类类别中滤波器的数量成正比;
根据分配的新增滤波器指标,对各聚类类别新增滤波器;其中,新增滤波器从所述第一聚类结果中同一聚类类别下的滤波器中随机选择,且不与该层网络中已有滤波器重复。
6.根据权利要求5所述的方法,其特征在于,所述对新增加滤波器的卷积神经网络模型进行再训练,包括:
对于原有滤波器,保留其在重训练的卷积神经网络模型中的权重;
对于新增滤波器,保留其在所述原始卷积神经网络模型中的权重;
继续训练当前的卷积神经网络模型至收敛。
7.一种芯粒器件数据分配方法,其特征在于,应用于芯粒器件;所述芯粒器件包括输入输出端、集中缓存区、微控制器和多个芯粒资源单元;所述输入输出端用于交互数据,所述集中缓存区用于缓存数据,所述微控制器用于根据输入指令控制芯粒资源单元的连接关系,多个所述芯粒资源单元呈阵列式排布;
该芯粒器件数据分配方法包括如下步骤:
获取待分配芯粒器件的算力资源统计表;所述算力资源统计表的记载信息包括各芯粒资源单元的尺寸、位置、连接关系及算力大小;
基于如权利要求1-6中任一项所述的图像分类卷积神经网络剪枝方法得到的最终的卷积神经网络模型,构建对应的有向无环图;所述有向无环图用于表示卷积神经网络模型中各算子的运算顺序;
基于所述有向无环图和所述算力资源统计表,为各芯粒资源单元分配计算任务;各芯粒资源单元采用权重固定数据流进行计算;
监控芯粒器件的工作状态,并定期基于芯粒器件的工作状态重新为各芯粒资源单元分配计算任务。
8.一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时,实现如权利要求1-6中任一项所述的图像分类卷积神经网络剪枝方法。
9.一种存储介质,其上存储有计算机程序,其特征在于,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-6中任一项所述的图像分类卷积神经网络剪枝方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310666689.0A CN116402117B (zh) | 2023-06-07 | 2023-06-07 | 图像分类卷积神经网络剪枝方法及芯粒器件数据分配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310666689.0A CN116402117B (zh) | 2023-06-07 | 2023-06-07 | 图像分类卷积神经网络剪枝方法及芯粒器件数据分配方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116402117A CN116402117A (zh) | 2023-07-07 |
CN116402117B true CN116402117B (zh) | 2023-08-18 |
Family
ID=87018362
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310666689.0A Active CN116402117B (zh) | 2023-06-07 | 2023-06-07 | 图像分类卷积神经网络剪枝方法及芯粒器件数据分配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116402117B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117036916B (zh) * | 2023-08-02 | 2024-04-05 | 中国航空发动机研究院 | 基于轻量级卷积神经网络模型的磨粒类型识别方法及装置 |
CN117058525B (zh) * | 2023-10-08 | 2024-02-06 | 之江实验室 | 一种模型的训练方法、装置、存储介质及电子设备 |
CN117649568B (zh) * | 2024-01-30 | 2024-05-03 | 之江实验室 | 一种用于图像分类卷积神经网络的网络压缩方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108846445A (zh) * | 2018-06-26 | 2018-11-20 | 清华大学 | 一种基于相似性学习的卷积神经网络滤波器剪枝技术 |
CN113657421A (zh) * | 2021-06-17 | 2021-11-16 | 中国科学院自动化研究所 | 卷积神经网络压缩方法和装置、图像分类方法和装置 |
CN113657594A (zh) * | 2021-08-11 | 2021-11-16 | 中国科学院软件研究所 | 一种软滤波器剪枝的方法、装置以及系统 |
CN114330714A (zh) * | 2022-03-08 | 2022-04-12 | 北京环境特性研究所 | 卷积神经网络剪枝优化方法、装置、电子设备及存储介质 |
WO2022141754A1 (zh) * | 2020-12-31 | 2022-07-07 | 之江实验室 | 一种卷积神经网络通用压缩架构的自动剪枝方法及平台 |
CN115861767A (zh) * | 2022-12-23 | 2023-03-28 | 浙江中创天成科技有限公司 | 一种用于图像分类的神经网络联合量化方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11574698B1 (en) * | 2021-09-01 | 2023-02-07 | SK Hynix Inc. | Compressing deep neural networks used in memory devices |
-
2023
- 2023-06-07 CN CN202310666689.0A patent/CN116402117B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108846445A (zh) * | 2018-06-26 | 2018-11-20 | 清华大学 | 一种基于相似性学习的卷积神经网络滤波器剪枝技术 |
WO2022141754A1 (zh) * | 2020-12-31 | 2022-07-07 | 之江实验室 | 一种卷积神经网络通用压缩架构的自动剪枝方法及平台 |
CN113657421A (zh) * | 2021-06-17 | 2021-11-16 | 中国科学院自动化研究所 | 卷积神经网络压缩方法和装置、图像分类方法和装置 |
CN113657594A (zh) * | 2021-08-11 | 2021-11-16 | 中国科学院软件研究所 | 一种软滤波器剪枝的方法、装置以及系统 |
CN114330714A (zh) * | 2022-03-08 | 2022-04-12 | 北京环境特性研究所 | 卷积神经网络剪枝优化方法、装置、电子设备及存储介质 |
CN115861767A (zh) * | 2022-12-23 | 2023-03-28 | 浙江中创天成科技有限公司 | 一种用于图像分类的神经网络联合量化方法 |
Non-Patent Citations (1)
Title |
---|
一种用于卷积神经网络压缩的混合剪枝方法;靳丽蕾 等;小型微型计算机系统;第39卷(第12期);第2596-2601页 * |
Also Published As
Publication number | Publication date |
---|---|
CN116402117A (zh) | 2023-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116402117B (zh) | 图像分类卷积神经网络剪枝方法及芯粒器件数据分配方法 | |
CN110263673B (zh) | 面部表情识别方法、装置、计算机设备及存储介质 | |
CN114330714B (zh) | 卷积神经网络剪枝优化方法、装置、电子设备及存储介质 | |
CN110008853B (zh) | 行人检测网络及模型训练方法、检测方法、介质、设备 | |
CN110083639A (zh) | 一种基于聚类分析的数据血缘智能溯源的方法及装置 | |
CN109033309B (zh) | 数据处理方法、装置、设备及存储介质 | |
CN110046634A (zh) | 聚类结果的解释方法和装置 | |
CN111931809A (zh) | 数据的处理方法、装置、存储介质及电子设备 | |
CN111310918A (zh) | 一种数据处理方法、装置、计算机设备及存储介质 | |
US11570069B2 (en) | Network traffic classification method and system based on improved K-means algorithm | |
CN115037543A (zh) | 一种基于双向时间卷积神经网络的异常网络流量检测方法 | |
CN117690451B (zh) | 一种基于集成学习的神经网络噪声源分类的方法及装置 | |
CN117176177B (zh) | 一种用于林业信息的数据共享方法及系统 | |
CN111126501B (zh) | 一种图像识别方法、终端设备及存储介质 | |
CN116527398A (zh) | 物联网卡风险识别方法、装置、设备及存储介质 | |
CN115795314A (zh) | 一种关键样本采样方法、系统、电子设备及存储介质 | |
CN116451771B (zh) | 图像分类卷积神经网络压缩方法及芯粒器件数据分配方法 | |
CN116089142A (zh) | 一种新型的服务故障根因分析方法 | |
CN108062563A (zh) | 一种基于类别均衡的代表样本发现方法 | |
CN110609832B (zh) | 一种面向流式数据的非重复采样方法 | |
CN113610629A (zh) | 一种从大规模特征集中筛选客户数据特征的方法及装置 | |
CN112613521A (zh) | 基于数据转换的多层次数据分析系统及方法 | |
CN112396100A (zh) | 一种细粒度分类模型的优化方法、系统及相关装置 | |
CN111160530A (zh) | 模型的压缩处理方法、装置及计算机设备 | |
CN117592789B (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 |