CN113159297A - 一种神经网络压缩方法、装置、计算机设备及存储介质 - Google Patents
一种神经网络压缩方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN113159297A CN113159297A CN202110472664.8A CN202110472664A CN113159297A CN 113159297 A CN113159297 A CN 113159297A CN 202110472664 A CN202110472664 A CN 202110472664A CN 113159297 A CN113159297 A CN 113159297A
- Authority
- CN
- China
- Prior art keywords
- neural network
- compressed
- target
- processing
- intermediate layer
- 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
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 232
- 238000007906 compression Methods 0.000 title claims abstract description 119
- 230000006835 compression Effects 0.000 title claims abstract description 112
- 238000000034 method Methods 0.000 title claims abstract description 82
- 238000012545 processing Methods 0.000 claims abstract description 227
- 238000012549 training Methods 0.000 claims abstract description 41
- 238000004590 computer program Methods 0.000 claims description 11
- 238000010586 diagram Methods 0.000 claims description 9
- 238000013138 pruning Methods 0.000 claims description 5
- 238000013139 quantization Methods 0.000 claims description 5
- 238000012163 sequencing technique Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 description 18
- 238000004364 calculation method Methods 0.000 description 12
- 238000013527 convolutional neural network Methods 0.000 description 12
- 230000004913 activation Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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
-
- 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
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
Abstract
本公开提供了一种神经网络压缩方法、装置、计算机设备及存储介质,其中,该方法包括:从待压缩神经网络的多个中间层中,确定目标中间层;基于所述待压缩神经网络和训练数据,确定所述目标中间层的目标输入数据;基于所述目标中间层对所述目标输入数据进行处理后,基于处理结果的压缩处理结果,确定所述待压缩神经网络的第一输出数据;基于所述第一输出数据对所述待压缩神经网络的网络参数进行调整,并返回执行确定目标中间层的步骤,直至所述待压缩神经网络的所述多个中间层的处理结果都被压缩处理。
Description
技术领域
本公开涉及神经网络技术领域,具体而言,涉及一种神经网络压缩方法、装置、计算机设备及存储介质。
背景技术
深度学习是一种计算密集型的算法,随着处理任务的多样性及复杂度越来越高,对算法准确性及实时性要求不断增高,因此神经网络的规模越来越大,从而需要更多的计算及存储资源的开销,从而给神经网络的部署带来了压力。
相关技术中,在对神经网络进行压缩时,一般是在训练完成后,再对神经网络的权重参数进行压缩处理,这种方法虽然减少了神经网络的计算量,节省了一定的存储空间,但是压缩程度并不高,因此需要一种更优化的压缩方法。
发明内容
本公开实施例至少提供一种神经网络压缩方法、装置、计算机设备及存储介质。
第一方面,本公开实施例提供了一种神经网络压缩方法,包括:
从待压缩神经网络的多个中间层中,确定目标中间层;
基于所述待压缩神经网络和训练数据,确定所述目标中间层的目标输入数据;
基于所述目标中间层对所述目标输入数据进行处理后,基于处理结果的压缩处理结果,确定所述待压缩神经网络的第一输出数据;
基于所述第一输出数据对所述待压缩神经网络的网络参数进行调整,并返回执行确定目标中间层的步骤,直至所述待压缩神经网络的所述多个中间层的处理结果都被压缩处理。
上述方法中,可以对待压缩神经网络的多个中间层的处理结果进行压缩处理,这样由于中间层的处理结果的数据量较大,通过对多个中间层的处理结果进行压缩处理,可以进一步节省存储空间以及提升计算速度;且在对中间层的处理结果进行压缩处理时,由于是依次对多个中间层中的目标中间层进行压缩处理,并在压缩处理之后对待压缩神经网络的网络参数进行调整,这样可以在提升计算速度和降低存储空间的同时,保证了待压缩神经网络的网络精度。
一种可能的实施方式中,基于所述目标中间层对所述目标输入数据进行处理后,基于处理结果的压缩处理结果,确定所述待压缩神经网络的第一输出数据,包括:
基于所述目标中间层对所述目标输入数据进行处理后,对处理结果进行压缩处理,得到第一中间处理数据;
基于所述第一中间处理数据,确定所述待压缩神经网络的第一输出数据。
一种可能的实施方式中,所述从待压缩神经网络的多个中间层中,确定目标中间层,包括:
确定所述待压缩神经网络的多个中间层中未进行压缩处理的候选中间层;以及,基于预设的训练完成次数和所述待压缩神经网络的中间层的第一个数,确定所述目标中间层所包括的中间层的第二个数;
按照所述第二个数从所述候选中间层中确定待处理的目标中间层。
这样,通过确定多个中间层中的目标中间层,可以实现对多个中间层的分层处理,从而降低了所述待压缩神经网络在处理后,网络精度下降较大的风险。
一种可能的实施方式中,所述按照所述第二个数从所述候选中间层中确定待处理的目标中间层,包括:
按照所述待压缩神经网络的多个中间层对应的压缩顺序和所述第二个数,从所述候选中间层中确定所述待处理的目标中间层。
这样,通过预设的处理顺序和第二个数确定目标中间层,可以减少确定的所述目标中间层在处理后,所带来的网络精度下降。
一种可能的实施方式中,所述第一中间处理数据为所述目标中间层的第二输出数据;
所述基于所述第一中间处理数据,确定所述待压缩神经网络的第一输出数据,包括:
将所述第一中间处理数据输入至所述目标中间层之后的其他处理层,确定所述待压缩神经网络的输出数据,所述其他处理层包括所述目标中间层之后的其他中间层以及输出层。
一种可能的实施方式中,所述目标中间层包括多个中间层;
所述基于所述目标中间层对所述目标输入数据进行处理后,对处理结果进行压缩处理,得到第一中间处理数据,包括:
基于所述目标中间层的第N个中间层对输入数据进行处理后,对处理结果进行压缩处理,得到第N个中间层对应的第二中间处理数据;
将所述第N个中间层对应的第二中间处理数据作为第N+1层中间层的输入数据,并基于第N+1个中间层对输入数据进行处理后,对处理结果进行压缩处理,得到第N+1个中间层对应的第二中间处理数据;
其中,所述目标中间层的最后一个中间层对应的第二中间处理数据为所述第一中间处理数据;所述目标中间层的第一个中间层的输入数据为所述目标输入数据,N为不大于M-1的正整数,M为所述目标中间层包括的中间层的个数。
一种可能的实施方式中,所述处理结果包括特征图,所述压缩处理包括稀疏化处理;
所述对处理结果进行压缩处理,包括:
将所述特征图的特征点在各个通道上的取值的绝对值按照从小到大的顺序进行排序;以及确定所述特征图的特征点的个数和通道个数;
基于所述特征点的个数、通道个数以及预先设置的稀疏化比例,确定稀疏化个数;
按照所述稀疏化个数以及排序结果,确定需要进行压缩处理的目标通道取值,并将确定的所述目标通道取值调整为零。
这样,通过预先设置的稀疏化比例,对特征图进行相应的处理,得到更多的零值,从而在后续进行运算处理时,能够加快运算速度,节约计算资源。
一种可能的实施方式中,所述基于所述第一输出数据对所述待压缩神经网络的网络参数进行调整,包括:
确定当前次待压缩神经网络输出的第一输出数据;
基于当前次待压缩神经网络输出的第一输出数据,对上一次训练完成的待压缩神经网络进行训练。
这样,通过对处理后的所述待压缩神经网络进行相应的训练,从而降低了每次处理所带来的网络精度下降的影响,使得最终处理后的所述待压缩神经网络的网络精度相较于处理之前不会下降明显。
一种可能的实施方式中,所述基于所述第一输出数据对所述待压缩神经网络的网络参数进行调整,包括:
获取所述训练数据对应的监督数据;
基于所述第一输出数据和所述监督数据,对所述待压缩神经网络中的网络参数进行调整。
一种可能的实施方式中,所述压缩处理包括以下至少一种:
稀疏化处理、量化处理、剪枝处理、二进制化处理、权值共享。
第二方面,本公开实施例还提供一种神经网络压缩装置,包括:
第一确定模块,用于从待压缩神经网络的多个中间层中,确定目标中间层;
第二确定模块,用于基于所述待压缩神经网络和训练数据,确定所述目标中间层的目标输入数据;
压缩模块,用于基于所述目标中间层对所述目标输入数据进行处理后,基于处理结果的压缩处理结果,确定所述待压缩神经网络的第一输出数据;
调整模块,用于基于所述第一输出数据对所述待压缩神经网络的网络参数进行调整,并返回执行确定目标中间层的步骤,直至所述待压缩神经网络的所述多个中间层的处理结果都被压缩处理。
一种可能的实施方式中,所述压缩模块,在基于所述目标中间层对所述目标输入数据进行处理后,基于处理结果的压缩处理结果,确定所述待压缩神经网络的第一输出数据时,用于:
基于所述目标中间层对所述目标输入数据进行处理后,对处理结果进行压缩处理,得到第一中间处理数据;
基于所述第一中间处理数据,确定所述待压缩神经网络的第一输出数据。
一种可能的实施方式中,所述第一确定模块,在所述从待压缩神经网络的多个中间层中,确定目标中间层时,用于:
确定所述待压缩神经网络的多个中间层中未进行压缩处理的候选中间层;以及,基于预设的训练完成次数和所述待压缩神经网络的中间层的第一个数,确定所述目标中间层所包括的中间层的第二个数;
按照所述第二个数从所述候选中间层中确定待处理的目标中间层。
一种可能的实施方式中,所述第一确定模块,在所述按照所述第二个数从所述候选中间层中确定待处理的目标中间层时,用于:
按照所述待压缩神经网络的多个中间层对应的压缩顺序和所述第二个数,从所述候选中间层中确定所述待处理的目标中间层。
一种可能的实施方式中,所述第一中间处理数据为所述目标中间层的第二输出数据;
所述压缩模块,在所述基于所述第一中间处理数据,确定所述待压缩神经网络的第一输出数据时,用于:
将所述第一中间处理数据输入至所述目标中间层之后的其他处理层,确定所述待压缩神经网络的输出数据,所述其他处理层包括所述目标中间层之后的其他中间层以及输出层。
一种可能的实施方式中,所述目标中间层包括多个中间层;
所述压缩模块,在所述基于所述目标中间层对所述目标输入数据进行处理后,对处理结果进行压缩处理,得到第一中间处理数据时,用于:
基于所述目标中间层的第N个中间层对输入数据进行处理后,对处理结果进行压缩处理,得到第N个中间层对应的第二中间处理数据;
将所述第N个中间层对应的第二中间处理数据作为第N+1层中间层的输入数据,并基于第N+1个中间层对输入数据进行处理后,对处理结果进行压缩处理,得到第N+1个中间层对应的第二中间处理数据;
其中,所述目标中间层的最后一个中间层对应的第二中间处理数据为所述第一中间处理数据;所述目标中间层的第一个中间层的输入数据为所述目标输入数据,N为不大于M-1的正整数,M为所述目标中间层包括的中间层的个数。
一种可能的实施方式中,所述处理结果包括特征图,所述压缩处理包括稀疏化处理;
所述压缩模块,在所述对处理结果进行压缩处理时,用于:
将所述特征图的特征点在各个通道上的取值的绝对值按照从小到大的顺序进行排序;以及确定所述特征图的特征点的个数和通道个数;
基于所述特征点的个数、通道个数以及预先设置的稀疏化比例,确定稀疏化个数;
按照所述稀疏化个数以及排序结果,确定需要进行压缩处理的目标通道取值,并将确定的所述目标通道取值调整为零。
一种可能的实施方式中,所述调整模块,在所述基于所述第一输出数据对所述待压缩神经网络的网络参数进行调整时,用于:
确定当前次待压缩神经网络输出的第一输出数据;
基于当前次待压缩神经网络输出的第一输出数据,对上一次训练完成的待压缩神经网络进行训练。
一种可能的实施方式中,所述调整模块,在所述基于所述第一输出数据对所述待压缩神经网络的网络参数进行调整时,用于:
获取所述训练数据对应的监督数据;
基于所述第一输出数据和所述监督数据,对所述待压缩神经网络中的网络参数进行调整。
一种可能的实施方式中,所述压缩处理包括以下至少一种:
稀疏化处理、量化处理、剪枝处理、二进制化处理、权值共享。
第三方面,本公开实施例还提供一种计算机设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
第四方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
关于上述神经网络压缩装置、计算机设备、及计算机可读存储介质的效果描述参见上述神经网络压缩方法的说明,这里不再赘述。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种神经网络压缩方法的流程图;
图2示出了本公开实施例所提供的神经网络压缩方法中,确定目标中间层的具体方法的流程图;
图3示出了本公开实施例所提供的神经网络压缩方法中,确定所述待压缩神经网络的第一输出数据的具体方法的流程图;
图4示出了本公开实施例所提供的神经网络压缩方法中,得到第一中间处理数据的具体方法的流程图;
图5示出了本公开实施例所提供的神经网络压缩方法中,对处理结果进行压缩处理的具体方法的流程图;
图6示出了本公开实施例所提供的神经网络压缩方法中,一种对网络参数进行调整的具体方法的流程图;
图7示出了本公开实施例所提供的神经网络压缩方法中,另一种对网络参数进行调整的具体方法的流程图;
图8示出了本公开实施例提供的另一种神经网络压缩方法的流程图;
图9示出了本公开实施例所提供的一种神经网络压缩装置的示意图;
图10示出了本公开实施例所提供的一种计算机设备的结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
经研究发现,相关技术中,在对神经网络进行压缩时,一般是在训练完成后,再对神经网络的权重参数进行压缩处理,这种方法虽然减少了神经网络的计算量,节省了一定的存储空间,但是压缩程度并不高,因此需要一种更优化的压缩方法。
而在对中间层进行压缩处理时,也一般是在训练完成后,直接对所有想要优化的中间层进行压缩处理,从而使得一次性压缩处理的中间层过多,可能导致神经网络的网络精度下降严重,从而出现即使进行相应的调整,也无法恢复网络精度的问题。
基于上述研究,本公开提供了一种神经网络压缩方法、装置、计算机设备及存储介质,可以对待压缩神经网络的多个中间层的处理结果进行压缩处理,这样由于中间层的处理结果的数据量较大,通过对多个中间层的处理结果进行压缩处理,可以进一步节省存储空间以及提升计算速度;且在对中间层的处理结果进行压缩处理时,由于是依次对多个中间层中的目标中间层进行压缩处理,并在压缩处理之后对待压缩神经网络的网络参数进行调整,这样可以在提升计算速度和降低存储空间的同时,保证了待压缩神经网络的网络精度。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种神经网络压缩方法进行详细介绍,本公开实施例所提供的神经网络压缩方法的执行主体一般为具有一定计算能力的计算机设备,该计算机设备例如包括:服务器或其它处理设备。在一些可能的实现方式中,该神经网络压缩方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
参见图1所示,为本公开实施例提供的神经网络压缩方法的流程图,所述方法包括步骤S101~S104,其中:
S101:从待压缩神经网络的多个中间层中,确定目标中间层。
S102:基于所述待压缩神经网络和训练数据,确定所述目标中间层的目标输入数据。
S103:基于所述目标中间层对所述目标输入数据进行处理后,基于处理结果的压缩处理结果,确定所述待压缩神经网络的第一输出数据。
S104:基于所述第一输出数据对所述待压缩神经网络的网络参数进行调整,并返回执行确定目标中间层的步骤,直至所述待压缩神经网络的所述多个中间层的处理结果都被压缩处理。
以下是对上述步骤的详细介绍。
针对S101,这里所述待压缩神经网络可以是多层神经网络,所述多层神经网络的网络结构中包括输入层、中间层(隐层)以及输出层。在一种可能的应用场景中,以所述待处理的神经网络为卷积神经网络(Convolutional Neural Networks,CNN)为例,所述中间层包括卷积层、池化层、激活层等多个处理层。
实际应用中,所述待压缩神经网络可以是预先训练好的(此时网络精度最高),而对所述待压缩神经网络进行压缩处理之后,虽然部分性能可以相应得到提升(比如神经网络处理速度得到提升),但神经网络的网络精度会出现下降,尤其是在同时对所述待压缩神经网络的多个中间层进行压缩时,同时进行压缩处理的中间层的个数越多,网络精度发生较大下降的可能性就越大,因此可以确定需要进行压缩处理的中间层中的目标中间层,并分步进行压缩处理,避免一次性压缩过多的中间层导致的神经网络的网络精度突然下降过大的问题,当所述网络精度突然下降过大时,会使得在后续进行重新训练时的损失函数难以拟合,也即无法较好的完成重新训练的过程,导致网络精度损失较大,使得最终得到的神经网络的网络精度也较低,其中,所述网络精度用于表征神经网络输出结果的准确性。
一种可能的实施方式中,如图2所示,可以通过以下步骤确定目标中间层:
S201:确定所述待压缩神经网络的多个中间层中未进行压缩处理的候选中间层;以及,基于预设的训练完成次数和所述待压缩神经网络的中间层的第一个数,确定所述目标中间层所包括的中间层的第二个数。
这里,所述待压缩神经网络的多个中间层可以是所述待压缩神经网络全部的中间层;或者,也可以是所述待压缩神经网络部分的中间层,比如部分目标类型的中间层。
具体实施中,在进行压缩处理时可以是分多次进行的,因此所述候选中间层也是在发生变化的,比如在第一次进行压缩处理之前,有50个候选中间层,第一次对其中的10个进行了压缩处理,则后续再确定所述未进行压缩处理的候选中间层时,即可确定剩下的40个未被处理的中间层为所述候选中间层。
此外,所述训练完成次数用于表征完成所述待压缩神经网络的多个中间层的压缩处理所需要进行的次数;所述待压缩神经网络的中间层的第一个数表征需要进行压缩处理的中间层的总个数;所述目标中间层所包括的中间层的第二个数表征在进行一次压缩时,需要压缩的中间层的个数。
示例性的,所述预设的训练完成次数为5次,所述待压缩神经网络的中间层第一个数为50个,则所述目标中间层所包括的中间层的第二个数可以是50÷5=10个。
S202:按照所述第二个数从所述候选中间层中确定待处理的目标中间层。
一种可能的实施方式中,可以按照所述待压缩神经网络的多个中间层对应的压缩顺序和所述第二个数,从所述候选中间层中确定所述待处理的目标中间层。
其中,所述压缩顺序可以是预先设置的对所述多个中间层进行压缩处理的顺序,其可以是按照与所述待压缩神经网络的输出层的距离进行设置的,比如,距离所述输出层越近,则压缩顺序的优先级就越高;
或者,也可以是按照所述中间层的类型进行设置的,比如可以优先压缩第一目标类型的中间层,再压缩第二目标类型的中间层,以此类推,直至全部想要压缩的中间层都被压缩完成。
S102:基于所述待压缩神经网络和训练数据,确定所述目标中间层的目标输入数据。
这里,可以将所述训练数据输入至所述待压缩神经网络,即可确定输入至所述目标中间层的目标输入数据。
示例性的,以所述待压缩的神经网络为CNN,所述待压缩的神经网络有50个中间层为例,当此时的所述目标中间层为第40-50层时,需要确定所述第40层的输入数据。这里,可以选择一张典型的测试图片作为所述训练数据输入至所述CNN,并通过输入层和中间层中的前39层的处理,得到第40层的输入数据。
S103:基于所述目标中间层对所述目标输入数据进行处理后,基于处理结果的压缩处理结果,确定所述待压缩神经网络的第一输出数据。
一种可能的实施方式中,如图3所示,可以通过以下步骤确定所述待压缩神经网络的第一输出数据:
S301:基于所述目标中间层对所述目标输入数据进行处理后,对处理结果进行压缩处理,得到第一中间处理数据。
其中,对于所述处理结果进行的压缩处理包括稀疏化处理、量化处理、剪枝处理、二进制化处理、权值共享中的至少一种。
需要说明的是,在进行压缩处理时,可以根据需要对不同类型的神经网络/中间层采取不同的一种或多种的压缩处理方式,针对同一类型的神经网络,也可以对其中相同类型的中间层采取相同/不同的压缩处理方式。具体实施时,对压缩处理方式的选择和使用可以根据实际需要来执行,本公开实施例对此不做限定。
实际应用中,所述目标中间层可以包括多个中间层(比如10个中间层),也即每次进行压缩时压缩多个中间层;或者,所述目标中间层也可以只包括一个中间层,也即每次进行压缩时压缩一个中间层。
具体的,随着处理任务的多样性及复杂度越来越高,神经网络的中间层也越来越多,且每次进行压缩后,为了保证神经网络的网络精度不会损失严重,一般会进行相应的训练,如果每次只压缩一个中间层,便进行一次相应的压缩,则可能大大提高压缩神经网络所需要的时间。因此,为了提高神经网络的压缩效率,在实际进行神经网络压缩时,所述目标中间层可以包括多个中间层,也即每次进行压缩时压缩多个中间层,然后再进行相应的训练,以确保神经网络的网络精度不会损失严重。
一种可能的实施方式中,在所述目标中间层包括多个中间层的情况下,如图4所示,可以通过以下步骤得到第一中间处理数据:
S401:基于所述目标中间层的第N个中间层对输入数据进行处理后,对处理结果进行压缩处理,得到第N个中间层对应的第二中间处理数据。
这里,当N为1时,则该中间层的输入数据即为所述目标输入数据。
示例性的,以对CNN的激活层进行稀疏化处理为例,经过任一激活层中激活函数的运算处理后,对运算结果进行一次稀疏化处理,得到该任一激活层对应的所述第二中间处理数据。
S402:将所述第N个中间层对应的第二中间处理数据作为第N+1层中间层的输入数据,并基于第N+1个中间层对输入数据进行处理后,对处理结果进行压缩处理,得到第N+1个中间层对应的第二中间处理数据。
其中,所述目标中间层的最后一个中间层对应的第二中间处理数据为所述第一中间处理数据;所述目标中间层的第一个中间层的输入数据为所述目标输入数据,N为不大于M-1的正整数,M为所述目标中间层包括的中间层的个数。
这里,仍以对CNN的激活层进行稀疏化处理为例,当包括10个激活层的目标中间层中,前9层激活层都完成稀疏化处理后,当第10层激活层对第9层对应的第二中间处理数据进行处理后,对该处理结果再次进行稀疏化处理,此时得到的所述第二中间处理数据即为所述第一中间处理数据(也即该包括10个激活层的目标中间层的输出数据)。
在一种可能的应用场景中,激活层的处理结果可以包括特征图,所述特征图中可以包含多个特征点,每个特征点可以有多个通道,每个通道上可以有对应的取值,该取值可以被称为特征值。
一种可能的实施方式中,如图5所示,在所述处理结果包括特征图,所述压缩处理包括稀疏化处理时,可以通过以下步骤对处理结果进行压缩处理:
S501:将所述特征图的特征点在各个通道上的取值的绝对值按照从小到大的顺序进行排序;以及确定所述特征图的特征点的个数和通道个数。
这里,所述特征点在各个通道上的取值也即特征值。
S502:基于所述特征点的个数、通道个数以及预先设置的稀疏化比例,确定稀疏化个数。
这里,可以基于所述特征点的个数和通道个数,确定出所述特征值的个数,所述特征值的个数即为各个特征点的个数与所述通道个数的乘积,比如特征图上有10个特征点,每个特征点有3个通道,则所述特征值的个数即为30个。
此外,所述稀疏化比例用于表征进行稀疏化的程度,所述稀疏化比例越高则表示需要进行压缩处理的特征值越多,所述预先设置的稀疏化比例可以提前加入到所述待压缩神经网络的配置文件中。比如,可以在神经网络每个激活层的配置文件中添加稀疏化比例参数。
示例性的,以所述特征值的个数为100个,所述稀疏化比例为5%为例,则需要进行稀疏化处理的稀疏化个数为5个,当所述特征值的个数与所述稀疏化比例的乘积不为整数时,可以选择向上/下取整,从而确保所述稀疏化个数为整数。
S503:按照所述稀疏化个数以及排序结果,确定需要进行压缩处理的目标通道取值,并将确定的所述目标通道取值调整为零。
这里,可以按照所述稀疏化个数,确定所述排序结果中需要进行压缩处理的目标通道取值,然后对所述目标通道的取值进行调整。
示例性的,以所述稀疏化个数为5个,排序结果为0.1-0.1-0.2-0.2-0.3-0.4-0.4-0.5-0.5-0.6为例,可以将最接近0(也即最小)的0.1、0.1、0.2、0.2、0.3这五个绝对值所对应的通道取值确定为目标通道取值,并将所述目标通道取值调整为0。
需要说明的是,这里调整为0的目的是为了后续更方便的进行运算处理,以进行卷积运算处理为例,当该通道取值为0时,使用本公开实施例所述的方法压缩后得到的神经网络,在硬件(比如AI芯片等)上部署并执行运算处理时,通过所述硬件执行的zero-skiping操作,可以判断出该通道取值为0,从而可以在卷积运算时跳过与该通道取值相关的乘法和加法运算,从而可以提升运算处理的速度,节省计算资源。
此外,将对应的绝对值数值较小的通道进行上述调整为零的处理,是因为更接近0的通道取值对网络特征提取的价值相对较小,将该部分进行上述处理,对网络精度影响也较小。
S302:基于所述第一中间处理数据,确定所述待压缩神经网络的第一输出数据。
这里,所述第一中间处理数据为所述目标中间层的最后一层中间层对应的第二输出数据。
实际应用中,在对所待压缩神经网络的目标中间层进行了压缩处理之后,所述目标中间层之后的其他层(中间层和/或输出层)的输入数据也会相应的发生变化,从而使得整个待压缩神经网络的输出相较于没有经过压缩之前的输出是发生了变化的,而未经压缩的神经网络一般是网络精度最高的,因此需要确定出压缩之后的所述待压缩神经网络的输出数据,以便可以进一步的确定出此次压缩对该待压缩神经网络在网络精度的影响。
一种可能的实施方式中,可以将所述第一中间处理数据输入至所述目标中间层之后的其他处理层,确定所述待压缩神经网络的输出数据,所述其他处理层包括所述目标中间层之后的其他中间层以及输出层。
这样,在得到所述待压缩神经网络的第一输出数据时,即可视为完成了一次压缩。在这次压缩中,对所述待压缩神经网络的目标中间层进行了压缩处理,同时也得到了第一输出数据,第一输出数据可以与监督数据结合,用于衡量本次压缩所带来的精度损失。
S104:基于所述第一输出数据对所述待压缩神经网络的网络参数进行调整,并返回执行确定目标中间层的步骤,直至所述待压缩神经网络的所述多个中间层的处理结果都被压缩处理。
实际应用中,步骤S101~S103即可视为对待压缩神经网络的一次压缩,在进行一次压缩之后,便可以对压缩处理后的神经网络相应的进行一次调整(重训练),然后重复执行处理和调整的过程,直到分步的将全部想要压缩的中间层都进行了压缩处理。
这样,相较于一次性压缩全部的中间层,再进行一次相应的调整,虽然执行步骤增加了,但是可以避免由于一次性压缩过多中间层所导致的网络精度下降严重,从而后续在进行相应的调整时,无法恢复网络精度的问题。
一种可能的实施方式中,如图6所示,可以通过以下步骤对所述待压缩神经网络的网络参数进行调整:
S601:确定当前次待压缩神经网络输出的第一输出数据。
S602:基于当前次待压缩神经网络输出的第一输出数据,对上一次训练完成的待压缩神经网络进行训练。
这里,每次进行训练的待压缩神经网络都是在上一次进行压缩并训练完成后的,可以通过多次的训练来使神经网络的参数适配每次的压缩,从而使得最后一次训练后得到的所述待压缩神经网络的网络精度,相较于原始未经压缩的神经网络的网络精度不会下降过多,且训练时更容易收敛(训练速度更快)。
实际应用中,在对所述网络参数进行调整时,可以调整神经网络中的权重数据,在调整所述权重数据时可以是有监督数据的有监督训练,也可以是无监督数据的无监督训练。为了加快训练速度,在训练所述待压缩神经网络时,还可以使用微调fine-tune操作对所述权重参数进行调整。
一种可能的实施方式中,如图7所示,可以通过以下步骤对所述待压缩神经网络的网络参数进行调整:
S701:获取所述训练数据对应的监督数据。
S702:基于所述第一输出数据和所述监督数据,对所述待压缩神经网络中的网络参数进行调整。
具体的,基于获取的所述监督数据和所述第一输出数据,即可对所述待压缩神经网络进行有监督训练,并在训练过程中完成对所述网络参数的调整。
通过上述方法,可以得到一个进行压缩处理后的神经网络,该神经网络与待压缩神经网络相比,权重参数有所改变,并且在中间层之后增加了压缩处理,但是该神经网络的网络输出精度与所述待压缩神经网络的输出精度之间的差距较小,即该神经网络保证了网络精度不下降。
下面,以对所述CNN的激活层进行稀疏化处理为例,对本公开实施例提供的神经网络压缩方法进行描述。
如图8所示,为本公开实施例提供的另一种神经网络压缩方法的流程图,包括:
S801:获取预先训练的CNN。
S802:对CNN中的目标激活层进行稀疏化处理。
这里,在对所述目标激活层进行稀疏化处理之前,还包括确定出所述CNN中的目标激活层。
S803:对稀疏化处理后的CNN进行重训练。
S804:判断是否所有需要稀疏化处理的激活层都完成稀疏化处理。
具体的,当所述S804的判断结果为否,则返回执行所述S802确定所述目标激活层,并对所述目标激活层的稀疏化处理。
S805:结束压缩处理,得到压缩处理后的CNN。
具体的,上述各步骤的具体内容参照上文相关描述,在此不再展开说明。
本公开实施例提供的神经网络压缩方法,可以对待压缩神经网络的多个中间层的处理结果进行压缩处理,这样由于中间层的处理结果的数据量较大,通过对多个中间层的处理结果进行压缩处理,可以进一步节省存储空间以及提升计算速度;且在对中间层的处理结果进行压缩处理时,由于是依次对多个中间层中的目标中间层进行压缩处理,并在压缩处理之后对待压缩神经网络的网络参数进行调整,这样可以在提升计算速度和降低存储空间的同时,保证了待压缩神经网络的网络精度。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与神经网络压缩方法对应的神经网络压缩装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述神经网络压缩方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参照图9所示,为本公开实施例提供的一种神经网络压缩装置的架构示意图,所述装置包括:第一确定模块901、第二确定模块902、压缩模块903、调整模块904;其中,
第一确定模块901,用于从待压缩神经网络的多个中间层中,确定目标中间层;
第二确定模块902,用于基于所述待压缩神经网络和训练数据,确定所述目标中间层的目标输入数据;
压缩模块903,用于基于所述目标中间层对所述目标输入数据进行处理后,基于处理结果的压缩处理结果,确定所述待压缩神经网络的第一输出数据;
调整模块904,用于基于所述第一输出数据对所述待压缩神经网络的网络参数进行调整,并返回执行确定目标中间层的步骤,直至所述待压缩神经网络的所述多个中间层的处理结果都被压缩处理。
一种可能的实施方式中,所述压缩模块903,在基于所述目标中间层对所述目标输入数据进行处理后,基于处理结果的压缩处理结果,确定所述待压缩神经网络的第一输出数据时,用于:
基于所述目标中间层对所述目标输入数据进行处理后,对处理结果进行压缩处理,得到第一中间处理数据;
基于所述第一中间处理数据,确定所述待压缩神经网络的第一输出数据。
一种可能的实施方式中,所述第一确定模块901,在所述从待压缩神经网络的多个中间层中,确定目标中间层时,用于:
确定所述待压缩神经网络的多个中间层中未进行压缩处理的候选中间层;以及,基于预设的训练完成次数和所述待压缩神经网络的中间层的第一个数,确定所述目标中间层所包括的中间层的第二个数;
按照所述第二个数从所述候选中间层中确定待处理的目标中间层。
一种可能的实施方式中,所述第一确定模块901,在所述按照所述第二个数从所述候选中间层中确定待处理的目标中间层时,用于:
按照所述待压缩神经网络的多个中间层对应的压缩顺序和所述第二个数,从所述候选中间层中确定所述待处理的目标中间层。
一种可能的实施方式中,所述第一中间处理数据为所述目标中间层的第二输出数据;
所述压缩模块903,在所述基于所述第一中间处理数据,确定所述待压缩神经网络的第一输出数据时,用于:
将所述第一中间处理数据输入至所述目标中间层之后的其他处理层,确定所述待压缩神经网络的输出数据,所述其他处理层包括所述目标中间层之后的其他中间层以及输出层。
一种可能的实施方式中,所述目标中间层包括多个中间层;
所述压缩模块903,在所述基于所述目标中间层对所述目标输入数据进行处理后,对处理结果进行压缩处理,得到第一中间处理数据时,用于:
基于所述目标中间层的第N个中间层对输入数据进行处理后,对处理结果进行压缩处理,得到第N个中间层对应的第二中间处理数据;
将所述第N个中间层对应的第二中间处理数据作为第N+1层中间层的输入数据,并基于第N+1个中间层对输入数据进行处理后,对处理结果进行压缩处理,得到第N+1个中间层对应的第二中间处理数据;
其中,所述目标中间层的最后一个中间层对应的第二中间处理数据为所述第一中间处理数据;所述目标中间层的第一个中间层的输入数据为所述目标输入数据,N为不大于M-1的正整数,M为所述目标中间层包括的中间层的个数。
一种可能的实施方式中,所述处理结果包括特征图,所述压缩处理包括稀疏化处理;
所述压缩模块903,在所述对处理结果进行压缩处理时,用于:
将所述特征图的特征点在各个通道上的取值的绝对值按照从小到大的顺序进行排序;以及确定所述特征图的特征点的个数和通道个数;
基于所述特征点的个数、通道个数以及预先设置的稀疏化比例,确定稀疏化个数;
按照所述稀疏化个数以及排序结果,确定需要进行压缩处理的目标通道取值,并将确定的所述目标通道取值调整为零。
一种可能的实施方式中,所述调整模块904,在所述基于所述第一输出数据对所述待压缩神经网络的网络参数进行调整时,用于:
确定当前次待压缩神经网络输出的第一输出数据;
基于当前次待压缩神经网络输出的第一输出数据,对上一次训练完成的待压缩神经网络进行训练。
一种可能的实施方式中,所述调整模块904,在所述基于所述第一输出数据对所述待压缩神经网络的网络参数进行调整时,用于:
获取所述训练数据对应的监督数据;
基于所述第一输出数据和所述监督数据,对所述待压缩神经网络中的网络参数进行调整。
一种可能的实施方式中,所述压缩处理包括以下至少一种:
稀疏化处理、量化处理、剪枝处理、二进制化处理、权值共享。
本公开实施例提供的神经网络压缩装置,可以对待压缩神经网络的多个中间层的处理结果进行压缩处理,这样由于中间层的处理结果的数据量较大,通过对多个中间层的处理结果进行压缩处理,可以进一步节省存储空间以及提升计算速度;且在对中间层的处理结果进行压缩处理时,由于是依次对多个中间层中的目标中间层进行压缩处理,并在压缩处理之后对待压缩神经网络的网络参数进行调整,这样可以在提升计算速度和降低存储空间的同时,保证了待压缩神经网络的网络精度。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
基于同一技术构思,本公开实施例还提供了一种计算机设备。参照图10所示,为本公开实施例提供的计算机设备1000的结构示意图,包括处理器1001、存储器1002、和总线1003。其中,存储器1002用于存储执行指令,包括内存10021和外部存储器10022;这里的内存10021也称内存储器,用于暂时存放处理器1001中的运算数据,以及与硬盘等外部存储器10022交换的数据,处理器1001通过内存10021与外部存储器10022进行数据交换,当计算机设备1000运行时,处理器1001与存储器1002之间通过总线1003通信,使得处理器1001在执行以下指令:
从待压缩神经网络的多个中间层中,确定目标中间层;
基于所述待压缩神经网络和训练数据,确定所述目标中间层的目标输入数据;
基于所述目标中间层对所述目标输入数据进行处理后,基于处理结果的压缩处理结果,确定所述待压缩神经网络的第一输出数据;
基于所述第一输出数据对所述待压缩神经网络的网络参数进行调整,并返回执行确定目标中间层的步骤,直至所述待压缩神经网络的所述多个中间层的处理结果都被压缩处理。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的神经网络压缩方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的神经网络压缩方法的步骤,具体可参见上述方法实施例,在此不再赘述。
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。
Claims (13)
1.一种神经网络压缩方法,其特征在于,包括:
从待压缩神经网络的多个中间层中,确定目标中间层;
基于所述待压缩神经网络和训练数据,确定所述目标中间层的目标输入数据;
基于所述目标中间层对所述目标输入数据进行处理后,基于处理结果的压缩处理结果,确定所述待压缩神经网络的第一输出数据;
基于所述第一输出数据对所述待压缩神经网络的网络参数进行调整,并返回执行确定目标中间层的步骤,直至所述待压缩神经网络的所述多个中间层的处理结果都被压缩处理。
2.根据权利要求1所述的方法,其特征在于,所述基于所述目标中间层对所述目标输入数据进行处理后,基于处理结果的压缩处理结果,确定所述待压缩神经网络的第一输出数据,包括:
基于所述目标中间层对所述目标输入数据进行处理后,对处理结果进行压缩处理,得到第一中间处理数据;
基于所述第一中间处理数据,确定所述待压缩神经网络的第一输出数据。
3.根据权利要求1所述的方法,其特征在于,所述从待压缩神经网络的多个中间层中,确定目标中间层,包括:
确定所述待压缩神经网络的多个中间层中未进行压缩处理的候选中间层;以及,基于预设的训练完成次数和所述待压缩神经网络的中间层的第一个数,确定所述目标中间层所包括的中间层的第二个数;
按照所述第二个数从所述候选中间层中确定待处理的目标中间层。
4.根据权利要求3所述的方法,其特征在于,所述按照所述第二个数从所述候选中间层中确定待处理的目标中间层,包括:
按照所述待压缩神经网络的多个中间层对应的压缩顺序和所述第二个数,从所述候选中间层中确定所述待处理的目标中间层。
5.根据权利要求2所述的方法,其特征在于,所述基于所述第一中间处理数据,确定所述待压缩神经网络的第一输出数据,包括:
将所述第一中间处理数据输入至所述目标中间层之后的其他处理层,确定所述待压缩神经网络的输出数据,所述其他处理层包括所述目标中间层之后的其他中间层以及输出层。
6.根据权利要求2所述的方法,其特征在于,所述目标中间层包括多个中间层;
所述基于所述目标中间层对所述目标输入数据进行处理后,对处理结果进行压缩处理,得到第一中间处理数据,包括:
基于所述目标中间层的第N个中间层对输入数据进行处理后,对处理结果进行压缩处理,得到第N个中间层对应的第二中间处理数据;
将所述第N个中间层对应的第二中间处理数据作为第N+1层中间层的输入数据,并基于第N+1个中间层对输入数据进行处理后,对处理结果进行压缩处理,得到第N+1个中间层对应的第二中间处理数据;
其中,所述目标中间层的最后一个中间层对应的第二中间处理数据为所述第一中间处理数据;所述目标中间层的第一个中间层的输入数据为所述目标输入数据,N为不大于M-1的正整数,M为所述目标中间层包括的中间层的个数。
7.根据权利要求5或6所述的方法,其特征在于,所述处理结果包括特征图,所述压缩处理包括稀疏化处理;
所述对处理结果进行压缩处理,包括:
将所述特征图的特征点在各个通道上的取值的绝对值按照从小到大的顺序进行排序;以及确定所述特征图的特征点的个数和通道个数;
基于所述特征点的个数、通道个数以及预先设置的稀疏化比例,确定稀疏化个数;
按照所述稀疏化个数以及排序结果,确定需要进行压缩处理的目标通道取值,并将确定的所述目标通道取值调整为零。
8.根据权利要求1所述的方法,其特征在于,所述基于所述第一输出数据对所述待压缩神经网络的网络参数进行调整,包括:
确定当前次待压缩神经网络输出的第一输出数据;
基于当前次待压缩神经网络输出的第一输出数据,对上一次训练完成的待压缩神经网络进行训练。
9.根据权利要求1~8任一所述的方法,其特征在于,所述基于所述第一输出数据对所述待压缩神经网络的网络参数进行调整,包括:
获取所述训练数据对应的监督数据;
基于所述第一输出数据和所述监督数据,对所述待压缩神经网络中的网络参数进行调整。
10.根据权利要求1~9任一所述的方法,其特征在于,所述压缩处理包括以下至少一种:
稀疏化处理、量化处理、剪枝处理、二进制化处理、权值共享。
11.一种神经网络压缩装置,其特征在于,包括:
第一确定模块,用于从待压缩神经网络的多个中间层中,确定目标中间层;
第二确定模块,用于基于所述待压缩神经网络和训练数据,确定所述目标中间层的目标输入数据;
压缩模块,用于基于所述目标中间层对所述目标输入数据进行处理后,基于处理结果的压缩处理结果,确定所述待压缩神经网络的第一输出数据;
调整模块,用于基于所述第一输出数据对所述待压缩神经网络的网络参数进行调整,并返回执行确定目标中间层的步骤,直至所述待压缩神经网络的所述多个中间层的处理结果都被压缩处理。
12.一种计算机设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至10任一项所述的神经网络压缩方法的步骤。
13.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至10任一项所述的神经网络压缩方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110472664.8A CN113159297B (zh) | 2021-04-29 | 2021-04-29 | 一种神经网络压缩方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110472664.8A CN113159297B (zh) | 2021-04-29 | 2021-04-29 | 一种神经网络压缩方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113159297A true CN113159297A (zh) | 2021-07-23 |
CN113159297B CN113159297B (zh) | 2024-01-09 |
Family
ID=76872602
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110472664.8A Active CN113159297B (zh) | 2021-04-29 | 2021-04-29 | 一种神经网络压缩方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113159297B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114723033A (zh) * | 2022-06-10 | 2022-07-08 | 成都登临科技有限公司 | 数据处理方法、装置、ai芯片、电子设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108932548A (zh) * | 2018-05-22 | 2018-12-04 | 中国科学技术大学苏州研究院 | 一种基于fpga的稀疏度神经网络加速系统 |
CN109711532A (zh) * | 2018-12-06 | 2019-05-03 | 东南大学 | 一种针对硬件实现稀疏化卷积神经网络推断的加速方法 |
CN111049836A (zh) * | 2019-12-16 | 2020-04-21 | 北京澎思科技有限公司 | 数据处理方法、电子设备及计算机可读存储介质 |
CN111079623A (zh) * | 2019-12-09 | 2020-04-28 | 成都睿沿科技有限公司 | 一种目标检测方法、装置及存储介质 |
CN111105035A (zh) * | 2019-12-24 | 2020-05-05 | 西安电子科技大学 | 基于稀疏学习与遗传算法相结合的神经网络剪枝方法 |
CN111382863A (zh) * | 2018-12-28 | 2020-07-07 | 上海欧菲智能车联科技有限公司 | 一种神经网络压缩方法及装置 |
CN111652366A (zh) * | 2020-05-09 | 2020-09-11 | 哈尔滨工业大学 | 一种基于通道剪枝和量化训练的联合神经网络模型压缩方法 |
CN112200295A (zh) * | 2020-07-31 | 2021-01-08 | 厦门星宸科技有限公司 | 稀疏化卷积神经网络的排序方法、运算方法、装置及设备 |
-
2021
- 2021-04-29 CN CN202110472664.8A patent/CN113159297B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108932548A (zh) * | 2018-05-22 | 2018-12-04 | 中国科学技术大学苏州研究院 | 一种基于fpga的稀疏度神经网络加速系统 |
CN109711532A (zh) * | 2018-12-06 | 2019-05-03 | 东南大学 | 一种针对硬件实现稀疏化卷积神经网络推断的加速方法 |
CN111382863A (zh) * | 2018-12-28 | 2020-07-07 | 上海欧菲智能车联科技有限公司 | 一种神经网络压缩方法及装置 |
CN111079623A (zh) * | 2019-12-09 | 2020-04-28 | 成都睿沿科技有限公司 | 一种目标检测方法、装置及存储介质 |
CN111049836A (zh) * | 2019-12-16 | 2020-04-21 | 北京澎思科技有限公司 | 数据处理方法、电子设备及计算机可读存储介质 |
CN111105035A (zh) * | 2019-12-24 | 2020-05-05 | 西安电子科技大学 | 基于稀疏学习与遗传算法相结合的神经网络剪枝方法 |
CN111652366A (zh) * | 2020-05-09 | 2020-09-11 | 哈尔滨工业大学 | 一种基于通道剪枝和量化训练的联合神经网络模型压缩方法 |
CN112200295A (zh) * | 2020-07-31 | 2021-01-08 | 厦门星宸科技有限公司 | 稀疏化卷积神经网络的排序方法、运算方法、装置及设备 |
Non-Patent Citations (1)
Title |
---|
杨火祥: "基于特征图自注意力机制的神经网络剪枝算法", 《 深圳信息职业技术学院学报》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114723033A (zh) * | 2022-06-10 | 2022-07-08 | 成都登临科技有限公司 | 数据处理方法、装置、ai芯片、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113159297B (zh) | 2024-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11790212B2 (en) | Quantization-aware neural architecture search | |
US20190340499A1 (en) | Quantization for dnn accelerators | |
US11604960B2 (en) | Differential bit width neural architecture search | |
EP3349153A1 (en) | Convolutional neural network (cnn) processing method and apparatus | |
US20220108157A1 (en) | Hardware architecture for introducing activation sparsity in neural network | |
US20190164043A1 (en) | Low-power hardware acceleration method and system for convolution neural network computation | |
WO2019212878A1 (en) | Design flow for quantized neural networks | |
US20230026006A1 (en) | Convolution computation engine, artificial intelligence chip, and data processing method | |
CN111488985A (zh) | 深度神经网络模型压缩训练方法、装置、设备、介质 | |
US11574239B2 (en) | Outlier quantization for training and inference | |
CN113705775A (zh) | 一种神经网络的剪枝方法、装置、设备及存储介质 | |
EP3637327B1 (en) | Computing device and method | |
US11960565B2 (en) | Add-mulitply-add convolution computation for a convolutional neural network | |
US12080086B2 (en) | Sparse-aware convolution and techniques for acceleration thereof | |
US20200302283A1 (en) | Mixed precision training of an artificial neural network | |
CN112088354A (zh) | 使用共享指数的块浮点计算 | |
CN111709415B (zh) | 目标检测方法、装置、计算机设备和存储介质 | |
WO2021133422A1 (en) | Flexible accelerator for sparse tensors (fast) in machine learning | |
US20230229917A1 (en) | Hybrid multipy-accumulation operation with compressed weights | |
CN110781686A (zh) | 一种语句相似度计算方法、装置及计算机设备 | |
CN118036755B (zh) | 大语言模型的量化方法及推理方法、装置、设备和介质 | |
US20220108156A1 (en) | Hardware architecture for processing data in sparse neural network | |
CN113159297A (zh) | 一种神经网络压缩方法、装置、计算机设备及存储介质 | |
EP4322064A1 (en) | Method and system for jointly pruning and hardware acceleration of pre-trained deep learning models | |
CN110728351A (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 |