CN117649568A - 一种用于图像分类卷积神经网络的网络压缩方法及装置 - Google Patents

一种用于图像分类卷积神经网络的网络压缩方法及装置 Download PDF

Info

Publication number
CN117649568A
CN117649568A CN202410128337.4A CN202410128337A CN117649568A CN 117649568 A CN117649568 A CN 117649568A CN 202410128337 A CN202410128337 A CN 202410128337A CN 117649568 A CN117649568 A CN 117649568A
Authority
CN
China
Prior art keywords
node
determining
network
image classification
convolutional neural
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
CN202410128337.4A
Other languages
English (en)
Other versions
CN117649568B (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.)
Zhejiang Lab
Original Assignee
Zhejiang Lab
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 Zhejiang Lab filed Critical Zhejiang Lab
Priority to CN202410128337.4A priority Critical patent/CN117649568B/zh
Publication of CN117649568A publication Critical patent/CN117649568A/zh
Application granted granted Critical
Publication of CN117649568B publication Critical patent/CN117649568B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • 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
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • 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
    • G06N3/048Activation functions
    • 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
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/761Proximity, similarity or dissimilarity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/762Arrangements for image or video recognition or understanding using pattern recognition or machine learning using clustering, e.g. of similar faces in social networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Molecular Biology (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Image Analysis (AREA)

Abstract

在本说明书提供的一种用于图像分类卷积神经网络的网络压缩方法及装置中,通过获取训练完成的图像分类卷积神经网络以及输入图像,将输入图像输入该图像分类卷积神经网络中,确定各节点的参数以及各节点输出的该输入图像的激活特征,针对每一网络层,根据该网络层的各节点的参数和激活特征,确定核心参数和核心激活特征,并得到参数聚类结果和激活特征聚类结果,进而确定综合聚类结果,根据该综合聚类结果对该网络层进行剪枝。通过结合参数聚类结果和激活特征聚类结果,确定综合聚类结果,综合考虑了图像分类卷积神经网络的参数相似性和激活模式,考虑更全面,有效地减少了图像分类卷积神经网络的复杂性。

Description

一种用于图像分类卷积神经网络的网络压缩方法及装置
技术领域
本说明书涉及神经网络的压缩领域,尤其涉及一种用于图像分类卷积神经网络的网络压缩方法及装置。
背景技术
随着深度学习技术的发展,神经网络模型变得越来越复杂,参数数量和计算量也在不断增加,极大限制了在边缘设备上的部署。为此,研究人员常采用对神经网络模型进行压缩的方式,实现更高效的模型部署和应用。
目前,剪枝和量化是两种常用的压缩技术,通过减少模型参数的规模和降低神经网络模型的计算量,实现神经网络模型的压缩。但这两种方法也存在一定的缺点。首先,传统的结构化剪枝按照特定的模式(例如,通道、行或列)进行剪枝,导致神经网络模型出现稀疏连接,影响了模型精度。其次,量化通过将参数表示从较高的位宽降低到较低的位宽,导致信息损失,以及由于量化误差的累积,影响神经网络模型的性能。
基于此,本说明书提供一种用于图像分类卷积神经网络的网络压缩方法。
发明内容
本说明书提供了一种用于图像分类卷积神经网络的网络压缩方法,以部分的解决现有技术存在的上述问题。
本说明书采用下述技术方案:
本说明书提供了一种用于图像分类卷积神经网络的网络压缩方法,所述方法包括:
获取训练完成的图像分类卷积神经网络,以及输入图像;
将所述输入图像输入所述图像分类卷积神经网络,针对所述图像分类卷积神经网络的每一网络层,确定该网络层中各节点的参数,以及各节点输出的所述输入图像的激活特征;
根据各节点的参数,确定各节点中的核心参数,按照所述核心参数确定各节点的参数聚类结果,以及根据各节点输出的激活特征,确定各节点中的核心激活特征,按照所述核心激活特征确定各节点的激活特征聚类结果;
根据所述参数聚类结果以及所述激活特征聚类结果,确定所述各节点的综合聚类结果;
根据所述综合聚类结果,对该网络层中各节点进行剪枝,并确定该网络层的剪枝结果;
根据各网络层的剪枝结果,确定压缩后的图像分类卷积神经网络,所述压缩后的图像分类卷积神经网络部署于边缘设备,用于响应图像分类请求,根据所述图像分类请求携带的输入图像,输出分类结果。
可选的,根据各节点的参数,确定各节点中的核心参数,按照所述核心参数确定各节点的参数聚类结果,具体包括:
针对该网络层中每个节点,确定该节点的参数分别与该网络层中其他节点的参数的余弦距离;
若该节点的参数的预设邻域内的其他节点的参数的数量不小于预设数量,则确定该节点的参数为核心参数,并按照预设邻域内的其他节点的参数与所述核心参数的余弦距离从小到大的顺序,筛选出所述预设数量的其他节点的参数,并根据筛选出的其他节点的参数对应的余弦距离最大值,确定所述核心参数的核心距离;
针对所述核心参数的预设邻域内的每个其他节点的参数,将该其他节点的参数与所述核心参数的余弦距离以及所述核心参数的核心距离中的最大值,作为该其他节点的参数的初始可达距离;
针对该网络层中每个节点,确定该节点的参数与距离该节点的参数最近的核心参数对应的初始可达距离,作为该节点的参数的目标可达距离;
通过预设的聚类参数,根据该网络层中各节点的参数的目标可达距离,确定各节点的参数聚类结果。
可选的,根据各节点输出的激活特征,确定各节点中的核心激活特征,按照所述核心激活特征确定各节点的激活特征聚类结果,具体包括:
针对该网络层中每个节点,确定该节点输出的激活特征分别与该网络层中其他节点输出的激活特征的余弦距离;
若该节点输出的激活特征的预设邻域内的其他节点输出的激活特征的数量不小于预设数量,则确定该节点输出的激活特征为核心激活特征,并按照预设邻域内的其他节点输出的激活特征与所述核心激活特征的余弦距离从小到大的顺序,筛选出所述预设数量的其他节点输出的激活特征,并根据筛选出的其他节点输出的激活特征对应的余弦距离最大值,确定所述核心参数的核心距离;
针对所述核心激活特征的预设邻域内的每个其他节点输出的激活特征,将该其他节点输出的激活特征与所述核心激活特征的余弦距离以及所述核心激活特征的核心距离中的最大值,作为该其他节点输出的激活特征的初始可达距离;
针对该网络层中每个节点,确定该节点输出的激活特征与距离该节点输出的激活特征最近的核心激活特征对应的初始可达距离,作为该节点输出的激活特征的目标可达距离;
通过预设的聚类参数,根据各节点的激活特征的目标可达距离,确定各节点的激活特征聚类结果。
可选的,通过预设的聚类参数,根据该网络层中各节点的参数的目标可达距离,确定各节点的参数聚类结果,具体包括:
针对该网络层中每个节点,若该节点的参数的目标可达距离小于预设的聚类参数,则根据该节点的参数的目标可达距离,确定该节点对应的核心参数,将该节点与确定出的核心参数所属的节点,划分为一个聚类簇内的节点;
根据各节点基于参数的目标可达距离划分得到的聚类簇的数量,确定该网络层中各节点的参数聚类结果。
可选的,通过预设的聚类参数,根据各节点的激活特征的目标可达距离,确定各节点的激活特征聚类结果,具体包括:
针对该网络层中每个节点,若该节点输出的激活特征的目标可达距离小于预设的聚类参数,则根据该节点输出的激活特征的目标可达距离,确定该节点对应的核心激活特征,将该节点与确定出的核心激活特征所属的节点,划分为一个聚类簇内的节点;
根据各节点基于激活特征的目标可达距离划分得到的聚类簇的数量,确定该网络层中各节点的激活特征聚类结果。
可选的,根据所述综合聚类结果,对该网络层中各节点进行剪枝,并确定该网络层的剪枝结果,具体包括:
确定该网络层在所述图像分类卷积神经网络中的层数;
根据所述该网络层的层数、所述综合聚类结果以及该网络层的节点数量,确定该网络层的剪枝后的节点数量,其中,所述层数与所述剪枝后的节点数量为负相关;
根据剪枝后该网络层的节点数量,确定该网络层的剪枝结果。
可选的,确定压缩后的图像分类卷积神经网络,具体包括:
根据各网络层的剪枝结果,确定剪枝后的图像分类卷积神经网络;
将所述输入图像输入所述剪枝后的图像分类卷积神经网络,针对所述剪枝后的图像分类卷积神经网络的每一网络层,确定该网络层中各节点的网络权重;
确定用于当前量化的量化比特数;
根据所述量化比特数,对该网络层的网络权重进行量化,确定量化范围;
根据量化前后分别对应的网络权重,通过预设的激活函数,确定量化前后网络权重分别对应的所述激活函数的输出,并以量化前后网络权重分别对应的输出分布之间的相对熵最小化为目标,调整所述量化范围;
根据调整后的量化范围,对该网络层的网络权重进行对称量化,并确定该网络层的量化结果;
根据各网络层的量化结果,确定压缩后的图像分类卷积神经网络。
可选的,根据各网络层的量化结果,确定压缩后图像分类卷积神经网络,具体包括:
针对所述剪枝后的图像分类卷积神经网络的每一网络层,根据该网络层的网络权重,通过预设的缩放参数以及预设的平移参数,确定校正权重;
根据所述校正权重,对该网络层的量化结果进行校正;
根据校正后各网络层的量化结果,确定压缩后的图像分类卷积神经网络。
可选的,根据各网络层的量化结果,确定压缩后图像分类卷积神经网络,具体包括:
针对所述剪枝后的图像分类卷积神经网络的每一网络层,通过对该网络层的网络权重进行聚类,确定聚类后该网络层中各网络权重分别对应的聚类值;
根据各聚类值,对所述该网络层的量化结果进行校正;
根据校正后的量化结果,确定压缩后的图像分类卷积神经网络。
可选的,响应图像分类请求,通过所述压缩后的图像分类卷积神经网络,确定所述图像分类请求携带的输入图像的分类结果,具体包括:
将预设的特征增强层配置在所述压缩后的图像分类卷积神经网络中,确定目标图像分类卷积神经网络;
响应于图像分类请求,将所述图像分类请求携带的输入图像输入所述目标图像分类卷积神经网络,确定所述目标图像分类卷积神经网络输出的分类结果;
其中,针对每一特征增强层,确定输入该特征增强层的第一激活特征图;
通过该特征增强层的卷积核,确定第二激活特征图,以及通过该特征增强层预设的对应第一激活特征图各通道的池化层,确定所述第一激活特征图各通道的特征增强权重;
针对所述第一激活特征图的每个通道,根据该通道的特征增强权重对所述第一激活特征图中该通道的特征图进行加权;
根据加权后的第一激活特征图以及所述第二激活特征图,确定该特征增强层的输出结果,并将所述输出结果输入所述目标图像分类卷积神经网络中该特征增强层的下一网络层。
本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现一种用于图像分类卷积神经网络的网络压缩方法。
本说明书提供了一种电子设备,所述电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现一种用于图像分类卷积神经网络的网络压缩方法。
本说明书采用的上述至少一个技术方案能够达到以下有益效果:在本说明书提供的一种用于图像分类卷积神经网络的网络压缩方法中,通过获取训练完成的图像分类卷积神经网络以及输入图像,将输入图像输入该图像分类卷积神经网络中,确定各节点的参数以及各节点输出的该输入图像的激活特征,针对该图像分类卷积神经网络的每一网络层,根据该网络层中各节点的参数和激活特征,确定核心参数和核心激活特征,并得到参数聚类结果和激活特征聚类结果,进而确定该网络层的综合聚类结果,可根据该综合聚类结果对该网络层进行剪枝,进而确定压缩后的图像分类卷积神经网络。
从上述方法可以看出,通过结合各参数的聚类结果以及各激活特征的聚类结果,确定综合聚类结果,综合考虑了图像分类卷积神经网络的参数相似性和激活模式,考虑的更全面,以及实现了根据该综合聚类结果对网络层进行高效且精简的剪枝,有效地减少了图像分类卷积神经网络的复杂性,提高了剪枝效果。
附图说明
此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:
图1为本说明书中提供的一种用于图像分类卷积神经网络的网络压缩方法的流程示意图;
图2为本说明书中提供的确定网络层的剪枝结果的示意图;
图3为本说明书中提供的特征增强层的示意图;
图4为本说明书提供的一种用于图像分类卷积神经网络的网络压缩装置的示意图;
图5为本说明书提供的用于实现一种用于图像分类卷积神经网络的网络压缩方法对应的电子设备结构示意图。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
图1为本说明书中提供的一种用于图像分类卷积神经网络的网络压缩方法的流程示意图,包括以下步骤:
S100:获取训练完成的图像分类卷积神经网络,以及输入图像。
在本说明书一个或多个实施例中,不限制具体由何种设备实行一种用于图像分类卷积神经网络的网络压缩方法的过程,例如,个人电脑、移动终端以及服务器等。但由于后续步骤涉及到数据处理等操作,而这种对计算资源的要求较高的操作一般都由服务器来执行,因此本说明书后续也以服务器实现一种用于图像分类卷积神经网络的网络压缩方法为例进行描述。其中,该服务器可以是单独的一台设备,或者由多台设备组成,例如,分布式服务器,本说明书对此不做限制。
在本说明书一个或多个实施例中,为了在后续步骤中实现基于各网络层的参数和各激活特征,对图像分类卷积神经网络进行剪枝压缩。在本步骤,服务器需先获取待压缩的图像分类卷积神经网络,以及用于输入该图像分类卷积神经网络的输入图像。
具体的,服务器可获取训练完成的图像分类卷积神经网络,以及用于输入该图像分类卷积神经网络的输入图像,在此,本说明书并不限制输入图像中图像的数量。其中,获取的输入图像可经过图像预处理操作,不限于缩放、平移、折叠等,在此本说明书并不限制。
S102:将所述输入图像输入所述图像分类卷积神经网络,针对所述图像分类卷积神经网络的每一网络层,确定该网络层中各节点的参数,以及各节点输出的所述输入图像的激活特征。
在本说明书一个或多个实施例中,为了在后续步骤中确定基于参数的聚类结果以及基于激活特征的聚类结果。在本步骤中,服务器需将在步骤S100中获取的输入图像输入训练完成的图像分类卷积神经网络中,提取各网络层中各节点的参数和确定各节点输出的该输入图像对应的激活特征。
具体的,服务器将在步骤S100中获取的输入图像输入在步骤S100中获取的训练完成的图像分类卷积神经网络中,针对该图像分类卷积神经网络中的每一网络层,提取到该网络层中各节点的参数,以及确定该网络层中各节点输出的该输入图像的激活特征,其中,确定该网络层中各节点输出的该输入图像的激活特征为输入图像中各图像在该网络层中对应的平均激活特征。
S104:根据各节点的参数,确定各节点中的核心参数,按照所述核心参数确定各节点的参数聚类结果,以及根据各节点输出的激活特征,确定各节点中的核心激活特征,按照所述核心激活特征确定各节点的激活特征聚类结果。
在本说明书一个或多个实施例中,为了在后续步骤中得到基于图像分类卷积神经网络的参数和激活特征的综合聚类结果,在本步骤中,服务器可先确定该网络层中各节点对应的核心参数和核心激活特征,按照核心参数和核心激活特征分别对该网络层中的各节点进行聚类,并确定参数聚类结果以及激活特征聚类结果。
具体的,针对该图像分类卷积神经网络中的每一网络层,确定该网络层对应的参数聚类结果以及激活特征聚类结果。其中,该服务器可针对该网络层中的每个节点,确定该节点的参数分别与该网络层中其他节点的参数的余弦距离。若该节点的参数的预设邻域内的其他节点的参数的数量不小于预设数量,则该节点的参数为核心参数,并按照预设邻域内的其他节点的参数与该核心参数的余弦距离从小到大的顺序,筛选出预设数量的其他节点的参数,并将筛选出的其他节点的参数对应的最大的余弦距离,作为该核心参数的核心距离。针对该核心参数的预设邻域内的每个其他节点的参数,将该其他节点的参数与该核心参数的余弦距离以及该核心参数的核心距离中的较大值,作为该其他节点的参数的初始可达距离。针对该网络层中每个节点,确定该节点的参数与距离该节点的参数最近的核心参数对应的初始可达距离,作为该节点的参数的目标可达距离。针对该网络层中每个节点,若该节点的参数的目标可达距离小于预设的聚类参数,则将该节点的参数的目标可达距离对应的两个节点(该节点与目标可达距离对应的核心参数所属的节点),划分为一个聚类簇内的节点。将各节点基于参数的目标可达距离划分得到的聚类簇的数量,作为该网络层中各节点的参数聚类结果。例如,确定该节点的参数的初始可达距离,如下:该节点的参数的预设邻域内的其他节点的参数的数量不小于k,则该节点的参数为核心参数,并确定邻近该节点的第k个节点,以及将该第k个节点与该节点间的余弦距离,作为该节点的参数(核心参数)的核心距离。
该服务器可针对该网络层中的每个节点,确定该节点输出的激活特征分别与该网络层中其他节点输出的激活特征的余弦距离。若该节点输出的激活特征的预设邻域内的其他节点输出的激活特征的数量不小于预设数量,则该节点输出的激活特征为核心激活特征,并按照预设邻域内的其他节点输出的激活特征与该核心参数的余弦距离从小到大的顺序,筛选出预设数量的其他节点输出的激活特征,并将筛选出的其他节点输出的激活特征对应的最大的余弦距离,作为该核心激活特征的核心距离。针对该核心激活特征的预设邻域内的每个其他节点输出的激活特征,将该其他节点输出的激活特征与该核心激活特征的余弦距离以及该核心激活特征的核心距离中的较大值,作为该其他节点输出的激活特征的初始可达距离。针对该网络层中每个节点,确定该节点输出的激活特征与距离该节点输出的激活特征最近的核心激活特征对应的初始可达距离,作为该节点输出的激活特征的目标可达距离。针对该网络层中每个节点,若该节点输出的激活特征的目标可达距离小于预设的聚类参数,则将该节点输出的激活特征的目标可达距离对应的两个节点(该节点与目标可达距离对应的核心激活特征所属的节点),划分为一个聚类簇内的节点。将各节点基于激活特征的目标可达距离划分得到的聚类簇的数量,作为该网络层中各节点的激活特征聚类结果。
S106:根据所述参数聚类结果以及所述激活特征聚类结果,确定所述各节点的综合聚类结果。
在本说明书一个或多个实施例中,为了在后续步骤中基于参数和激活特征对该图像分类卷积神经网络进行剪枝,在本步骤中,该服务器可根据在步骤S104中基于各节点的参数确定的参数聚类结果以及基于各节点输出的激活特征确定的激活特征聚类结果,确定综合聚类结果。
具体的,该服务器可针对该图像分类卷积神经网络的每一网络层,根据该网络层对应的参数聚类结果以及该网络层对应的激活特征聚类结果,通过预设的聚类权重,确定该网络层中各节点的综合聚类结果。其中,聚类权重用于平衡参数聚类结果和激活特征聚类结果,因此,在本说明书并不限制聚类权重的具体数值,可根据实际需求设置。
例如,该网络层对应的参数聚类结果中各节点聚类,得到的聚类簇的数量为个,该网络层对应的激活特征聚类结果中各节点聚类,得到的聚类簇的数量为/>个,预设的聚类权重为/>,则该网络层中各节点的综合聚类结果/>,如下:
可选的,该服务器可针对该图像分类卷积神经网络的每一网络层,通过预设的参数的聚类权重对该网络层对应的参数聚类结果进行加权,以及通过预设的激活特征的聚类权重对该网络层对应的激活特征聚类结果进行加权,将加权后参数聚类结果与激活特征聚类结果之和,作为该网络层中各节点的综合聚类结果。
S108:根据所述综合聚类结果,对该网络层中各节点进行剪枝,并确定该网络层的剪枝结果。
在本说明书一个或多个实施例中,为了在后续步骤中确定压缩后的图像分类卷积神经网络,在本步骤中,该服务器可根据步骤S106中确定各网络层的综合聚类结果,分别对各网络层中的各节点进行剪枝,确定各网络层的剪枝结果。
具体的,该服务器可针对图像分类卷积神经网络的每一网络层,确定该网络层在图像分类卷积神经网络中的层数,根据该层数、该网络层的综合聚类结果以及该网络层剪枝前的节点数量,通过预设的剪枝函数,确定该网络层中保留节点的数量。确定该网络层中各节点的参数的重要性,按照各节点的参数的重要性的排序,筛选出该网络层保留的重要性较高的各节点,确定该网络层的剪枝结果。其中,网络层的层数与所述剪枝后的节点数量为负相关。在此,本说明书并不限制确定网络层中各节点的重要性的具体方式,例如,通过掩膜的方式,针对每个节点,将该节点的参数置为零,从而确定该节点的参数对图像分类卷积神经网络输出的分类结果准确性的影响,进而确定该节点的重要性。可选的,上述确定各网络层中保留节点的数量之后,针对每个网络层,可直接按照该网络层保留节点的数量,对该网络层进行剪枝,其中,不关注哪些节点融合或保留,直接将网络层节点的数量删减,在后续步骤中,再对剪枝后的该图像分类卷积神经网络进行重新训练,确定压缩完成的图像分类卷积神经网络。
针对图像分类卷积神经网络的每一网络层,通过预设的剪枝函数,确定该网络层中保留节点的数量。剪枝函数如下:
其中,为设置的常数,/>的取值范围为0~1。/>为该网络层的层数,/>为该网络层的综合聚类结果,/>为该网络层剪枝前的节点数量,/>为该网络层中保留节点的数量。剪枝函数中网络层中保留节点的数量与网络层的层数成负相关。
需要说明的是,在图像分类卷积神经网络的推理过程中,不同网络层的提取的激活特征的种类并不相同,层数较小的网络层提取的往往是较为基础的轮廓、颜色等特征,基础特征的提取对图像分类卷积神经网络确定输入图像的分类结果的影响大,所以在上述剪枝过程中,网络层的层数与网络层剪枝后的节点数量为负相关,也就是,网络层的层数越大,该网络层节点保留的数量越倾向于综合聚类结果中的节点数量,即剪枝删减的节点数量越多。
S110:根据各网络层的剪枝结果,确定压缩后的图像分类卷积神经网络,所述压缩后的图像分类卷积神经网络部署于边缘设备,用于响应图像分类请求,根据所述图像分类请求携带的输入图像,输出分类结果。
在本说明书一个或多个实施例中,该服务器可根据步骤S108中确定的各网络层的剪枝结果,确定压缩后的图像分类卷积神经网络。
具体的,该服务器可根据各网络层的剪枝结果,确定压缩后的图像分类卷积神经网络,压缩后的图像分类卷积神经网络通过微调训练后可部署在边缘设备中,用于响应图像分类请求,根据图像分类请求携带的输入图像,输出对应的分类结果。如图2所示,该图中黑色圆形表示图像分类卷积神经网络的节点,针对图像分类卷积神经网络的每一网络层,通过聚类参数确定参数聚类结果和激活特征聚类结果,进而确定该网络层的综合聚类结果。之后根据剪枝函数确定该网络层的剪枝结果,通过确定的各剪枝结果确定压缩后的图像分类卷积神经网络。需要说明的是,若在步骤S108中若仅根据综合聚类结果,在剪枝过程中直接删减节点数量,得到剪枝后的各网络层(各网络层的剪枝结果),那么在本步骤需根据各网络层的剪枝结果,确定剪枝后的图像分类卷积神经网络,进而通过对该剪枝后的图像分类卷积神经网络进行重新训练,确定压缩后的图像分类卷积神经网络,以尽量减少剪枝过程对网络精度的影响。
可选的,该服务器可根据各网络层的剪枝结果,确定剪枝后的图像分类卷积神经网络,并将步骤S100中获取的输入图像输入该剪枝后的图像分类卷积神经网络。该服务器可针对该剪枝后的图像分类卷积神经网络的每一网络层,确定该网络层中各节点的网络权重。根据所述剪枝后的图像分类卷积神经网络中参数的表示位数,确定用于当前量化的量化比特数。通过该量化比特数,对该网络层的网络权重进行量化,以及确定量化范围,并将量化前后分别对应的网络权重,分别输入预设的激活函数,确定量化前后网络权重分别对应的该激活函数的输出,并以量化前后网络权重分别对应的输出分布之间的相对熵最小化为目标,调整该量化范围。该服务器可根据调整后的量化范围,对该剪枝后的图像分类卷积神经网络中该网络层的网络权重进行对称量化,并确定该网络层的量化结果。进而根据各网络层的量化结果,确定压缩后的图像分类卷积神经网络。对该压缩后的图像分类卷积神经网络进行训练微调后,部署在边缘设备上。部署在边缘设备上的图像分类卷积神经网络可响应于图像分类请求,并根据所述图像分类请求携带的输入图像,输出该输入图像对应的分类结果。
其中,通过该量化比特数,对该网络层的网络权重进行量化,以及确定量化范围,以及根据量化前后网络权重分别对应的输出分布之间的相对熵最小化为目标,调整该量化范围。如下:
其中,为未调整前量化范围的最小值,/>为未调整前量化范围的最大值,/>量化前的网络权重,/>为根据未调整的量化范围进行量化后的网络权重。/>为预设的激活函数,用于将该网络层中的网络权重/>转换成0~1之间的对应数值。/>为/>散度值最小化为目标调整量化范围,即调整/>和/>的数值。
需要说明的是,根据所述剪枝后的图像分类卷积神经网络中参数的表示位数,确定用于当前量化的量化比特数。即若剪枝后的图像分类卷积神经网络中参数的表示位数大于16比特,则确定16比特为用于当前量化的量化比特数,若剪枝后的图像分类卷积神经网络中参数的表示位数不大于16比特,则从8比特以及4比特两种量化比特数中,筛选出量化比特数较大且比该剪枝后的图像分类卷积神经网络中参数的表示位数小的量化比特数,用于当前量化。
需要说明的是,可对剪枝后的图像分类卷积神经网络进行多次量化,针对每次量化过程,可根据上一次量化后的图像分类卷积神经网络中参数的表示位数,确定用于当前量化的量化比特数,直至用于当前量化的量化比特数为4比特,并确定当前量化后被压缩的图像分类卷积神经网络。可选的,可预先设置目标量化比特数。该目标量化比特数的设置约束了对图像分类卷积神经网络进行量化的次数,即对图像分类卷积神经网络进行多次量化的过程中,最大量化次数对应的量化比特数即为目标量化比特数。当当前量化的量化比特数为该目标量化比特数,通过该目标量化比特数对上一次量化后的图像分类卷积神经网络进行量化,确定量化结果,进而根据该量化结果确定压缩后的图像分类卷积神经网络。由于当前量化的量化比特数是从16比特、8比特以及4比特中确定的,则对剪枝后的图像分类卷积神经网络进行量化的最大次数为3。
例如,若剪枝后的图像分类卷积神经网络中各参数的表示位数为32比特,则从16比特、8比特以及4比特三种量化比特数中,筛选出较大表示位数且比该剪枝后的图像分类卷积神经网络中参数的表示位数小的量化比特数,也就是16比特为第一次对该剪枝后的图像分类卷积神经网络进行量化的量化比特数,那么8比特为第二次量化的量化比特数,根据该量化比特数对第一次量化后的图像分类卷积神经网络进行量化的量化比特数,以此类推,实现了对图像分类卷积神经网络的递进式的多次量化。若设置对该剪枝后的图像分类卷积神经网络进行多次量化的目标量化比特数为8比特,则对该剪枝后的图像分类卷积神经网络进行量化过程的量化次数为2次。
在上述方法中,基于图像分类卷积神经网络中参数和激活特征,确定综合聚类结果,进而根据该综合聚类结果(保留的节点数量)对该图像分类卷积神经网络进行剪枝,确定压缩后的图像分类卷积神经网络之外,还可对剪枝后的图像分类卷积神经网络进行递进式的一次或多次量化,确定压缩后的图像分类卷积神经网络。综合考虑了图像分类卷积神经网络中参数相似性和激活模式,考虑更全面,实现了对各网络层进行高效且精简的剪枝,有效地减少了图像分类卷积神经网络的复杂性,提高了剪枝效果。以及结合对剪枝后的图像分类卷积神经网络递进式的一次或多次量化,结合剪枝和量化实现了图像分类卷积神经网络的显著压缩与加速,以及避免了单次量化到目标量化比特数所带来的精度损失,提高了图像分类卷积神经网络的推理效率以及有效降低图像分类卷积神经网络的存储空间,使得压缩后的图像分类卷积神经网络可以部署在移动设备、穿戴式设备等资源受限的环境中。
需要说明的是,上述方法为对训练完成的图像分类卷积神经网络先进行剪枝,之后对剪枝后的图像分类卷积神经网络进行递进式的一次或多次的量化,确定压缩后的图像分类卷积神经网络。由于在剪枝过程中减少了各网络层的参数的数量,再对剪枝后的图像分类卷积神经网络进行量化,减少了量化时不必要的工作量(指对剪枝过程中各网络层未保留的参数的量化)。但量化实现的是对图像分类卷积神经网络的计算和内存需求上的精简,所以,先对训练完成的图像分类卷积神经网络进行量化后,之后对量化后的图像分类卷积神经网络进行剪枝,确定压缩后的图像分类卷积神经网络。由于量化后的图像分类卷积神经网络在计算和内存需求上的精简,使得图像分类卷积神经网络在推理效率上有所提高,进而再对量化后的图像分类卷积神经网络进行剪枝,确定压缩后的图像分类卷积神经网络,在时间维度上实现网络压缩更具优势。因此,本说明书并不限制剪枝和量化的顺序,以及若量化过程分为递进式的多次量化,也可将对图像分类卷积神经网络的剪枝在多次量化间实现,本说明书并不限制,可根据实际需求设置。
除此之外,由于对剪枝后的图像分类卷积神经网络进行量化,引入了量化误差,量化误差影响了量化后的图像分类卷积神经网络的网络精度。所以,服务器可针对剪枝后的图像分类卷积神经网络的每一网络层,根据该网络层的网络权重,利用图像分类卷积神经网络中的批归一化层(批归一化层的缩放参数和平移参数),确定校正权重,进而根据该校正权重对该网络层的量化结果进行校正。
具体的,针对剪枝后的图像分类卷积神经网络的每一网络层,该服务器可确定预设的缩放参数分别与该网络层中各网络权重的乘积,以及将各乘积分别与预设的平移参数的和值,通过Sigmoid激活函数,确定该网络层中各网络权重分别对应的校正权重。进而通过各校正权重对该网络层的量化结果进行校正,即将量化结果中量化后的各网络权重分别与该网络层中各网络权重分别对应的校正权重的和值,作为校正后的网络权重,根据校正后的各网络权重,确定校正后的量化结果。根据校正后各网络层的量化结果,确定压缩后的图像分类卷积神经网络。
除此之外,为了提高经过多次量化的图像分类卷积神经网络的精度,可通过保留多次量化前的图像分类卷积神经网络中网络层的各网络权重之间的特性,即通过对多次量化前的图像分类卷积神经网络中网络层的各网络权重进行聚类,确定各网络权重分别对应的聚类值,进而根据各聚类值校正量化结果。进而根据校正后的量化结果,确定压缩后的图像分类卷积神经网络。
具体的,该服务器可针对剪枝后的图像分类卷积神经网络的每一网络层,通过对该网络层的网络权重进行聚类,确定聚类后该网络层中各网络权重对应的聚类值,其中,一个聚类簇中,非聚类中心位置对应的聚类值与聚类中心位置对应的聚类值一致,以及聚类中心的位置对应的聚类值是通过聚类簇内的各网络权重的平均值,再经过向上取整(即当得到的平均值有小数部分,结果的整数部分加1为最终结果)确定的。将确定的各网络权重对应的聚类值,分别与该网络层的量化结果中各网络权重的乘积,作为校正后的各网络权重。根据校正后的各网络权重,确定校正后的量化结果,并根据校正后的量化结果,确定压缩后的图像分类卷积神经网络。
在上述中,服务器借助批归一化层确定校正权重,进而根据校正权重,对各网络层的量化结果进行校正,和/或服务器通过对量化前各网络层的网络权重进行聚类,并根据各聚类值对该网络层的量化结果进行校正。本说明书并不限制采用这两种校正量化结果的方式,同时对量化结果进行校正的顺序。根据校正后的量化结果确定压缩后的图像分类卷积神经网络,提高了压缩后的图像分类卷积神经网络的网络精度,减少了量化过程由于降低网络权重的表示位数对图像分类卷积神经网络在网络精度上的损失。
除此之外,本说明书提供了将预设的特征增强层配置在压缩后的图像分类卷积神经网络,以使压缩后的图像分类卷积神经网络输出的分类结果准确度提高,以及压缩后的图像分类卷积神经网络的性能提高。具体如下:
在本说明书实施例中,首先,获取压缩后的图像分类卷积神经网络,并将预设的特征增强层配置在该压缩后的图像分类卷积神经网络,确定目标图像分类卷积神经网络。服务器响应于图像分类请求,将该图像分类请求携带的输入图像输入确定的目标图像分类卷积神经网络,进而确定该目标图像分类卷积神经网络输出的该输入图像对应的分类结果。其中,针对每一特征增强层,确定输入该特征增强层的第一激活特征图,通过该特征增强层的卷积核,确定第二激活特征图,以及通过该特征增强层预设的对应第一激活特征图各通道的池化层,确定第一激活特征图各通道分别对应的特征增强权重。针对所述第一激活特征图的每个通道,根据特征增强权重对输入的第一激活特征图进行加权。根据加权后的第一激活特征图与确定的第二激活特征图之和,作为该特征增强层的输出结果,并将该输出结果输入该特征增强层的下一网络层。其中,配置特征增强层在提高对图像的特征提取方面性能的同时,增加了图像分类卷积神经网络的参数规模和网络运行的计算量,所以,在本说明书中并不限制配置特征增强层的数量以及各特征增强层的位置,可根据实际需求设置。
例如,输入该特征增强层的第一激活特征图的维度为,对各维度的特征图通过预设的卷积核进行增强,即针对/>个通道,利用的卷积核对第一激活特征图进行卷积操作,得到第二激活特征图T。针对/>个通道,通过池化层对/>的第一激活特征图进行全局平均池化,得到C×1×1维度的全局平均池化后的张量/>,通过目标图像分类卷积神经网络的全连接层对张量的特征进一步提取得到C×1×1维度的张量/>。可将张量/>输入Softmax函数,确定特征增强权重。进而根据特征增强权重对输入的第一激活特征图中各通道的特征图进行加权,根据加权后的第一激活特征图以及确定的第二激活特征图,确定该特征增强层的输出结果,如下:
其中,为该特征增强层的输出结果,/>为输入该特征增强层的第一激活特征图。如图3所示,为通过特征增强层,增强输入该特征增强层的第一激活特征图的示意图,详细内容在上例中已详细说明,本说明书在此不再赘述。
上述中,基于对图像分类卷积神经网络进行剪枝和量化的高效压缩,以及为压缩后的图像分类卷积神经网络配置特征增强层,对压缩后的图像分类卷积神经网络中网络层提取的特征进行增强,进而使压缩后的图像分类卷积神经网络响应于图像分类请求,输出该图像分类请求携带的输入图像的分类结果更准确,性能更优异。
以上为本说明书的一个或多个实施例中提供的一种用于图像分类卷积神经网络的网络压缩方法,基于同样的思路,本说明书还提供了相应的一种用于图像分类卷积神经网络的网络压缩方法对应的装置,如图4所示。
获取模块500,获取训练完成的图像分类卷积神经网络,以及输入图像;
输入模块501,将所述输入图像输入所述图像分类卷积神经网络,针对所述图像分类卷积神经网络的每一网络层,确定该网络层中各节点的参数,以及各节点输出的所述输入图像的激活特征;
聚类模块502,根据各节点的参数,确定各节点中的核心参数,按照所述核心参数确定各节点的参数聚类结果,以及根据各节点输出的激活特征,确定各节点中的核心激活特征,按照所述核心激活特征确定各节点的激活特征聚类结果;
综合模块503,根据所述参数聚类结果以及所述激活特征聚类结果,确定所述各节点的综合聚类结果;
剪枝模块504,根据所述综合聚类结果,对该网络层中各节点进行剪枝,并确定该网络层的剪枝结果;
确定模块505,根据各网络层的剪枝结果,确定压缩后的图像分类卷积神经网络,所述压缩后的图像分类卷积神经网络部署于边缘设备,用于响应图像分类请求,根据所述图像分类请求携带的输入图像,输出分类结果。
可选的,所述聚类模块502,具体用于针对该网络层中每个节点,确定该节点的参数分别与该网络层中其他节点的参数的余弦距离;若该节点的参数的预设邻域内的其他节点的参数的数量不小于预设数量,则确定该节点的参数为核心参数,并按照预设邻域内的其他节点的参数与所述核心参数的余弦距离从小到大的顺序,筛选出所述预设数量的其他节点的参数,并根据筛选出的其他节点的参数对应的余弦距离最大值,确定所述核心参数的核心距离;针对所述核心参数的预设邻域内的每个其他节点的参数,将该其他节点的参数与所述核心参数的余弦距离以及所述核心参数的核心距离中的最大值,作为该其他节点的参数的初始可达距离;针对该网络层中每个节点,确定该节点的参数与距离该节点的参数最近的核心参数对应的初始可达距离,作为该节点的参数的目标可达距离;针对该网络层中每个节点,若该节点的参数的目标可达距离小于预设的聚类参数,则根据该节点的参数的目标可达距离,确定该节点对应的核心参数,将该节点与确定出的核心参数所属的节点,划分为一个聚类簇内的节点;根据各节点基于参数的目标可达距离划分得到的聚类簇的数量,确定该网络层中各节点的参数聚类结果。
可选的,所述聚类模块502,具体用于针对该网络层中每个节点,确定该节点输出的激活特征分别与该网络层中其他节点输出的激活特征的余弦距离;若该节点输出的激活特征的预设邻域内的其他节点输出的激活特征的数量不小于预设数量,则确定该节点输出的激活特征为核心激活特征,并按照预设邻域内的其他节点输出的激活特征与所述核心激活特征的余弦距离从小到大的顺序,筛选出所述预设数量的其他节点输出的激活特征,并根据筛选出的其他节点输出的激活特征对应的余弦距离最大值,确定所述核心参数的核心距离;针对所述核心激活特征的预设邻域内的每个其他节点输出的激活特征,将该其他节点输出的激活特征与所述核心激活特征的余弦距离以及所述核心激活特征的核心距离中的最大值,作为该其他节点输出的激活特征的初始可达距离;针对该网络层中每个节点,确定该节点输出的激活特征与距离该节点输出的激活特征最近的核心激活特征对应的初始可达距离,作为该节点输出的激活特征的目标可达距离;针对该网络层中每个节点,若该节点输出的激活特征的目标可达距离小于预设的聚类参数,则根据该节点输出的激活特征的目标可达距离,确定该节点对应的核心激活特征,将该节点与确定出的核心激活特征所属的节点,划分为一个聚类簇内的节点;根据各节点基于激活特征的目标可达距离划分得到的聚类簇的数量,确定该网络层中各节点的激活特征聚类结果。
可选的,所述剪枝模块504,具体用于确定该网络层在所述图像分类卷积神经网络中的层数;根据所述该网络层的层数、所述综合聚类结果以及该网络层的节点数量,确定该网络层的剪枝后的节点数量,其中,所述层数与所述剪枝后的节点数量为负相关;根据剪枝后该网络层的节点数量,确定该网络层的剪枝结果。
可选的,所述确定模块505,具体用于将预设的特征增强层配置在所述压缩后的图像分类卷积神经网络中,确定目标图像分类卷积神经网络;响应于图像分类请求,将所述图像分类请求携带的输入图像输入所述目标图像分类卷积神经网络,确定所述目标图像分类卷积神经网络输出的分类结果;其中,针对每一特征增强层,确定输入该特征增强层的第一激活特征图;通过该特征增强层的卷积核,确定第二激活特征图,以及通过该特征增强层预设的对应第一激活特征图各通道的池化层,确定所述第一激活特征图各通道的特征增强权重;针对所述第一激活特征图的每个通道,根据该通道的特征增强权重对所述第一激活特征图中该通道的特征图进行加权;根据加权后的第一激活特征图以及所述第二激活特征图,确定该特征增强层的输出结果,并将所述输出结果输入所述目标图像分类卷积神经网络中该特征增强层的下一网络层。
可选地,该装置还包括量化模块506,所述量化模块506具体用于根据各网络层的剪枝结果,确定剪枝后的图像分类卷积神经网络;将所述输入图像输入所述剪枝后的图像分类卷积神经网络,针对所述剪枝后的图像分类卷积神经网络的每一网络层,确定该网络层中各节点的网络权重;确定用于当前量化的量化比特数;根据所述量化比特数,对该网络层的网络权重进行量化,确定量化范围;根据量化前后分别对应的网络权重,通过预设的激活函数,确定量化前后网络权重分别对应的所述激活函数的输出,并以量化前后网络权重分别对应的输出分布之间的相对熵最小化为目标,调整所述量化范围;根据调整后的量化范围,对该网络层的网络权重进行对称量化,并确定该网络层的量化结果;根据各网络层的量化结果,确定压缩后的图像分类卷积神经网络。
可选的,该装置还包括校正模块507,所述校正模块507具体用于针对所述剪枝后的图像分类卷积神经网络的每一网络层,根据该网络层的网络权重,通过预设的缩放参数以及预设的平移参数,确定校正权重;根据所述校正权重,对该网络层的量化结果进行校正;根据校正后各网络层的量化结果,确定压缩后的图像分类卷积神经网络。
可选的,所述校正模块507,还可用于针对所述剪枝后的图像分类卷积神经网络的每一网络层,通过对该网络层的网络权重进行聚类,确定聚类后该网络层中各网络权重分别对应的聚类值;根据各聚类值,对所述该网络层的量化结果进行校正;根据校正后的量化结果,确定压缩后的图像分类卷积神经网络。
本说明书还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图1提供的一种用于图像分类卷积神经网络的网络压缩方法。
本说明书还提供了图5所示的电子设备的示意结构图。如图5所述,在硬件层面,该设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图1所述一种用于图像分类卷积神经网络的网络压缩方法。当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device, PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20 以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。

Claims (12)

1.一种用于图像分类卷积神经网络的网络压缩方法,其特征在于,包括:
获取训练完成的图像分类卷积神经网络,以及输入图像;
将所述输入图像输入所述图像分类卷积神经网络,针对所述图像分类卷积神经网络的每一网络层,确定该网络层中各节点的参数,以及各节点输出的所述输入图像的激活特征;
根据各节点的参数,确定各节点中的核心参数,按照所述核心参数确定各节点的参数聚类结果,以及根据各节点输出的激活特征,确定各节点中的核心激活特征,按照所述核心激活特征确定各节点的激活特征聚类结果;
根据所述参数聚类结果以及所述激活特征聚类结果,确定所述各节点的综合聚类结果;
根据所述综合聚类结果,对该网络层中各节点进行剪枝,并确定该网络层的剪枝结果;
根据各网络层的剪枝结果,确定压缩后的图像分类卷积神经网络,所述压缩后的图像分类卷积神经网络部署于边缘设备,用于响应图像分类请求,根据所述图像分类请求携带的输入图像,输出分类结果。
2.如权利要求1所述方法,其特征在于,根据各节点的参数,确定各节点中的核心参数,按照所述核心参数确定各节点的参数聚类结果,具体包括:
针对该网络层中每个节点,确定该节点的参数分别与该网络层中其他节点的参数的余弦距离;
若该节点的参数的预设邻域内的其他节点的参数的数量不小于预设数量,则确定该节点的参数为核心参数,并按照预设邻域内的其他节点的参数与所述核心参数的余弦距离从小到大的顺序,筛选出所述预设数量的其他节点的参数,并根据筛选出的其他节点的参数对应的余弦距离最大值,确定所述核心参数的核心距离;
针对所述核心参数的预设邻域内的每个其他节点的参数,将该其他节点的参数与所述核心参数的余弦距离以及所述核心参数的核心距离中的最大值,作为该其他节点的参数的初始可达距离;
针对该网络层中每个节点,确定该节点的参数与距离该节点的参数最近的核心参数对应的初始可达距离,作为该节点的参数的目标可达距离;
通过预设的聚类参数,根据该网络层中各节点的参数的目标可达距离,确定各节点的参数聚类结果。
3.如权利要求1所述方法,其特征在于,根据各节点输出的激活特征,确定各节点中的核心激活特征,按照所述核心激活特征确定各节点的激活特征聚类结果,具体包括:
针对该网络层中每个节点,确定该节点输出的激活特征分别与该网络层中其他节点输出的激活特征的余弦距离;
若该节点输出的激活特征的预设邻域内的其他节点输出的激活特征的数量不小于预设数量,则确定该节点输出的激活特征为核心激活特征,并按照预设邻域内的其他节点输出的激活特征与所述核心激活特征的余弦距离从小到大的顺序,筛选出所述预设数量的其他节点输出的激活特征,并根据筛选出的其他节点输出的激活特征对应的余弦距离最大值,确定所述核心参数的核心距离;
针对所述核心激活特征的预设邻域内的每个其他节点输出的激活特征,将该其他节点输出的激活特征与所述核心激活特征的余弦距离以及所述核心激活特征的核心距离中的最大值,作为该其他节点输出的激活特征的初始可达距离;
针对该网络层中每个节点,确定该节点输出的激活特征与距离该节点输出的激活特征最近的核心激活特征对应的初始可达距离,作为该节点输出的激活特征的目标可达距离;
通过预设的聚类参数,根据各节点的激活特征的目标可达距离,确定各节点的激活特征聚类结果。
4.如权利要求2所述方法,其特征在于,通过预设的聚类参数,根据该网络层中各节点的参数的目标可达距离,确定各节点的参数聚类结果,具体包括:
针对该网络层中每个节点,若该节点的参数的目标可达距离小于预设的聚类参数,则根据该节点的参数的目标可达距离,确定该节点对应的核心参数,将该节点与确定出的核心参数所属的节点,划分为一个聚类簇内的节点;
根据各节点基于参数的目标可达距离划分得到的聚类簇的数量,确定该网络层中各节点的参数聚类结果。
5.如权利要求3所述方法,其特征在于,通过预设的聚类参数,根据各节点的激活特征的目标可达距离,确定各节点的激活特征聚类结果,具体包括:
针对该网络层中每个节点,若该节点输出的激活特征的目标可达距离小于预设的聚类参数,则根据该节点输出的激活特征的目标可达距离,确定该节点对应的核心激活特征,将该节点与确定出的核心激活特征所属的节点,划分为一个聚类簇内的节点;
根据各节点基于激活特征的目标可达距离划分得到的聚类簇的数量,确定该网络层中各节点的激活特征聚类结果。
6.如权利要求1所述方法,其特征在于,根据所述综合聚类结果,对该网络层中各节点进行剪枝,并确定该网络层的剪枝结果,具体包括:
确定该网络层在所述图像分类卷积神经网络中的层数;
根据所述该网络层的层数、所述综合聚类结果以及该网络层的节点数量,确定该网络层的剪枝后的节点数量,其中,所述层数与所述剪枝后的节点数量为负相关;
根据剪枝后该网络层的节点数量,确定该网络层的剪枝结果。
7.如权利要求1所述方法,其特征在于,确定压缩后的图像分类卷积神经网络,具体包括:
根据各网络层的剪枝结果,确定剪枝后的图像分类卷积神经网络;
将所述输入图像输入所述剪枝后的图像分类卷积神经网络,针对所述剪枝后的图像分类卷积神经网络的每一网络层,确定该网络层中各节点的网络权重;
确定用于当前量化的量化比特数;
根据所述量化比特数,对该网络层的网络权重进行量化,确定量化范围;
根据量化前后分别对应的网络权重,通过预设的激活函数,确定量化前后网络权重分别对应的所述激活函数的输出,并以量化前后网络权重分别对应的输出分布之间的相对熵最小化为目标,调整所述量化范围;
根据调整后的量化范围,对该网络层的网络权重进行对称量化,并确定该网络层的量化结果;
根据各网络层的量化结果,确定压缩后的图像分类卷积神经网络。
8.如权利要求7所述方法,其特征在于,根据各网络层的量化结果,确定压缩后图像分类卷积神经网络,具体包括:
针对所述剪枝后的图像分类卷积神经网络的每一网络层,根据该网络层的网络权重,通过预设的缩放参数以及预设的平移参数,确定校正权重;
根据所述校正权重,对该网络层的量化结果进行校正;
根据校正后各网络层的量化结果,确定压缩后的图像分类卷积神经网络。
9.如权利要求7所述方法,其特征在于,根据各网络层的量化结果,确定压缩后图像分类卷积神经网络,具体包括:
针对所述剪枝后的图像分类卷积神经网络的每一网络层,通过对该网络层的网络权重进行聚类,确定聚类后该网络层中各网络权重分别对应的聚类值;
根据各聚类值,对所述该网络层的量化结果进行校正;
根据校正后的量化结果,确定压缩后的图像分类卷积神经网络。
10.如权利要求1所述方法,其特征在于,响应图像分类请求,通过所述压缩后的图像分类卷积神经网络,确定所述图像分类请求携带的输入图像的分类结果,具体包括:
将预设的特征增强层配置在所述压缩后的图像分类卷积神经网络中,确定目标图像分类卷积神经网络;
响应于图像分类请求,将所述图像分类请求携带的输入图像输入所述目标图像分类卷积神经网络,确定所述目标图像分类卷积神经网络输出的分类结果;
其中,针对每一特征增强层,确定输入该特征增强层的第一激活特征图;
通过该特征增强层的卷积核,确定第二激活特征图,以及通过该特征增强层预设的对应第一激活特征图各通道的池化层,确定所述第一激活特征图各通道的特征增强权重;
针对所述第一激活特征图的每个通道,根据该通道的特征增强权重对所述第一激活特征图中该通道的特征图进行加权;
根据加权后的第一激活特征图以及所述第二激活特征图,确定该特征增强层的输出结果,并将所述输出结果输入所述目标图像分类卷积神经网络中该特征增强层的下一网络层。
11.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1~10任一项所述的方法。
12.一种电子设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述权利要求1~10任一项所述的方法。
CN202410128337.4A 2024-01-30 2024-01-30 一种用于图像分类卷积神经网络的网络压缩方法及装置 Active CN117649568B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410128337.4A CN117649568B (zh) 2024-01-30 2024-01-30 一种用于图像分类卷积神经网络的网络压缩方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410128337.4A CN117649568B (zh) 2024-01-30 2024-01-30 一种用于图像分类卷积神经网络的网络压缩方法及装置

Publications (2)

Publication Number Publication Date
CN117649568A true CN117649568A (zh) 2024-03-05
CN117649568B CN117649568B (zh) 2024-05-03

Family

ID=90048216

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410128337.4A Active CN117649568B (zh) 2024-01-30 2024-01-30 一种用于图像分类卷积神经网络的网络压缩方法及装置

Country Status (1)

Country Link
CN (1) CN117649568B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112288087A (zh) * 2020-11-11 2021-01-29 上海依图网络科技有限公司 一种神经网络剪枝方法、装置、电子设备及存储介质
CN112733925A (zh) * 2021-01-04 2021-04-30 国网山东省电力公司枣庄供电公司 基于fpcc-gan的构建轻型图像分类网络的方法及系统
CN113657421A (zh) * 2021-06-17 2021-11-16 中国科学院自动化研究所 卷积神经网络压缩方法和装置、图像分类方法和装置
CN114358279A (zh) * 2021-12-09 2022-04-15 深圳大学 图像识别网络模型剪枝方法、装置、设备及存储介质
CN114742997A (zh) * 2022-03-16 2022-07-12 大连理工大学 一种面向图像分割的全卷积神经网络密度峰剪枝方法
CN115661511A (zh) * 2022-09-30 2023-01-31 西安电子科技大学 通道全局排序指导剪枝和量化联合的神经网络压缩方法
WO2023005085A1 (zh) * 2021-07-29 2023-02-02 浪潮电子信息产业股份有限公司 一种神经网络的剪枝方法、装置、设备及存储介质
CN116402117A (zh) * 2023-06-07 2023-07-07 中诚华隆计算机技术有限公司 图像分类卷积神经网络剪枝方法及芯粒器件数据分配方法
CN116894189A (zh) * 2023-09-11 2023-10-17 中移(苏州)软件技术有限公司 一种模型训练方法、装置、设备及可读存储介质
CN116992941A (zh) * 2023-08-17 2023-11-03 河海大学 基于特征相似与特征补偿的卷积神经网络剪枝方法及装置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112288087A (zh) * 2020-11-11 2021-01-29 上海依图网络科技有限公司 一种神经网络剪枝方法、装置、电子设备及存储介质
CN112733925A (zh) * 2021-01-04 2021-04-30 国网山东省电力公司枣庄供电公司 基于fpcc-gan的构建轻型图像分类网络的方法及系统
CN113657421A (zh) * 2021-06-17 2021-11-16 中国科学院自动化研究所 卷积神经网络压缩方法和装置、图像分类方法和装置
WO2023005085A1 (zh) * 2021-07-29 2023-02-02 浪潮电子信息产业股份有限公司 一种神经网络的剪枝方法、装置、设备及存储介质
CN114358279A (zh) * 2021-12-09 2022-04-15 深圳大学 图像识别网络模型剪枝方法、装置、设备及存储介质
CN114742997A (zh) * 2022-03-16 2022-07-12 大连理工大学 一种面向图像分割的全卷积神经网络密度峰剪枝方法
CN115661511A (zh) * 2022-09-30 2023-01-31 西安电子科技大学 通道全局排序指导剪枝和量化联合的神经网络压缩方法
CN116402117A (zh) * 2023-06-07 2023-07-07 中诚华隆计算机技术有限公司 图像分类卷积神经网络剪枝方法及芯粒器件数据分配方法
CN116992941A (zh) * 2023-08-17 2023-11-03 河海大学 基于特征相似与特征补偿的卷积神经网络剪枝方法及装置
CN116894189A (zh) * 2023-09-11 2023-10-17 中移(苏州)软件技术有限公司 一种模型训练方法、装置、设备及可读存储介质

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
CHANG, JF ET AL.: "Global balanced iterative pruning for efficient convolutional neural networks", NEURAL COMPUTING & APPLICATIONS, 3 August 2022 (2022-08-03) *
CHANG, JF ET AL.: "Iterative clustering pruning for convolutional neural networks", KNOWLEDGE-BASED SYSTEMS, 20 March 2023 (2023-03-20) *
YANG, W ET AL.: "Structured pruning via feature channels similarity and mutual learning for convolutional neural network compression", APPLIED INTELLIGENCE, 16 March 2022 (2022-03-16) *
刘全明;辛阳阳;: "基于卷积神经网络特征图聚类的人脸表情识别", 计算技术与自动化, no. 01, 28 March 2020 (2020-03-28) *
尹文枫;梁玲燕;彭慧民;曹其春;赵健;董刚;赵雅倩;赵坤;: "卷积神经网络压缩与加速技术研究进展", 计算机系统应用, no. 09, 15 September 2020 (2020-09-15) *
常璟飞: "深度卷积神经网络通道剪枝方法研究", 中国优秀硕士学位论文库信息科技辑, 15 May 2023 (2023-05-15) *
陈桂林;马胜;郭阳;李艺煌;徐睿;: "通过K-means算法实现神经网络的加速和压缩", 计算机工程与科学, no. 05, 15 May 2019 (2019-05-15) *

Also Published As

Publication number Publication date
CN117649568B (zh) 2024-05-03

Similar Documents

Publication Publication Date Title
CN111354059B (zh) 图像处理方法及装置
CN113657421B (zh) 卷积神经网络压缩方法和装置、图像分类方法和装置
CN110348453B (zh) 一种基于级联的物体检测方法及系统、存储介质及终端
CN116304720B (zh) 一种代价模型训练的方法、装置、存储介质及电子设备
CN117635822A (zh) 一种模型训练的方法、装置、存储介质及电子设备
CN115828162B (zh) 一种分类模型训练的方法、装置、存储介质及电子设备
CN116805393A (zh) 一种基于3DUnet光谱-空间信息融合的高光谱图像分类方法和系统
CN117197781B (zh) 一种交通标志识别的方法、装置、存储介质及电子设备
CN111639745B (zh) 一种数据处理方法及装置
CN117113174A (zh) 一种模型训练的方法、装置、存储介质及电子设备
CN117649568B (zh) 一种用于图像分类卷积神经网络的网络压缩方法及装置
CN115543945B (zh) 一种模型压缩的方法、装置、存储介质及电子设备
CN117036829A (zh) 一种基于原型学习实现标签增强的叶片细粒度识别方法和系统
CN117953258A (zh) 对象分类模型的训练方法、对象分类方法及装置
CN115545572B (zh) 一种业务风控的方法、装置、设备及存储介质
CN113887719B (zh) 一种模型压缩方法及装置
CN116403097A (zh) 一种目标检测方法、装置、存储介质及电子设备
CN114926706B (zh) 数据处理方法、装置及设备
CN116384505A (zh) 一种数据处理的方法、装置、存储介质及电子设备
CN114154579A (zh) 一种图像分类方法、装置、存储介质及电子设备
CN111242195B (zh) 模型、保险风控模型训练方法、装置及电子设备
CN113673601B (zh) 一种行为识别方法、装置、存储介质及电子设备
CN117058525B (zh) 一种模型的训练方法、装置、存储介质及电子设备
CN116109008B (zh) 一种业务执行的方法、装置、存储介质及电子设备
CN113204664B (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