CN111414993A - 卷积神经网络的裁剪、卷积计算方法及装置 - Google Patents
卷积神经网络的裁剪、卷积计算方法及装置 Download PDFInfo
- Publication number
- CN111414993A CN111414993A CN202010140843.7A CN202010140843A CN111414993A CN 111414993 A CN111414993 A CN 111414993A CN 202010140843 A CN202010140843 A CN 202010140843A CN 111414993 A CN111414993 A CN 111414993A
- Authority
- CN
- China
- Prior art keywords
- input channel
- convolution kernel
- slice
- slices
- convolution
- 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
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000013528 artificial neural network Methods 0.000 title abstract description 30
- 238000013527 convolutional neural network Methods 0.000 claims abstract description 137
- 238000004364 calculation method Methods 0.000 claims abstract description 106
- 238000004590 computer program Methods 0.000 claims description 11
- 238000013138 pruning Methods 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 23
- 230000006870 function Effects 0.000 description 8
- 238000013135 deep learning Methods 0.000 description 4
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 102000009027 Albumins Human genes 0.000 description 1
- 108010088751 Albumins Proteins 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000009966 trimming 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/0464—Convolutional networks [CNN, ConvNet]
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Complex Calculations (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Image Analysis (AREA)
Abstract
提供一种卷积神经网络的裁剪、卷积计算方法及装置。该卷积神经网络的裁剪方法包括:遍历卷积神经网络的每个卷积层,执行以下步骤:基于卷积层的卷积参数获取输入通道卷积核切片;确定输入通道卷积核切片中相似的输入通道卷积核切片;基于相似的输入通道卷积核切片,确定用于替代相似的输入通道卷积核切片的替代切片;裁剪掉相似的输入通道卷积核切片,以替代切片替代被裁剪的输入通道卷积核切片,从而在不需要大量额外的参考结构来分别记录每个被裁剪掉的权重索引或位置、不影响卷积神经网络的权重的表现形式、并且不影响卷积神经网络的运行和功能的情况下,降低了卷积神经网络的空间复杂度和所需的存储空间。
Description
技术领域
本公开涉及计算机技术领域。更具体地,本公开涉及一种卷积神经网络的裁剪、卷积计算方法及装置。
背景技术
近年来,基于卷积神经网络的深度学习在图像识别、语音识别、目标检测、图像语义分割等多个实际应用领域取得了广泛的成功。但深度卷积网络的表达能力越强,往往意味着网络模型的规模越大,其空间复杂度就越高,所占存储空间也就越大。这种情况无疑限制了高性能的深度卷积网络在存储受限的嵌入式设备中的部署应用,如手机、车载系统等。
Denil等人在2013年的文献《Predicting parameters in deep learning》中证实了深度神经网络结构事实上是冗余的,即可以通过一些权重压缩手段来减小深度神经网络的规模,同时不造成明显的精度损失。因此,人们提出了很多方法来对深度神经网络进行压缩。
其中,网络裁剪是使用较广泛的压缩方法之一。一般而言,在深度神经网络训练结束后,找到权值接近于0(或其他阈值)的权重,再裁剪掉这些权重在存储空间中的占用即可,但要记录被裁权重的索引以方便网络运行时能够正确执行。有时,还要对裁剪后的深度神经网络再继续训练若干次以修正结构变化带来的误差,一般称之为微调(fine-tune)。
Li等人在2017年的文献《Pruning Filters for Efficient ConvNets》中提到了卷积核中存在冗余通道的现象,即不同通道方向上的部分卷积核过滤器在训练后权重极为相似,这为卷积核的通道裁剪提供了一定理论基础。
图像识别是指利用计算机对图像进行处理、分析和理解,以识别各种不同模式的目标和对象的技术,是应用深度学习算法的一种实践应用。近年来,基于卷积神经网络的深度学习在图像识别领域取得了广泛的成功。但深度卷积神经网络的表达能力越强,往往意味着网络模型的规模越大,其空间复杂度就越高,所占存储空间也就越大。这种情况无疑限制了高性能的深度卷积神经网络在存储受限的嵌入式设备中的部署应用,如手机、车载系统等,进而影响图像识别的效率。
发明内容
本公开的示例性实施例在于提供一种卷积神经网络的裁剪、卷积计算方法及装置,以降低卷积神经网络的空间复杂度和所需的存储空间。
根据本公开的示例性实施例,提供一种卷积神经网络的裁剪方法,包括:遍历卷积神经网络的每个卷积层,执行以下步骤:基于卷积层的卷积参数获取输入通道卷积核切片;确定输入通道卷积核切片中相似的输入通道卷积核切片;基于相似的输入通道卷积核切片,确定用于替代相似的输入通道卷积核切片的替代切片;裁剪掉相似的输入通道卷积核切片,以替代切片替代被裁剪的输入通道卷积核切片。这样,通过利用卷积神经网络中的卷积核内部不同通道之间具有相似性这一特点,裁剪掉具备相似性的卷积核通道,并由替代卷积核通道替代被裁剪掉的相似的多个卷积核通道,从而在不需要大量额外的参考结构来分别记录每个被裁剪掉的权重索引或位置、不影响卷积神经网络的权重的表现形式、并且不影响卷积神经网络的运行和功能的情况下,降低了卷积神经网络的空间复杂度和所需的存储空间。
可选地,所述卷积神经网络的裁剪方法还可以包括:记录替代切片所替代的被裁剪的输入通道卷积核切片的索引值,从而通过索引值记录每个被裁剪的输入通道卷积核切片。
可选地,确定输入通道卷积核切片中相似的输入通道卷积核切片的步骤可以包括:计算每个输入通道卷积核切片的范数;根据范数确定输入通道卷积核切片中相似的输入通道卷积核切片。这样,提高了确定相似的输入通道卷积核切片的准确性。
可选地,根据范数确定输入通道卷积核切片中相似的输入通道卷积核切片的步骤可以包括:根据范数的相似度对输入通道卷积核切片进行分类;遍历分类结果中的每个类,计算各个输入通道卷积核切片之间的输入通道相似度,并根据输入通道相似度确定相似的输入通道卷积核切片,从而提高了确定相似的输入通道卷积核切片的准确性。
可选地,计算各个输入通道卷积核切片之间的输入通道相似度的步骤可以包括:计算各个输入通道卷积核切片之间的差范数,作为各个输入通道卷积核切片之间的输入通道相似度,从而提高了相似度的准确性。
可选地,根据输入通道相似度确定相似的输入通道卷积核切片的步骤可以包括:将输入通道相似度处于阈值范围的输入通道卷积核切片确定为相似的输入通道卷积核切片,从而提高了确定相似的输入通道卷积核切片的准确性。
可选地,确定用于替代相似的输入通道卷积核切片的替代切片的步骤可以包括:计算相似的输入通道卷积核切片的均值通道卷积核切片;将均值通道卷积核切片确定为替代切片,或者,确定用于替代相似的输入通道卷积核切片的替代切片的步骤可以包括:将相似的输入通道卷积核切片之一确定为替代切片。这样,在实现卷积神经网络的通道裁剪时,只需要记录替代切片替代的是哪些输入通道卷积核切片,而不需要大量额外的参考结构来分别记录每个被裁剪掉的权重索引或位置,并且不影响卷积神经网络的运行和功能。
可选地,基于卷积参数获取输入通道卷积核切片的步骤可以包括:根据卷积核的输入通道数,确定输入通道卷积核切片的数量;根据确定的输入通道卷积核切片的数量,基于卷积参数从表示卷积核的张量中提取输入通道卷积核切片,其中,所述卷积参数包括卷积核的输入通道数、输出通道数、卷积核的卷积过滤器宽度和卷积过滤器高度。这样,实现了输入通道卷积核切片的提取。
根据本公开的示例性实施例,提供一种使用根据上述任一卷积神经网络的裁剪方法裁剪的卷积神经网络的卷积计算方法,包括:遍历卷积神经网络的每个卷积层,执行以下步骤:针对卷积层的每个输入通道卷积核切片,根据输入通道卷积核切片的索引值判断输入通道卷积核切片是否是替代切片;当输入通道卷积核切片是替代切片时,获取输入通道卷积核切片所替代的被裁剪的输入通道卷积核切片的索引值,基于输入通道卷积核切片所替代的被裁剪的输入通道卷积核切片的索引值执行卷积计算,从而在经过裁剪的卷积神经网络中实现了卷积计算,并且提高了卷积计算的效率。
可选地,基于输入通道卷积核切片所替代的被裁剪的输入通道卷积核切片的索引值执行卷积计算的步骤可以包括:从卷积输入的通道切片中确定与输入通道卷积核切片所替代的被裁剪的输入通道卷积核切片的索引值对应的通道切片;对确定的与输入通道卷积核切片所替代的被裁剪的输入通道卷积核切片的索引值对应的通道切片进行求和计算;对求和计算结果和输入通道卷积核切片执行卷积计算,从而在经过裁剪的卷积神经网络中实现了卷积计算。
可选地,所述卷积计算方法还包括:当输入通道卷积核切片不是替代切片时,从卷积输入的通道切片中确定与输入通道卷积核切片的索引值对应的通道切片;对确定的与输入通道卷积核切片的索引值对应的通道切片和输入通道卷积核切片执行卷积计算。
可选地,卷积神经网络的第一个卷积层的输入可以是图像和/或语音,卷积神经网络的最后一个卷积层的输出可以是图像识别结果和/或语音识别结果。
根据本公开的示例性实施例,提供一种卷积神经网络的裁剪装置,包括:卷积层遍历单元,被配置为遍历卷积神经网络的每个卷积层;切片获取单元,被配置为基于卷积层的卷积参数获取输入通道卷积核切片;相似切片确定单元,被配置为确定输入通道卷积核切片中相似的输入通道卷积核切片;替代切片确定单元,被配置为基于相似的输入通道卷积核切片,确定用于替代相似的输入通道卷积核切片的替代切片;和相似切片裁剪单元,被配置为裁剪掉相似的输入通道卷积核切片,以替代切片替代被裁剪的输入通道卷积核切片。这样,通过利用卷积神经网络中的卷积核内部不同通道之间具有相似性这一特点,裁剪掉具备相似性的卷积核通道,并由替代卷积核通道替代被裁剪掉的相似的多个卷积核通道,从而在不需要大量额外的参考结构来分别记录每个被裁剪掉的权重索引或位置、不影响卷积神经网络的权重的表现形式、并且不影响卷积神经网络的运行和功能的情况下,降低了卷积神经网络的空间复杂度和所需的存储空间。
可选地,所述卷积神经网络的裁剪装置还可以包括:索引值记录单元,被配置为记录替代切片所替代的被裁剪的输入通道卷积核切片的索引值。这样,可以通过索引值记录每个被裁剪的输入通道卷积核切片。
可选地,相似切片确定单元可以被配置为:计算每个输入通道卷积核切片的范数;根据范数确定输入通道卷积核切片中相似的输入通道卷积核切片。这样,提高了确定相似的输入通道卷积核切片的准确性。
可选地,替代切片确定单元还可以被配置为:根据范数的相似度对输入通道卷积核切片进行分类;遍历分类结果中的每个类,计算各个输入通道卷积核切片之间的输入通道相似度,并根据输入通道相似度确定相似的输入通道卷积核切片,从而提高了确定相似的输入通道卷积核切片的准确性。
可选地,替代切片确定单元还可以被配置为:计算各个输入通道卷积核切片之间的差范数,作为各个输入通道卷积核切片之间的输入通道相似度;将输入通道相似度处于阈值范围的输入通道卷积核切片确定为相似的输入通道卷积核切片,从而提高了确定相似的输入通道卷积核切片的准确性。
可选地,替代切片确定单元可以被配置为:计算相似的输入通道卷积核切片的均值通道卷积核切片;将均值通道卷积核切片确定为替代切片。可选地,替代切片确定单元可以被配置为:将相似的输入通道卷积核切片之一确定为替代切片。这样,在实现卷积神经网络的通道裁剪时,只需要记录替代切片替代的是哪些输入通道卷积核切片,而不需要大量额外的参考结构来分别记录每个被裁剪掉的权重索引或位置,并且不影响卷积神经网络的运行和功能。
可选地,切片获取单元可以被配置为:根据卷积核的输入通道数,确定输入通道卷积核切片的数量;根据确定的输入通道卷积核切片的数量,基于卷积参数从表示卷积核的张量中提取输入通道卷积核切片,其中,所述卷积参数包括卷积核的输入通道数、输出通道数、卷积核的卷积过滤器宽度和卷积过滤器高度。这样,实现了输入通道卷积核切片的提取。
根据本公开的示例性实施例,提供一种使用根据上述任一卷积神经网络的裁剪方法裁剪的卷积神经网络的卷积计算装置,包括:卷积层遍历单元,被配置为遍历卷积神经网络的每个卷积层;替代切片判断单元,被配置为针对卷积层的每个输入通道卷积核切片,根据输入通道卷积核切片的索引值判断输入通道卷积核切片是否是替代切片;和卷积计算单元,被配置为当输入通道卷积核切片是替代切片时,获取输入通道卷积核切片所替代的被裁剪的输入通道卷积核切片的索引值,基于输入通道卷积核切片所替代的被裁剪的输入通道卷积核切片的索引值执行卷积计算,从而在经过裁剪的卷积神经网络中实现了卷积计算,并且提高了卷积计算的效率。
可选地,卷积计算单元可以被配置为:从卷积输入的通道切片中确定与输入通道卷积核切片所替代的被裁剪的输入通道卷积核切片的索引值对应的通道切片;对确定的与输入通道卷积核切片所替代的被裁剪的输入通道卷积核切片的索引值对应的通道切片进行求和计算;对求和计算结果和输入通道卷积核切片执行卷积计算,从而在经过裁剪的卷积神经网络中实现了卷积计算。
可选地,卷积计算单元还可以被配置为:当输入通道卷积核切片不是替代切片时,从卷积输入的通道切片中确定与输入通道卷积核切片的索引值对应的通道切片;对确定的与输入通道卷积核切片的索引值对应的通道切片和输入通道卷积核切片执行卷积计算。
可选地,所述卷积计算装置还可以包括:输入单元,被配置为将接收的图像和/或语音作为卷积神经网络的第一个卷积层的输入;和结果输出单元,被配置为将卷积神经网络的最后一个卷积层的输出作为图像识别结果和/或语音识别结果。
根据本公开的示例性实施例,提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序被处理器执行时,实现根据本公开的示例性实施例的方法。
根据本公开的示例性实施例,提供一种计算装置,包括:处理器;存储器,存储有计算机程序,当所述计算机程序被处理器执行时,实现根据本公开的示例性实施例的方法。
根据本公开的示例性实施例的卷积神经网络的裁剪方法及装置,通过遍历卷积神经网络的每个卷积层,执行以下步骤:基于卷积层的卷积参数获取输入通道卷积核切片;确定输入通道卷积核切片中相似的输入通道卷积核切片;基于相似的输入通道卷积核切片,确定用于替代相似的输入通道卷积核切片的替代切片;裁剪掉相似的输入通道卷积核切片,以替代切片替代被裁剪的输入通道卷积核切片。这样,通过利用卷积神经网络中的卷积核内部不同通道之间具有相似性这一特点,裁剪掉具备相似性的卷积核通道,并由替代卷积核通道替代被裁剪掉的相似的多个卷积核通道,从而在不需要大量额外的参考结构来分别记录每个被裁剪掉的权重索引或位置、不影响卷积神经网络的权重的表现形式、并且不影响卷积神经网络的运行和功能的情况下,降低了卷积神经网络的空间复杂度和所需的存储空间。此外,根据本公开的示例性实施例的卷积神经网络的卷积计算方法及装置,通过判断输入通道卷积核切片是不是替代切片,在卷积计算时区分替代切片和非替代切片,对替代切片和非替代切片进行区别计算,可适用于已裁剪卷积核的通道裁剪卷积计算,并且在一定程度上提升计算效率,从而可提高卷积神经网络的使用效率。
将在接下来的描述中部分阐述本公开总体构思另外的方面和/或优点,还有一部分通过描述将是清楚的,或者可以经过本公开总体构思的实施而得知。
附图说明
通过下面结合示例性地示出实施例的附图进行的描述,本公开示例性实施例的上述和其他目的和特点将会变得更加清楚,其中:
图1示出根据本公开示例性实施例的卷积神经网络的裁剪方法的流程图;
图2示出根据本公开示例性实施例的基于相似卷积通道的卷积神经网络裁剪的示例方法的流程图;
图3示出根据本公开的示例性实施例的输入通道卷积核切片的抽取方式的一个示例;
图4示出根据本公开的示例性实施例的对输入通道卷积核切片范数按相似程度进行类别划分的示意图;
图5示出根据本公开的示例性实施例的对同一类中的输入通道卷积核切片进行相似度判定的示意图;
图6示出根据本公开的示例性实施例的基于相似通道将原始卷积核进行裁剪的示意图;
图7示出根据本公开示例性实施例的卷积神经网络的卷积计算方法的流程图;
图8示出普通卷积计算的示意图;
图9根据本公开的示例性实施例的通道裁剪卷积计算的示意图;
图10示出根据本公开示例性实施例的图像和/或语音识别方法的流程图;
图11示出根据本公开示例性实施例的卷积神经网络的裁剪装置的框图;
图12示出根据本公开示例性实施例的卷积神经网络的卷积计算装置的框图;
图13示出根据本公开示例性实施例的图像和/或语音识别装置的框图;和
图14示出根据本公开示例性实施例的计算装置的示意图。
具体实施方式
现将详细参照本公开的示例性实施例,所述实施例的示例在附图中示出,其中,相同的标号始终指的是相同的部件。以下将通过参照附图来说明所述实施例,以便解释本公开。
为了解决卷积神经网络空间复杂度高、所占存储空间大等问题,在现有技术中可使用网络裁剪的压缩方法。目前主流的做法是:在卷积神经网络训练结束后,找到权值接近于0(或其他阈值)的权重,再裁剪掉这些权重在存储空间中的占用即可,但要记录被裁权重的索引以方便网络运行时能够正确执行。可见,在目前现有的卷积神经网络裁剪方法中,由于被裁剪的权重分布往往是随机的,故存在两个主要的缺点:1).需要大量额外的参考结构来分别记录每个被裁剪掉的权重索引或位置;2).裁剪后的网络权重呈现出不规则的表现形式,为运行时的权重访问带来麻烦。
为了克服现有技术的不足,本公开提供一种基于相似卷积通道的卷积神经网络裁剪方法,使得通道裁剪后的卷积神经网络只需要极少量的额外参考结构来记录被裁剪的输入通道卷积核切片的索引值,并且卷积神经网络的权重的表现形式不受裁剪的影响。
图1示出根据本公开示例性实施例的卷积神经网络的裁剪方法的流程图。这里,卷积神经网络可以为例如经过训练的卷积神经网络。
参照图1,遍历卷积神经网络的每个卷积层,对每个卷积层执行步骤S101至S104。在步骤S101,基于卷积层的卷积参数获取输入通道卷积核切片。
在本公开的示例性实施例中,在基于卷积参数获取输入通道卷积核切片时,可以首先根据卷积核的输入通道数,确定输入通道卷积核切片的数量,然后根据确定的输入通道卷积核切片的数量,基于卷积参数从表示卷积核的张量中提取输入通道卷积核切片。这里,卷积参数包括卷积核的输入通道数、输出通道数、卷积核的卷积过滤器宽度和卷积过滤器高度。
在步骤S102,确定输入通道卷积核切片中相似的输入通道卷积核切片。
在本公开的示例性实施例中,在确定输入通道卷积核切片中相似的输入通道卷积核切片时,可以首先计算每个输入通道卷积核切片的范数,然后根据范数确定输入通道卷积核切片中相似的输入通道卷积核切片,从而提高了确定相似的输入通道卷积核切片的准确性。
在本公开的示例性实施例中,在根据范数确定输入通道卷积核切片中相似的输入通道卷积核切片时,可以首先根据范数的相似度对输入通道卷积核切片进行分类,然后遍历分类结果中的每个类,计算各个输入通道卷积核切片之间的输入通道相似度,并根据输入通道相似度确定相似的输入通道卷积核切片,从而提高了确定相似的输入通道卷积核切片的准确性。
在本公开的示例性实施例中,在计算各个输入通道卷积核切片之间的输入通道相似度时,可以计算各个输入通道卷积核切片之间的差范数,作为各个输入通道卷积核切片之间的输入通道相似度。在根据输入通道相似度确定相似的输入通道卷积核切片时,可以将输入通道相似度处于阈值范围的输入通道卷积核切片确定为相似的输入通道卷积核切片,从而提高了确定相似的输入通道卷积核切片的准确性。
在步骤S103,基于相似的输入通道卷积核切片,确定用于替代相似的输入通道卷积核切片的替代切片。
在本公开的示例性实施例中,在确定用于替代相似的输入通道卷积核切片的替代切片时,可以首先计算相似的输入通道卷积核切片的均值通道卷积核切片,然后将均值通道卷积核切片确定为替代切片。或者,在确定用于替代相似的输入通道卷积核切片的替代切片时,可以将相似的输入通道卷积核切片之一确定为替代切片。这样,在实现卷积神经网络的通道裁剪时,只需要记录替代切片替代的是哪些输入通道卷积核切片,而不需要大量额外的参考结构来分别记录每个被裁剪掉的权重索引或位置,并且不影响卷积神经网络的运行和功能。
在步骤S104,裁剪掉相似的输入通道卷积核切片,以替代切片替代被裁剪的输入通道卷积核切片。
在本公开的示例性实施例中,通过裁剪相似的输入通道卷积核切片,而不是通过裁剪掉预设权重在卷积神经网络所占的存储空间,来降低卷积神经网络的空间复杂度和卷积神经网络所占的存储空间,从而使得卷积神经网络的权重的表现形式不受裁剪的影响。
在本公开的示例性实施例中,还可以记录替代切片所替代的被裁剪的输入通道卷积核切片的索引值,以将记录的索引值用于卷积计算。
步骤1一般从深度卷积神经网络的第一卷积层开始,第一卷积层可以指的是整个网络的输入数据在前向运行时经过的第一个卷积层。
这里,原始卷积核可以是一个4阶张量,卷积核切片可以指的是从该4阶张量中提取部分元素后组成的新张量。例如,卷积核切片例如可以是从卷积核矩阵中抽取出的向量。所述输入通道卷积核切片可以通过固定在第一个模长为C的维度上的索引值得到。首先令卷积核在C这一维度上的索引值取1,其余S、w和h的索引取所有可能的值,则可以得到第一个输入通道卷积核切片接着令卷积核在C这一维度上的索引值取2,其余S、w和h的索引取所有可能的值,得到第二个输入通道卷积核切片依此类推,最终得到C个输入通道卷积核切片。
图3示出根据本公开的示例性实施例的输入通道卷积核切片的抽取方式的一个示例。如图3所示,C=4,S=7,每个横排的S个卷积过滤器即为一个输入通道卷积核切片,尺寸为1×7×w×h,这些输入通道卷积核切片分别是
步骤3,针对C个输入通道卷积核切片计算它们的范数并对比这C个输入通道卷积核切片范数的大小,将范数相近的卷积核切片分为一类。这里,假设共可得到T个类:U1、U2、…、UT,这些类的元素为各个卷积核切片的输入通道索引i∈{1,2,…,C}。
一般而言,可使用差的范数来对比两个同尺寸张量和之间的相似度,但遍历任意两个输入通道卷积核切片之间的差的范数会导致较大计算量。因此,本发明先计算每个输入通道卷积核切片的范数并比较这些范数的相近程度以作为初步筛选的依据,分类后每个类之内的输入通道卷积核切片有可能相似,分属于不同类的输入通道卷积核切片则不可能相似。
图4示出根据本公开的示例性实施例的对输入通道卷积核切片范数按相似程度进行类别划分的示意图。例如,在图4中示出某卷积核的8个输入通道卷积核切片的范数在数轴上的位置,a、b、c、d、e、f、g、h是这些输入通道卷积核切片的索引,这些范数按相近程度被划分为T=2个类:U1={a,b,c,d,e}和U2={f,g,h}。此步骤之后,至少知道了U1所涉及的输入通道卷积核切片与U2所涉及的输入通道卷积核切片不相似。
步骤4的目的在于给出输入通道卷积核切片之间是否相似的判定依据,为后续步骤具体找出相似的输入通道卷积核切片作准备。以输入通道卷积核切片之间的差的范数作为通道相似度定义,是因为在此之前只是用输入通道卷积核切片各自自身的范数作为相近与否的初步判断,只有计算差范数才能反映出真正的相似性。例如,向量[1 2 3]和向量[32 1]的范数相等,但它们的差的范数却为4。需要注意,步骤4所给出的判定依据是用于同属于一类Ut中的输入通道卷积核切片。
步骤5,遍历T个类Ut,在每个Ut中找到所有相似输入通道卷积核切片,形成个集合,这些集合共有M个,即每个集合Pm(m∈{1,2,…M})中存储着相似输入通道卷积核切片对应的输入通道索引,即同一个Pm中的每两个输入通道索引i和j对应的输入通道卷积核切片和满足Δi,j<Δ,另外定义集合PO存放所有Ut中没有对应相似输入通道的卷积核切片索引。
在步骤5中,对每个Ut,先取其中输入通道索引值最小者对应的输入通道卷积核切片令其依次与其他输入通道卷积核切片 计算通道相似度Δi,j,将满足Δi,j<Δ的输入通道索引值i和j不重复地放入集合Pm(1≤m<M)中,并从Ut中剔除已放入Pm的输入通道索引值。若找不到满足Δi,j<Δ的输入通道卷积核切片则将i放入集合PO,并从Ut中剔除i。然后,取Ut中输入通道索引值最小者对应的输入通道卷积核切片令其依次与其他输入通道卷积核切片计算通道相似度Δx,y,将满足Δx,y<Δ的输入通道索引值x和y不重复地放入集合Pm+1中,并从Ut中剔除已放入Pm+1的输入通道索引值。若找不到满足Δx,y<Δ的输入通道卷积核切片则将x放入集合PO,并从Ut中剔除x。依此类推直至Ut为空集,从而得到个集合Pm、Pm+1、…、
图5示出根据本公开的示例性实施例的对同一类中的输入通道卷积核切片进行相似度判定的示意图。在图5中,假设Ut中有7个输入通道卷积核切片索引,索引值从小到大分别为:a,b,c,d,e,f,g。先从索引值最小者a开始,如果找到Δa,c<Δ,Δa,d<Δ,Δa,f<Δ,则说明互为相似,因此将a,c,d,f放入集合Pm。这时,Ut的元素则剩下了b,e,g。再从Ut中的最小者b开始,找出互为相似,因此将b,e放入集合Pm+1,将Ut中最后剩下的g放入集合PO。
在步骤5结束后,可得到M个集合Pm(m∈{1,2,…M}),这些集合记录了卷积核中哪些输入通道卷积核切片是相似的。另外,还可得到集合PO,该集合记录了所有互不相似的输入通道卷积核切片索引。也就是说,步骤5将完全确定哪些输入通道卷积核切片是可以被裁剪的,后续步骤将以此(Pm和PO)为依据执行具体的裁剪过程。对每个Ut,考虑从输入通道索引值最小者开始对比符合索引升序排列的习惯。通过这样能够避免在Ut的内容变化后出现可能的重复对比。这里,不重复地记录满足Δi,j<Δ或Δx,y<Δ的输入通道索引指的是保证集合Pm或Pm+1中元素的值不重复,否则意味着某一个输入通道卷积核切片与自身的相似性。若集合PO以及M个集合Pm的元素数量及分布不能满足预设的元素数量要求和/或元素分布要求,则应回到步骤4调整卷积核输入通道相似度阈值Δ的大小。
步骤6,遍历所有的集合Pm,对每个Pm,若其元素个数为nm,则计算其中所有索引对应的输入通道卷积核切片的均值通道卷积核切片,共M个:
步骤6所产生的均值通道卷积核切片将作为新的输入通道卷积核切片加入裁剪后的卷积核中。这里,均值指的是某个Pm中所有输入卷积核切片的平均张量,其空间与原始输入通道卷积核切片相等,即,为从数量上而言,和Pm皆为M个,即步骤5产生了多少个Pm,本步骤就将产生多少个均值通道卷积核切片。
所述已裁剪卷积核在输入通道卷积核切片 的方向上共有C-∑Mnm+M个切片,并且由两部分组成:第一部分是C-∑Mnm个未被裁剪的来自原始卷积核的输入通道卷积核切片第二部分是新添加的M个均值通道卷积核切片
遍历所有Pm进行裁剪时,新添加的M个均值通道卷积核切片可按照Pm中记录的最小原始索引p的值从小到大依次堆叠,并且以同样的顺序将所有Pm记录入集合U中(Pm∈U)。在裁剪后,可将集合PO中记录的原始索引q按照从小到大顺序排列。
新卷积核对应于原始卷积核在输入通道卷积核切片方向上的原始索引值可以是递增的,一方面在于第一部分的未裁剪原始卷积核切片的索引顺序未变,另一方面在于第二部分的均值通道卷积核切片的各自相关的第一个原始索引也是按原始顺序递增排列的,这将有利于下一步骤的计算简便。图6示出根据本公开的示例性实施例的基于相似通道将原始卷积核进行裁剪的示意图。在图6中,原始卷积核含有8个输入通道卷积核切片,经步骤1到步骤6后认为第2与第4个输入通道卷积核切片相似,第6与第7个输入通道卷积核切片相似。在裁剪时,遍历Pm,根据P1包含的索引而裁剪第6与第7输入通道卷积核切片,根据P2包含的索引而裁剪第2与第4输入通道卷积核切片,如此则剩余的原始输入通道卷积核切片的排列顺序在裁剪后的新卷积核中并不改变。然后,先将P2对应的均值通道卷积核切片堆叠至裁剪后的卷积核,后堆叠P1对应的均值通道卷积核切片这是因为P2的最小原始索引为2,而P1的最小原始索引为6。
此外,为了进一步方便后续步骤的计算,需要额外的参考结构来记录新卷积核相关的原始输入通道卷积核切片的索引。对于第一部分的未裁剪原始卷积核切片,其原始索引按顺序记入集合PO中;对于第二部分的均值通道卷积核切片,其包含原始索引的Pm按照最小原始索引的顺序,依次记入集合U中。以图6为例,PO={1,3,5,8},U={P2,P1}。
图7示出根据本公开示例性实施例的卷积神经网络的卷积计算方法的流程图。图7中的卷积计算方法可以适用于使用图1中的卷积神经网络的裁剪方法裁剪的卷积神经网络。
参照图7,遍历卷积神经网络的每个卷积层,执行步骤S701至步骤S702。在步骤S701,针对卷积层的每个输入通道卷积核切片,根据输入通道卷积核切片的索引值判断输入通道卷积核切片是否是替代切片。
在步骤S702,当输入通道卷积核切片是替代切片时,获取输入通道卷积核切片所替代的被裁剪的输入通道卷积核切片的索引值,基于输入通道卷积核切片所替代的被裁剪的输入通道卷积核切片的索引值执行卷积计算。
在本公开的示例性实施例中,在基于输入通道卷积核切片所替代的被裁剪的输入通道卷积核切片的索引值执行卷积计算时,可以首先从卷积输入的通道切片中确定与输入通道卷积核切片所替代的被裁剪的输入通道卷积核切片的索引值对应的通道切片,并且对确定的与输入通道卷积核切片所替代的被裁剪的输入通道卷积核切片的索引值对应的通道切片进行求和计算,然后对求和计算结果和输入通道卷积核切片执行卷积计算,从而在经过裁剪的卷积神经网络中实现了卷积计算。
在本公开的示例性实施例中,当输入通道卷积核切片不是替代切片时,可以首先从卷积输入的通道切片中确定与输入通道卷积核切片的索引值对应的通道切片,然后对确定的与输入通道卷积核切片的索引值对应的通道切片和输入通道卷积核切片。
具体来说,通道裁剪卷积计算的具体过程是:依次遍历已裁剪卷积核的输入通道卷积核切片若1≤s≤C-∑Mnm,则表示该输入通道卷积核切片来自原始卷积核并且其在原始卷积核中的索引值为PO(s),即集合PO的第s个元素,那么输入的第PO(s)个通道切片与进行普通卷积操作,得该次输出若C-∑Mnm<s≤C-∑Mnm+M,则表示该输入通道卷积核切片是M个均值通道卷积核切片中的第s-C+∑Mnm个,读取集合U中的第s-C+∑Mnm个元素Pm,再从Pm中读取到所有原始卷积核切片索引值p∈Pm,那么输入的所有第p个通道切片求和后与进行普通卷积可得该次输出 遍历完成后,将所有C-∑Mnm+M个相加,所得输出与原始卷积输出基本相等,即:
图8示出普通卷积计算的示意图。为了更清楚的解释通道裁剪卷积计算先通过图8对普通卷积计算进行解释。图8的卷积将包含8个特征图的输入数据转化为包含12个特征图的输出数据。一般而言,计算普通卷积时,所有输入特征图依次与对应的输入通道卷积核切片的一部分先卷积后求和,得到一张输出特征图;即,图8中卷积核的深色部分各自与对应的输入通道索引相同的输入特征图进行普通卷积,再相加后得到图8中深色部分的第6张输出特征图。实际上,还可以使用如下等价的计算过程:以图8为例,每次只考虑一个输入特征图,如令其依次与相同输入通道索引的的12个部分分别卷积,从而得到包含12个输出特征图的张量即然后,遍历完成所有输入特征图,会得到8个包含12个输出特征图的输出张量,分别是最后,对这8个输出张量求和,可得与一般卷积计算过程相同的输出,即这两种不同的普通卷积计算过程的主要区别在于:前者每次令所有输入特征图参与计算得到一个输出特征图,最终拼凑起所有输出特征图;后者每次只有一个输入特征图参与计算并得到所有的输出特征图,但这些输出特征图的信息并不完整,需要遍历所有输入特征图后将每次的输出特征图叠加。所述通道裁剪卷积计算使用类似于后者的计算过程。
图9根据本公开的示例性实施例的通道裁剪卷积计算的示意图。在图9中,为方便描述,图中卷积核的裁剪结果与图8相同,PO={1,3,5,8},U={P2,P1},∑Mnm=2+2=4,M=2。依次遍历已裁剪卷积核的输入通道卷积核切片:来自原始卷积核,原始索引值PO(1)=1,故其与计算,得来自原始卷积核,原始索引值PO(2)=3,故其与计算,得来自原始卷积核,原始索引值PO(3)=5,故其与计算,得来自原始卷积核,原始索引值PO(4)=8,故其与计算,得来自2个均值通道卷积核切片中的第一个,读取U中的第一个元素P2,再得到P2内的原始索引{2,4},故其与和计算,得来自2个均值通道卷积核切片中的第二个,读取U中的第二个元素P1,再得到P1内的原始索引{7,6},故其与和计算,得最后,约等于的原因在于前述均值通道卷积核切片替换了被裁剪的原始输入通道卷积核切片所致。需要注意的是,对于和它们各自涉及两个输入特征图,这里先计算输入特征图之和再进行卷积,如此可减少卷积运算次数以提升计算效率。
图10示出根据本公开示例性实施例的图像和/或语音识别方法的流程图。图10中的图像和/或语音识别方法可以适用于使用图1中的卷积神经网络的裁剪方法裁剪的卷积神经网络。
参照图10,在步骤S1001,接收用户输入的图像和/或语音。
在步骤S1002,将接收的图像和/或语音作为卷积神经网络的第一个卷积层的输入。
具体来说,将接收的图像作为经过通道裁剪的卷积神经网络的第一个卷积层的输入。包含C个通道的尺寸为W×H的特征图。在将作为经过通道裁剪的卷积神经网络的第一个卷积层的输入之前,可搭建(或者选择)一个用于图像识别的卷积神经网络(例如,深度卷积神经网络),将用于网络训练的数据集输入此卷积神经网络进行训练,得到训练好的深度卷积神经网络
在步骤S1002之后,从卷积神经网络的第一个卷积层开始,依次遍历卷积神经网络的每个卷积层,执行步骤S1003至步骤S1006。遍历卷积神经网络的每个卷积层之后,执行步骤S1007。
在步骤S1003,针对卷积层的每个输入通道卷积核切片,根据输入通道卷积核切片的索引值判断输入通道卷积核切片是否是替代切片。
在步骤S1004,当输入通道卷积核切片是替代切片时,获取输入通道卷积核切片所替代的被裁剪的输入通道卷积核切片的索引值,基于输入通道卷积核切片所替代的被裁剪的输入通道卷积核切片的索引值执行卷积计算。
在本公开的示例性实施例中,在基于输入通道卷积核切片所替代的被裁剪的输入通道卷积核切片的索引值执行卷积计算时,可以首先从卷积层的卷积输入的通道切片中确定与输入通道卷积核切片所替代的被裁剪的输入通道卷积核切片的索引值对应的通道切片,之后,对确定的与输入通道卷积核切片所替代的被裁剪的输入通道卷积核切片的索引值对应的通道切片进行求和计算,然后对求和计算结果和输入通道卷积核切片执行卷积计算,从而在经过裁剪的卷积神经网络中实现了卷积计算。
在步骤S1005,当输入通道卷积核切片不是替代切片时,从卷积输入的通道切片中确定与输入通道卷积核切片的索引值对应的通道切片,对确定的与输入通道卷积核切片的索引值对应的通道切片和输入通道卷积核切片执行卷积计算。
在步骤S1006,将卷积层中所有输入通道卷积核切片的卷积计算结果的累加值作为卷积层的卷积输出结果。
在步骤S1007,将卷积神经网络的最后一个卷积层的卷积输出结果作为图像和/或语音的识别结果。
根据本公开的示例性实施例的图像和/或语音识别方法,通过使用经过通道裁剪的卷积神经网络,降低了用于图像和/或语音识别的卷积神经网络的空间复杂度并节省了卷积神经网络所需的存储空间,降低了使用卷积神经网络进行图像和/或语音识别时对应用环境的要求。
以上已经结合图1至图10对根据本公开的示例性实施例的卷积神经网络的裁剪、卷积计算方法进行了描述。在下文中,将参照图11至图13对根据本公开示例性实施例的卷积神经网络的裁剪、卷积计算装置及其单元进行描述。
图11示出根据本公开示例性实施例的卷积神经网络的裁剪装置的框图。
参照图11,卷积神经网络的裁剪装置包括卷积层遍历单元111、切片获取单元112、相似切片确定单元113、替代切片确定单元114和相似切片裁剪单元115。
卷积层遍历单元111被配置为遍历卷积神经网络的每个卷积层。
切片获取单元112被配置为基于卷积层的卷积参数获取输入通道卷积核切片。
在本公开的示例性实施例中,切片获取单元112可以被配置为根据卷积核的输入通道数,确定输入通道卷积核切片的数量。切片获取单元112还可以被配置为根据确定的输入通道卷积核切片的数量,基于卷积参数从表示卷积核的张量中提取输入通道卷积核切片,其中,所述卷积参数包括卷积核的输入通道数、输出通道数、卷积核的卷积过滤器宽度和卷积过滤器高度。
相似切片确定单元113被配置为确定输入通道卷积核切片中相似的输入通道卷积核切片。
在本公开的示例性实施例中,相似切片确定单元113可以被配置为:计算每个输入通道卷积核切片的范数,根据范数确定输入通道卷积核切片中相似的输入通道卷积核切片。
替代切片确定单元114被配置为基于相似的输入通道卷积核切片,确定用于替代相似的输入通道卷积核切片的替代切片。
在本公开的示例性实施例中,替代切片确定单元114可以被配置为:计算相似的输入通道卷积核切片的均值通道卷积核切片,将均值通道卷积核切片确定为替代切片。或者,替代切片确定单元114可以被配置为:将相似的输入通道卷积核切片之一确定为替代切片。
在本公开的示例性实施例中,替代切片确定单元114还可以被配置为:根据范数的相似度对输入通道卷积核切片进行分类,遍历分类结果中的每个类,计算各个输入通道卷积核切片之间的输入通道相似度,并根据输入通道相似度确定相似的输入通道卷积核切片。
在本公开的示例性实施例中,替代切片确定单元114还可以被配置为:计算各个输入通道卷积核切片之间的差范数,作为各个输入通道卷积核切片之间的输入通道相似度,将输入通道相似度处于阈值范围的输入通道卷积核切片确定为相似的输入通道卷积核切片。
相似切片裁剪单元115被配置为裁剪掉相似的输入通道卷积核切片,以替代切片替代被裁剪的输入通道卷积核切片。
在本公开的示例性实施例中,所述卷积神经网络的裁剪装置还可以包括索引值记录单元(未示出),被配置为记录替代切片所替代的被裁剪的输入通道卷积核切片的索引值。这样,可以通过索引值记录每个被裁剪的输入通道卷积核切片。
图12示出根据本公开示例性实施例的卷积神经网络的卷积计算装置的框图。
参照图12,卷积神经网络的卷积计算装置包括卷积层遍历单元121、替代切片判断单元122和卷积计算单元123。
卷积层遍历单元121被配置为遍历卷积神经网络的每个卷积层。
替代切片判断单元122被配置为针对卷积层的每个输入通道卷积核切片,根据输入通道卷积核切片的索引值判断输入通道卷积核切片是否是替代切片。
卷积计算单元123被配置为:当输入通道卷积核切片是替代切片时,获取输入通道卷积核切片所替代的被裁剪的输入通道卷积核切片的索引值,基于输入通道卷积核切片所替代的被裁剪的输入通道卷积核切片的索引值执行卷积计算。
在本公开的示例性实施例中,卷积计算单元123可以被配置为:从卷积输入的通道切片中确定与输入通道卷积核切片所替代的被裁剪的输入通道卷积核切片的索引值对应的通道切片;对确定的与输入通道卷积核切片所替代的被裁剪的输入通道卷积核切片的索引值对应的通道切片进行求和计算;对求和计算结果和输入通道卷积核切片执行卷积计算。
在本公开的示例性实施例中,卷积计算单元123还可以被配置为:当输入通道卷积核切片不是替代切片时,从卷积输入的通道切片中确定与输入通道卷积核切片的索引值对应的通道切片;对确定的与输入通道卷积核切片的索引值对应的通道切片和输入通道卷积核切片执行卷积计算。
图13示出根据本公开示例性实施例的图像和/或语音识别装置的框图。
参照图13,图像和/或语音识别装置包括接收单元131、输入确定单元132、卷积层遍历单元133、卷积输出确定单元134和结果输出单元135。
接收单元131被配置为接收用户输入的图像和/或语音。
输入确定单元132被配置为将接收的图像和/或语音作为卷积神经网络的第一个卷积层的输入。
卷积层遍历单元133被配置为遍历卷积神经网络的每个卷积层。
卷积输出确定单元134被配置为:针对卷积层的每个输入通道卷积核切片,根据输入通道卷积核切片的索引值判断输入通道卷积核切片是否是替代切片。当输入通道卷积核切片是替代切片时,卷积输出确定单元134被配置为获取输入通道卷积核切片所替代的被裁剪的输入通道卷积核切片的索引值,基于输入通道卷积核切片所替代的被裁剪的输入通道卷积核切片的索引值执行卷积计算,并且将所有输入通道卷积核切片的卷积计算结果的累加值作为卷积层的卷积输出结果。
在本公开的示例性实施例中,卷积输出确定单元134可以被配置为:从卷积输入的通道切片中确定与输入通道卷积核切片所替代的被裁剪的输入通道卷积核切片的索引值对应的通道切片,对确定的与输入通道卷积核切片所替代的被裁剪的输入通道卷积核切片的索引值对应的通道切片进行求和计算,并且对求和计算结果和输入通道卷积核切片执行卷积计算,从而在经过裁剪的卷积神经网络中实现了卷积计算。
在本公开的示例性实施例中,卷积输出确定单元134还可以被配置为:当输入通道卷积核切片不是替代切片时,从卷积输入的通道切片中确定与输入通道卷积核切片的索引值对应的通道切片,并且对确定的与输入通道卷积核切片的索引值对应的通道切片和输入通道卷积核切片执行卷积计算。
结果输出单元135被配置为将卷积神经网络的最后一个卷积层的输出作为图像识别结果和/或语音识别结果。
此外,根据本公开的示例性实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序被执行时,实现根据本公开的示例性实施例的卷积神经网络的裁剪、卷积计算方法中的至少一个。
在本公开的示例性实施例中,所述计算机可读存储介质可承载有一个或者多个程序,当所述计算机程序被执行时可实现以下步骤:遍历卷积神经网络的每个卷积层,执行以下步骤:基于卷积层的卷积参数获取输入通道卷积核切片;确定输入通道卷积核切片中相似的输入通道卷积核切片;基于相似的输入通道卷积核切片,确定用于替代相似的输入通道卷积核切片的替代切片;裁剪掉相似的输入通道卷积核切片,以替代切片替代被裁剪的输入通道卷积核切片。
在本公开的示例性实施例中,所述计算机可读存储介质可承载有一个或者多个程序,当所述计算机程序被执行时可实现以下步骤:遍历卷积神经网络的每个卷积层,执行以下步骤:针对卷积层的每个输入通道卷积核切片,根据输入通道卷积核切片的索引值判断输入通道卷积核切片是否是替代切片;当输入通道卷积核切片是替代切片时,获取输入通道卷积核切片所替代的被裁剪的输入通道卷积核切片的索引值,基于输入通道卷积核切片所替代的被裁剪的输入通道卷积核切片的索引值执行卷积计算。
在本公开的示例性实施例中,所述计算机可读存储介质可承载有一个或者多个程序,当所述计算机程序被执行时可实现以下步骤:接收用户输入的图像和/或语音;将接收的图像和/或语音作为卷积神经网络的第一个卷积层的卷积输入;从卷积神经网络的第一个卷积层开始,依次遍历卷积神经网络的每个卷积层,针对卷积层的每个输入通道卷积核切片,根据输入通道卷积核切片的索引值判断输入通道卷积核切片是否是替代切片,当输入通道卷积核切片是替代切片时,获取输入通道卷积核切片所替代的被裁剪的输入通道卷积核切片的索引值,基于输入通道卷积核切片所替代的被裁剪的输入通道卷积核切片的索引值执行卷积计算,并且将所有输入通道卷积核切片的卷积计算结果的累加值作为卷积层的卷积输出结果;遍历卷积神经网络的每个卷积层之后,将卷积神经网络的最后一个卷积层的卷积输出结果作为图像和/或语音的识别结果。
计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开的实施例中,计算机可读存储介质可以是任何包含或存储计算机程序的有形介质,该计算机程序可以被指令执行系统、装置或者器件使用或者与其结合使用。计算机可读存储介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。计算机可读存储介质可以包含在任意装置中;也可以单独存在,而未装配入该装置中。
以上已经结合图11至图13对根据本公开示例性实施例的卷积神经网络的裁剪、卷积计算装置进行了描述。接下来,结合图14对根据本公开的示例性实施例的计算装置进行描述。
图14示出根据本公开示例性实施例的计算装置的示意图。
参照图14,根据本公开示例性实施例的计算装置14,包括存储器141和处理器142,所述存储器141上存储有计算机程序,当所述计算机程序被处理器142执行时,实现根据本公开的示例性实施例的卷积神经网络的裁剪、卷积计算方法中的至少一个。
在本公开的示例性实施例中,当所述计算机程序被处理器142执行时,可实现以下步骤:遍历卷积神经网络的每个卷积层,执行以下步骤:基于卷积层的卷积参数获取输入通道卷积核切片;确定输入通道卷积核切片中相似的输入通道卷积核切片;基于相似的输入通道卷积核切片,确定用于替代相似的输入通道卷积核切片的替代切片;裁剪掉相似的输入通道卷积核切片,以替代切片替代被裁剪的输入通道卷积核切片。
在本公开的示例性实施例中,当所述计算机程序被处理器142执行时,可实现以下步骤:遍历卷积神经网络的每个卷积层,执行以下步骤:针对卷积层的每个输入通道卷积核切片,根据输入通道卷积核切片的索引值判断输入通道卷积核切片是否是替代切片;当输入通道卷积核切片是替代切片时,获取输入通道卷积核切片所替代的被裁剪的输入通道卷积核切片的索引值,基于输入通道卷积核切片所替代的被裁剪的输入通道卷积核切片的索引值执行卷积计算。
在本公开的示例性实施例中,当所述计算机程序被处理器142执行时,可实现以下步骤:接收用户输入的图像和/或语音;将接收的图像和/或语音作为卷积神经网络的第一个卷积层的卷积输入;从卷积神经网络的第一个卷积层开始,依次遍历卷积神经网络的每个卷积层,针对卷积层的每个输入通道卷积核切片,根据输入通道卷积核切片的索引值判断输入通道卷积核切片是否是替代切片,当输入通道卷积核切片是替代切片时,获取输入通道卷积核切片所替代的被裁剪的输入通道卷积核切片的索引值,基于输入通道卷积核切片所替代的被裁剪的输入通道卷积核切片的索引值执行卷积计算,并且将所有输入通道卷积核切片的卷积计算结果的累加值作为卷积层的卷积输出结果;遍历卷积神经网络的每个卷积层之后,将卷积神经网络的最后一个卷积层的卷积输出结果作为图像和/或语音的识别结果。
本公开实施例中的计算装置可以包括但不限于诸如移动电话、笔记本电脑、PDA(个人数字助理)、PAD(平板电脑)、台式计算机等的装置。图14示出的计算装置仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
以上已参照图1至图14描述了根据本公开示例性实施例的卷积神经网络的裁剪、卷积计算方法及装置。然而,应该理解的是:图11至图13中所示的卷积神经网络的裁剪、卷积计算装置及其单元可分别被配置为执行特定功能的软件、硬件、固件或上述项的任意组合,图14中所示的计算装置并不限于包括以上示出的组件,而是可根据需要增加或删除一些组件,并且以上组件也可被组合。
根据本公开的示例性实施例的卷积神经网络的裁剪方法及装置,通过遍历卷积神经网络的每个卷积层,执行以下步骤:基于卷积层的卷积参数获取输入通道卷积核切片;确定输入通道卷积核切片中相似的输入通道卷积核切片;基于相似的输入通道卷积核切片,确定用于替代相似的输入通道卷积核切片的替代切片;裁剪掉相似的输入通道卷积核切片,以替代切片替代被裁剪的输入通道卷积核切片。这样,通过利用卷积神经网络中的卷积核内部不同通道之间具有相似性这一特点,裁剪掉具备相似性的卷积核通道,并由替代卷积核通道替代被裁剪掉的相似的多个卷积核通道,从而在不需要大量额外的参考结构来分别记录每个被裁剪掉的权重索引或位置、不影响卷积神经网络的权重的表现形式、并且不影响卷积神经网络的运行和功能的情况下,降低了卷积神经网络的空间复杂度和所需的存储空间。此外,根据本公开的示例性实施例的卷积神经网络的卷积计算方法及装置,通过判断输入通道卷积核切片是不是替代切片,在卷积计算时区分替代切片和非替代切片,对替代切片和非替代切片进行区别计算,可适用于已裁剪卷积核的通道裁剪卷积计算,并且在一定程度上提升计算效率,从而可提高卷积神经网络的识别效率。
尽管已经参照其示例性实施例具体显示和描述了本公开,但是本领域的技术人员应该理解,在不脱离权利要求所限定的本公开的精神和范围的情况下,可以对其进行形式和细节上的各种改变。
Claims (15)
1.一种卷积神经网络的裁剪方法,包括:
遍历卷积神经网络的每个卷积层,执行以下步骤:
基于卷积层的卷积参数获取输入通道卷积核切片;
确定输入通道卷积核切片中相似的输入通道卷积核切片;
基于相似的输入通道卷积核切片,确定用于替代相似的输入通道卷积核切片的替代切片;
裁剪掉相似的输入通道卷积核切片,以替代切片替代被裁剪的输入通道卷积核切片。
2.根据权利要求1所述的卷积神经网络的裁剪方法,还包括:
记录替代切片所替代的被裁剪的输入通道卷积核切片的索引值。
3.根据权利要求1或2所述的卷积神经网络的裁剪方法,其中,确定输入通道卷积核切片中相似的输入通道卷积核切片的步骤包括:
计算每个输入通道卷积核切片的范数;
根据范数确定输入通道卷积核切片中相似的输入通道卷积核切片。
4.根据权利要求3所述的卷积神经网络的裁剪方法,其中,根据范数确定输入通道卷积核切片中相似的输入通道卷积核切片的步骤包括:
根据范数的相似度对输入通道卷积核切片进行分类;
遍历分类结果中的每个类,计算各个输入通道卷积核切片之间的输入通道相似度,并根据输入通道相似度确定相似的输入通道卷积核切片。
5.根据权利要求4所述的卷积神经网络的裁剪方法,其中,
计算各个输入通道卷积核切片之间的输入通道相似度的步骤包括:
计算各个输入通道卷积核切片之间的差范数,作为各个输入通道卷积核切片之间的输入通道相似度,
根据输入通道相似度确定相似的输入通道卷积核切片的步骤包括:
将输入通道相似度处于阈值范围的输入通道卷积核切片确定为相似的输入通道卷积核切片。
6.根据权利要求1或2所述的卷积神经网络的裁剪方法,其中,
确定用于替代相似的输入通道卷积核切片的替代切片的步骤包括:
计算相似的输入通道卷积核切片的均值通道卷积核切片;
将均值通道卷积核切片确定为替代切片,
或者,确定用于替代相似的输入通道卷积核切片的替代切片的步骤包括:
将相似的输入通道卷积核切片之一确定为替代切片。
7.根据权利要求1或2所述的卷积神经网络的裁剪方法,其中,基于卷积参数获取输入通道卷积核切片的步骤包括:
根据卷积核的输入通道数,确定输入通道卷积核切片的数量;
根据确定的输入通道卷积核切片的数量,基于卷积参数从表示卷积核的张量中提取输入通道卷积核切片,其中,所述卷积参数包括卷积核的输入通道数、输出通道数、卷积核的卷积过滤器宽度和卷积过滤器高度。
8.一种使用根据权利要求1-7中任一方法裁剪的卷积神经网络的卷积计算方法,包括:
遍历卷积神经网络的每个卷积层,执行以下步骤:
针对卷积层的每个输入通道卷积核切片,根据输入通道卷积核切片的索引值判断输入通道卷积核切片是否是替代切片;
当输入通道卷积核切片是替代切片时,获取输入通道卷积核切片所替代的被裁剪的输入通道卷积核切片的索引值,基于输入通道卷积核切片所替代的被裁剪的输入通道卷积核切片的索引值执行卷积计算。
9.根据权利要求8所述的卷积计算方法,其中,基于输入通道卷积核切片所替代的被裁剪的输入通道卷积核切片的索引值执行卷积计算的步骤包括:
从卷积输入的通道切片中确定与输入通道卷积核切片所替代的被裁剪的输入通道卷积核切片的索引值对应的通道切片;
对确定的与输入通道卷积核切片所替代的被裁剪的输入通道卷积核切片的索引值对应的通道切片进行求和计算;
对求和计算结果和输入通道卷积核切片执行卷积计算。
10.根据权利要求8所述的卷积计算方法,还包括:
当输入通道卷积核切片不是替代切片时,从卷积输入的通道切片中确定与输入通道卷积核切片的索引值对应的通道切片;
对确定的与输入通道卷积核切片的索引值对应的通道切片和输入通道卷积核切片执行卷积计算。
11.根据权利要求8所述的卷积计算方法,其中,卷积神经网络的第一个卷积层的输入是图像和/或语音,卷积神经网络的最后一个卷积层的输出是图像识别结果和/或语音识别结果。
12.一种卷积神经网络的裁剪装置,包括:
卷积层遍历单元,被配置为遍历卷积神经网络的每个卷积层;
切片获取单元,被配置为基于卷积层的卷积参数获取输入通道卷积核切片;
相似切片确定单元,被配置为确定输入通道卷积核切片中相似的输入通道卷积核切片;
替代切片确定单元,被配置为基于相似的输入通道卷积核切片,确定用于替代相似的输入通道卷积核切片的替代切片;和
相似切片裁剪单元,被配置为裁剪掉相似的输入通道卷积核切片,以替代切片替代被裁剪的输入通道卷积核切片。
13.一种使用根据权利要求1-7中任一方法裁剪的卷积神经网络的卷积计算装置,包括:
卷积层遍历单元,被配置为遍历卷积神经网络的每个卷积层;
替代切片判断单元,被配置为针对卷积层的每个输入通道卷积核切片,根据输入通道卷积核切片的索引值判断输入通道卷积核切片是否是替代切片;和
卷积计算单元,被配置为当输入通道卷积核切片是替代切片时,获取输入通道卷积核切片所替代的被裁剪的输入通道卷积核切片的索引值,基于输入通道卷积核切片所替代的被裁剪的输入通道卷积核切片的索引值执行卷积计算。
14.一种存储有计算机程序的计算机可读存储介质,其中,当所述计算机程序被处理器执行时,实现权利要求1至11中任一项所述的方法。
15.一种计算装置,包括:
处理器;
存储器,存储有计算机程序,当所述计算机程序被处理器执行时,实现权利要求1至11中任一项所述的方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010140843.7A CN111414993B (zh) | 2020-03-03 | 2020-03-03 | 卷积神经网络的裁剪、卷积计算方法及装置 |
KR1020210020655A KR20210111677A (ko) | 2020-03-03 | 2021-02-16 | 뉴럴 네트워크의 클리핑 방법, 뉴럴 네트워크의 컨벌루션 계산 방법 및 그 방법을 수행하기 위한 전자 장치 |
US17/190,642 US20210279586A1 (en) | 2020-03-03 | 2021-03-03 | Method and apparatus for clipping neural networks and performing convolution |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010140843.7A CN111414993B (zh) | 2020-03-03 | 2020-03-03 | 卷积神经网络的裁剪、卷积计算方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111414993A true CN111414993A (zh) | 2020-07-14 |
CN111414993B CN111414993B (zh) | 2024-03-01 |
Family
ID=71492777
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010140843.7A Active CN111414993B (zh) | 2020-03-03 | 2020-03-03 | 卷积神经网络的裁剪、卷积计算方法及装置 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR20210111677A (zh) |
CN (1) | CN111414993B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113487012A (zh) * | 2021-06-24 | 2021-10-08 | 北京航空航天大学 | 一种面向fpga的深度卷积神经网络加速器及设计方法 |
CN115035912A (zh) * | 2022-06-08 | 2022-09-09 | 哈尔滨工程大学 | 基于moc模型的水声信号样本自动标注方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018058426A1 (zh) * | 2016-09-29 | 2018-04-05 | 清华大学 | 硬件神经网络转换方法、计算装置、编译方法和神经网络软硬件协作系统 |
CN109359726A (zh) * | 2018-11-27 | 2019-02-19 | 华中科技大学 | 一种基于winograd算法的卷积神经网络优化方法 |
CN109388777A (zh) * | 2017-08-07 | 2019-02-26 | 英特尔公司 | 一种用于经优化的Winograd卷积加速器的系统和方法 |
CN109583564A (zh) * | 2018-10-31 | 2019-04-05 | 东华大学 | 基于vgg卷积神经网络的极相似动物纤维自动识别方法 |
CN109598340A (zh) * | 2018-11-15 | 2019-04-09 | 北京知道创宇信息技术有限公司 | 卷积神经网络的裁剪方法、装置及存储介质 |
CN110084281A (zh) * | 2019-03-31 | 2019-08-02 | 华为技术有限公司 | 图像生成方法、神经网络的压缩方法及相关装置、设备 |
WO2019196222A1 (zh) * | 2018-04-08 | 2019-10-17 | 清华大学 | 一种应用于卷积神经网络的处理器 |
CN110348562A (zh) * | 2019-06-19 | 2019-10-18 | 北京迈格威科技有限公司 | 神经网络的量化策略确定方法、图像识别方法和装置 |
CN110781948A (zh) * | 2019-10-22 | 2020-02-11 | 北京市商汤科技开发有限公司 | 图像处理方法、装置、设备及存储介质 |
-
2020
- 2020-03-03 CN CN202010140843.7A patent/CN111414993B/zh active Active
-
2021
- 2021-02-16 KR KR1020210020655A patent/KR20210111677A/ko active Search and Examination
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018058426A1 (zh) * | 2016-09-29 | 2018-04-05 | 清华大学 | 硬件神经网络转换方法、计算装置、编译方法和神经网络软硬件协作系统 |
CN109388777A (zh) * | 2017-08-07 | 2019-02-26 | 英特尔公司 | 一种用于经优化的Winograd卷积加速器的系统和方法 |
WO2019196222A1 (zh) * | 2018-04-08 | 2019-10-17 | 清华大学 | 一种应用于卷积神经网络的处理器 |
CN109583564A (zh) * | 2018-10-31 | 2019-04-05 | 东华大学 | 基于vgg卷积神经网络的极相似动物纤维自动识别方法 |
CN109598340A (zh) * | 2018-11-15 | 2019-04-09 | 北京知道创宇信息技术有限公司 | 卷积神经网络的裁剪方法、装置及存储介质 |
CN109359726A (zh) * | 2018-11-27 | 2019-02-19 | 华中科技大学 | 一种基于winograd算法的卷积神经网络优化方法 |
CN110084281A (zh) * | 2019-03-31 | 2019-08-02 | 华为技术有限公司 | 图像生成方法、神经网络的压缩方法及相关装置、设备 |
CN110348562A (zh) * | 2019-06-19 | 2019-10-18 | 北京迈格威科技有限公司 | 神经网络的量化策略确定方法、图像识别方法和装置 |
CN110781948A (zh) * | 2019-10-22 | 2020-02-11 | 北京市商汤科技开发有限公司 | 图像处理方法、装置、设备及存储介质 |
Non-Patent Citations (3)
Title |
---|
ANUPAMA SHARMA 等: "A Novel approach for Hand Gesture Recognition using Kirsch edge with Bit Plane", 《2019 INTERNATIONAL CONFERENCE ON INTELLIGENT COMPUTING AND CONTROL SYSTEMS (ICCS)》, 31 December 2019 (2019-12-31), pages 1069 - 1073 * |
JIAN-HAO LUO 等: "ThiNet: A Filter Level Pruning Method for Deep Neural Network Compression", 《2017 IEEE INTERNATIONAL CONFERENCE ON COMPUTER VISION (ICCV)》, 31 December 2017 (2017-12-31), pages 5068 - 5076 * |
周兵: "基于概率模型的网络切片资源优先度调度仿真", 《计算机仿真》, vol. 36, no. 9, 31 December 2019 (2019-12-31), pages 479 - 482 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113487012A (zh) * | 2021-06-24 | 2021-10-08 | 北京航空航天大学 | 一种面向fpga的深度卷积神经网络加速器及设计方法 |
CN113487012B (zh) * | 2021-06-24 | 2023-08-04 | 北京航空航天大学 | 一种面向fpga的深度卷积神经网络加速器及设计方法 |
CN115035912A (zh) * | 2022-06-08 | 2022-09-09 | 哈尔滨工程大学 | 基于moc模型的水声信号样本自动标注方法 |
CN115035912B (zh) * | 2022-06-08 | 2024-04-26 | 哈尔滨工程大学 | 基于moc模型的水声信号样本自动标注方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111414993B (zh) | 2024-03-01 |
KR20210111677A (ko) | 2021-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109344921B (zh) | 一种基于深度神经网络模型的图像识别方法、装置及设备 | |
CN109086866B (zh) | 一种适用于嵌入式设备的部分二值卷积方法 | |
CN112862681A (zh) | 一种超分辨率方法、装置、终端设备及存储介质 | |
CN102236675A (zh) | 图像特征点匹配对处理、图像检索方法及设备 | |
CN113781510B (zh) | 边缘检测方法、装置及电子设备 | |
JP2006338313A (ja) | 類似画像検索方法,類似画像検索システム,類似画像検索プログラム及び記録媒体 | |
CN111414993B (zh) | 卷积神经网络的裁剪、卷积计算方法及装置 | |
CN111723915A (zh) | 深度卷积神经网络的剪枝方法、计算机设备及应用方法 | |
CN113536020B (zh) | 数据查询的方法、存储介质和计算机程序产品 | |
CN110059823A (zh) | 深度神经网络模型压缩方法及装置 | |
CN112927173B (zh) | 模型压缩方法、装置、计算设备及存储介质 | |
CN112132279A (zh) | 卷积神经网络模型压缩方法、装置、设备及存储介质 | |
CN112364012B (zh) | 数据特征确定方法、装置及电子设备 | |
CN114332500A (zh) | 图像处理模型训练方法、装置、计算机设备和存储介质 | |
KR100788642B1 (ko) | 디지털 영상 텍스쳐 분석 방법 | |
CN116542311A (zh) | 神经网络模型压缩方法和系统 | |
CN112749576B (zh) | 图像识别方法和装置、计算设备以及计算机存储介质 | |
CN112257689A (zh) | 人脸识别模型的训练和识别方法、存储介质及相关设备 | |
CN115294417A (zh) | 用于图像处理的方法、设备和存储介质 | |
CN116468102A (zh) | 刀具图像分类模型剪枝方法、装置、计算机设备 | |
CN115374817A (zh) | 基于混合图网络的情绪识别方法、装置、设备及存储介质 | |
CN108154177B (zh) | 业务识别方法、装置、终端设备及存储介质 | |
CN112200275A (zh) | 人工神经网络的量化方法及装置 | |
CN117131920B (zh) | 一种基于网络结构搜索的模型剪枝方法 | |
JP2019096118A (ja) | パターン認識プログラム、装置、及び方法 |
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 |