CN112949814A - 卷积神经网络的压缩和加速方法、装置及嵌入式设备 - Google Patents
卷积神经网络的压缩和加速方法、装置及嵌入式设备 Download PDFInfo
- Publication number
- CN112949814A CN112949814A CN201911176896.8A CN201911176896A CN112949814A CN 112949814 A CN112949814 A CN 112949814A CN 201911176896 A CN201911176896 A CN 201911176896A CN 112949814 A CN112949814 A CN 112949814A
- Authority
- CN
- China
- Prior art keywords
- weight
- layer
- neural network
- output
- compression
- 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 78
- 238000013527 convolutional neural network Methods 0.000 title claims abstract description 65
- 230000006835 compression Effects 0.000 title claims abstract description 45
- 238000007906 compression Methods 0.000 title claims abstract description 45
- 230000001133 acceleration Effects 0.000 title claims abstract description 42
- 238000012549 training Methods 0.000 claims abstract description 81
- 238000013138 pruning Methods 0.000 claims abstract description 51
- 238000003860 storage Methods 0.000 claims abstract description 29
- 238000003062 neural network model Methods 0.000 claims abstract description 24
- 230000007547 defect Effects 0.000 claims description 11
- 238000001514 detection method Methods 0.000 claims description 11
- 230000006870 function Effects 0.000 claims description 8
- 238000005520 cutting process Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 claims description 6
- 238000012545 processing Methods 0.000 claims description 6
- 230000005284 excitation Effects 0.000 claims description 4
- 238000001125 extrusion Methods 0.000 claims description 4
- 238000011176 pooling Methods 0.000 claims description 4
- 238000010304 firing Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 19
- 238000005259 measurement Methods 0.000 abstract description 7
- 230000009286 beneficial effect Effects 0.000 abstract description 3
- 238000013528 artificial neural network Methods 0.000 description 14
- 238000004364 calculation method Methods 0.000 description 14
- 238000004519 manufacturing process Methods 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 4
- 238000011160 research Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 239000000446 fuel Substances 0.000 description 3
- 238000007689 inspection Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000002401 inhibitory effect Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000010422 painting Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 239000007787 solid Substances 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
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
技术领域
本发明涉及神经网络技术领域,尤其涉及一种卷积神经网络的压缩和加速方法、一种装置及一种嵌入式设备。
背景技术
近年来,随着计算技术的发展,利用神经网络的机器学习成为了研究热点,部分技术已经应用在医疗、交通、公安等行业及日常生活领域。卷积神经网络是神经网络的一种,相较于传统分析识别方法,卷积神经网络具有识别能力强、泛化能力好、特征提取准确率高等优点,是当前语音分析和图像识别领域的研究热点。
许多卷积神经网络模型方案在设计网络模型时会在一定程度上保持冗余,以保证网络在实际过程中的表现,而且随着研究的不断发展,其预测和分类的准确性得到很大提高,计算量也更大,但是,过多的参数会增加算法的计算时间,同时过大的网络尺寸会占用过多存储资源,目前开发的卷积神经网络在实际应用中均需要高性能的计算工具,这在一定程度上限制了卷积神经网络的应用。例如,随着移动互联网技术、物联网技术的发展,希望将卷积神经网络部署在笔记本电脑、手机、平板电脑、智能家居、汽车等不具备强大计算能力的设备上,以在相关产品上进行诸如图像检索分类、目标检测、目标跟踪、语音识别等任务,还比如,在一些自动化程度较高的工厂,希望将卷积神经网络部署在工控机或者普通的无GPU的电脑中,可用来执行产品质量监控等过程。但是,在这类设备中部署神经网络时,往往存在运算与存储能力不够的问题。
虽然现有技术包括一些用于对卷积神经网络进行加速和压缩的方法,以降低网络模型的计算用时以及网络模型的存储容量,但是这些方法往往以牺牲网络模型的准确率为代价,这仍然是不可取的。
发明内容
本发明提供一种卷积神经网络的压缩和加速方法,既可以降低神经网络模型的计算时间以及存储空间,同时还可以提升准确率,很适合部署在运算与存储能力较为低端的设备中。本发明另外还提供一种装置及一种嵌入式设备。
一个方面,本发明提供一种卷积神经网络的压缩和加速方法,包括以下步骤:
建立一初始卷积神经网络结构;
选择所述初始卷积神经网络结构中的一层或若干卷积层作为选定层,在所述选定层添加权重训练模块并进行网络训练,其中,所述权重训练模型用于学习所述选定层输出的特征图的权重,以经过所述网络训练获得与所述选定层输出的特征图的权重相关的权重度量;以及,
基于所述权重度量对所述权重训练模块的输出层的权重进行剪枝,并对所述初始卷积神经网络结构中与所述选定层的输出作进一步卷积操作的卷积层的卷积核权重进行剪枝,获得剪裁后的卷积层,存储剪枝后的卷积核权重;
进行网络推理,其中,根据所述权重训练模块经过剪枝后的权重生成剪裁后的特征图,并利用所述剪裁后的特征图与所述剪裁后的卷积层进行卷积操作。
可选的,所述权重训练模块包括SENet结构,所述权重度量为利用所述SENet结构进行所述网络训练后生成的掩模层。
可选的,在所述选定层添加权重训练模块并进行网络训练的方法包括:
获得选定层输出的特征图;
对所述选定层输出的特征图利用全局池化进行挤压操作,所述挤压操作的输出表明了所述选定层输出的特征图的全局信息;
对所述挤压操作的输出通过两级全连接进行激发操作,并根据最后一个全连接层为所述选定层输出的每个特征图生成相应的权值;以及,
利用设定阈值对所述权值进行截断操作,生成所述掩模层。
可选的,在所述激发操作中,对所述最后一个全连接层的处理不包括正则化。
可选的,利用Sigmoid函数对所述最后一个全连接层的输出进行激活。
可选的,根据所述权重训练模块经过剪枝后的权重生成剪裁后的特征图的方法包括:根据所述掩模层逐通道地将截断后的权值加权到所述选定层输出的各个特征图上,以生成所述剪裁后的特征图。
可选的,基于所述权重度量对所述权重训练模块的输出层的权重进行剪枝的方法包括:遍历所述掩模层中权值为0的元素,将所述最后一个全连接层中输出权值被掩模处理的权重剪除,并保存剩余的权重,以压缩所述最后一个全连接层的权重。
可选的,对所述初始卷积神经网络结构中与所述选定层的输出作进一步卷积运算的卷积层的卷积核权重进行剪枝的方法包括:遍历所述掩模层中权值为0的元素,将相应的所述卷积层的卷积核权重通道中被掩模处理的通道剪除。
另一个方面,本发明提供一种装置,所述装置包括计算机可读存储介质和处理器,所述计算机可读存储介质存储有程序代码,当所述程序代码被所述处理器执行时,执行上述卷积神经网络的压缩和加速方法。
在一个方面,本发明提供一种嵌入式设备,所述嵌入式设备部署有神经网络模型,所述神经网络模型采用了上述卷积神经网络的压缩和加速方法。
可选的,所述嵌入式设备为工控机,其中部署的所述神经网络模型用来进行产品缺陷检测。
本发明提供的卷积神经网络的压缩和加速方法,在建立一初始卷积神经网络结构后,选择所述初始卷积神经网络结构中的一层或若干卷积层作为选定层,在所述选定层添加权重训练模块并进行网络训练,其中,所述权重训练模型用于学习所述选定层输出的特征图的权重,以经过所述网络训练获得与所述选定层输出的特征图的权重相关的权重度量,然后基于所述权重度量对所述权重训练模块的输出层的权重进行剪枝,并对所述初始卷积神经网络结构中与所述选定层的输出作进一步卷积操作的卷积层的卷积核权重进行剪枝,获得剪裁后的卷积层,存储剪枝后的卷积核权重,从而在推理过程中,涉及所述权重训练模块的计算量减少,并且,由于进行进一步卷积操作的卷积层经过剪裁,进而卷积操作的计算量也减少,使得网络运算加速,并且,剪枝后的卷积核在存储时,其所需的存储空间缩小,因而还具有压缩网络模型的作用,有助于最终获得满足存储和速度要求的神经网络模型。由于所述权重训练模块能够在训练过程中学习到网络模型各个特征图的重要性,具有提升有用特征并抑制对当前任务用处不大的特征的作用,在降低网络模型计算复杂度的同时,还可以提升网络模型的准确率,对比实验的结果也表明了这一点。
本发明另外提供的装置可以是一种计算或者神经网络训练工具,所述装置包括计算机可读存储介质和处理器,所述计算机可读存储介质存储有程序代码,当所述程序代码被所述处理器执行时,执行上述卷积神经网络的压缩和加速方法,通过对网络模型的压缩和加速,可以减少模型的存储开销,并提高训练效率。
本发明提供的嵌入式设备部署有通过上述卷积神经网络的压缩和加速方法获得的神经网络模型,该神经网络模型具有占用空间小、运算速度快的特点,因而在该嵌入式设备上可以利用该神经网络模型执行预设的任务。所述嵌入式设备可以是运算与存储能力较高的设备,也可以是运算与存储能力较为低端的设备。进一步的,所述嵌入式设备例如是工控机,其中部署的神经网络模型用来进行产品缺陷检测。利用部署的神经网络模型的优点,可以提高生产效率以及产线的自动化程度。
附图说明
图1是本发明实施例的卷积神经网络的压缩和加速方法的示意图。
图2是本发明实施例在选定层添加权重训练模块并进行网络训练的流程图。
图3是利用本发明实施例的卷积神经网络的压缩和加速方法进行剪枝操作的示意图。
图4是优化后的yolov3-tiny模型与初版的yolov3-tiny模型的F1分数比较图。
具体实施方式
以下结合附图和具体实施例对本发明的卷积神经网络的压缩和加速方法、装置及嵌入式设备作进一步详细说明。根据下面的说明,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。
本文所使用的属于“装置”和/或“系统”可以包括通过具有一对一对应通信连接的诸如网络的通信单元互连的多个计算机、硬件、装置等,或者包括具有实现本发明的过程的单个计算机、硬件、装置等。
如背景技术所述,神经网络结构因计算量大、尺寸大的原因导致其对计算工具的要求很高,这在一定程度上限制了其在各种不具有相应的计算和存储能力的场合的应用。以汽车制造为例,在各道生产线上需要多次根据照片检测产品是否存在缺陷,例如喷油器生产过程中,由于会出现飞边、喷漆重复等错误,因此为了保证联电产品质量,需要在最终出货前检查喷油器是否有缺陷,这部分工作通常主要由人工进行质检,但是,人工质检存在人眼误差,并且质检效率较低。为了节约人力成本,各汽车制造商开始推动用缺陷检测工序的半自动化甚至全自动化。但是,一般产线上的工控机为嵌入式设备,未必设置有GPU,如果用来进行自动缺陷检测,计算能力是很有限的,但另一方面,为了能够配合产线的生产速率,要求计算过程要快,具体到单帧图像需要将检测时间控制在0.8s以内,且时间越短越好。对此,发明人前期在训练集上训练了初版的神经网络模型,并尝试部署于工控机中进行喷油器缺陷检测,但是,实验结果表明,初版神经网络模型的单帧图像前向检测速率在1.4s左右,并不能满足产线的效率要求。经过深入研究后,发明人设计了以下所描述的卷积神经网络的压缩和加速方法,对卷积神经网络进行有效地压缩和加速,经过优化后的神经网络模型可以满足检测速率的要求,并且该过程不需要牺牲检测准确率,甚至测试数据表明,由于权重训练模块能够在训练过程中学习到输入特征图的重要性,检测准确率得到了提升。需要说明的是,以下实施例所描述的卷积神经网络的压缩和加速方法不仅可以用于汽车生产方面,由于可以在确保准确率的同时降低卷积神经网络的计算时间以及存储空间,因而对所部署的设备的计算和存储性能的要求不高,应用范围更广。
本发明实施例首先涉及一种卷积神经网络的压缩和加速方法,该方法包括以下步骤:
第一步骤:建立一初始卷积神经网络结构;
第二步骤:选择所述初始卷积神经网络结构中的一层或若干卷积层作为选定层,在所述选定层添加权重训练模块并进行网络训练,其中,所述权重训练模型用于学习所述选定层输出的特征图的权重,以经过所述网络训练获得与所述选定层输出的特征图的权重相关的权重度量;
第三步骤:基于所述权重度量对所述权重训练模块的输出层的权重进行剪枝,并对所述初始卷积神经网络结构中与所述选定层的输出作进一步卷积操作的卷积层的卷积核权重进行剪枝,获得剪裁后的卷积层,存储剪枝后的卷积核权重;
第四步骤:进行网络推理,其中,根据所述权重训练模块经过剪枝后的权重生成剪裁后的特征图,并利用所述剪裁后的特征图与所述剪裁后的卷积层进行卷积操作。
图1是本发明实施例的卷积神经网络的压缩和加速方法的流程示意图。以下结合图1对本发明实施例的卷积神经网络的压缩和加速方法作进一步详细说明。
首先,执行第一步骤,建立一初始卷积神经网络结构。所述初始卷积神经网络结构可以是经过预训练的网络结构,其可以包括多个卷积层,输入图像经过卷积层处理后可得到分类结果。每个卷积层都有一组卷积核及对应的卷积核权重,卷积层可以利用卷积核对输入该层的特征图(feature map)进行卷积操作(即计算每个卷积核与输入特征图的每个位置的卷积区域对应元素相乘并求和),获得对应层的输出,输入卷积层的特征图可以设置为W×H×C,其中W为特征图的宽度,H为特征图的高度,C为特征图的数量。本发明对所述初始卷积神经网络结构的类型不作特别限制,优选为ResNet,MobileNet、yolov3 tiny等轻量化网络,以便于叠加本实施例的卷积神经网络的压缩和加速方法达到更优秀的压缩和加速的效果,进一步提升其在嵌入式端或者无GPU普通电脑中的表现。
在建立上述初始卷积神经网络结构后,接着执行第二步骤,选择所述初始卷积神经网络结构中的一层或若干卷积层作为选定层,在所述选定层添加权重训练模块并进行网络训练,其中,所述权重训练模型用于学习所述选定层输出的特征图的权重,以经过所述网络训练获得与所述所述选定层输出的特征图的权重相关的权重度量。
本实施例中,权重训练模块用来自动学习所连接的选定层输出的特征图,目的是获得相应选定层输出的每个特征图的重要性程度,所述权重度量例如是0~1之间的概率,也可以是分布于有限区间可以用于比较的量化参数等,利用所述权重度量进行后续通道剪枝,可以减小或避免对网络模型的准确率的影响。
优选方案中,所述权重训练模块可以包括SENet(Squeeze-and-ExcitationNetworks,压缩和激发网络)结构,即利用SENet结构来学习有关输入的特征图的权重,并得到量化的与特征图的重要性有关的权重度量。SENet通过网络根据损失函数(loss)去学习特征图权重,使得有效的特征图的权重大,无效或效果小的特征图的权重小的方式来训练模型达到更好的结果。SENet作为一个子结构,可以嵌在多种分类网络中,具有准确率高、相对计算量小的优点。如图1所示,本实施例采用SENet结构进行训练,并进行模型剪枝、压缩、推理,即在初始卷积神经网络结构和SENet的基础上,建立了一种具有前向压缩和剪枝特征的神经网络模块,称为SENet压缩加速模块(图1)。
图2是本发明实施例在选定层添加权重训练模块并进行网络训练的流程图。图3是利用本发明实施例的卷积神经网络的压缩和加速方法中进行剪枝操作的示意图。图3中,虚线箭头表示的是被剪除的最后一个全连接层的权重和被剪除的卷积核权重通道,实线箭头为保留的权重。
参照图2和图3,以SENet作为权重训练模块,在所述选定层添加SENet并进行网络训练可包括如下的过程。
第一步S1,获得选定层输出的特征图。这一步可以通过初始卷积神经网络结构的标准卷积操作实现,原始通道数记为C(C为大于1的整数),对应的是C个大小为W×H的特征图。
第二步S2,对所述选定层输出的特征图利用全局池化(global average pooling)进行挤压(Squeeze)操作。具体的,所述挤压操作对所述选定层的输出的特征图作全局池化,即顺着空间维度压缩特征图,将每个二维的通道变成一个实数,可以通过Fsq(.)函数计算将W×H×C的输入转换成1×1×C的输出,该输出表明了C个特征图的全局信息。
第三步S3,对所述挤压操作的输出通过两级全连接进行激发(Excitation)操作,第一全连接层(图3中的FC1)的维度是C×C/r,r为缩放参数,用来减少通道数并降低计算量,此处r取16。第一全连接层的维度乘以所述挤压操作的输出,结果为1×1×C/16,接着,再通过一个ReLU层,保持输出维度不变,并和第二全连接层的维度(也是C×C/r)相乘,以获得第二全连接层的输出,其维度为1×1×C,此处第二全连接层为最后一个全连接层。需要说明的是,为了使从最后一个全连接层获得的输出更加趋近于向0和1靠近,优选方案中,在上述训练过程中,不进行压缩和加速,对最后一个全连接层也不采用正则化处理。
通过获得第二个全连接层的输出后,第三步S3还为每个所述选定层输出的特征图生成相应的权值。具体可以利用Sigmoid函数对第二个全连接层的输出进行激活处理以生成该权值(对应图1中的Sigmoid激发层),使得该权值被限制在0~1的范围。由于这个权值是通过前面的全连接层和非线性层学习得到的,因此可以端到端(end to end)训练。
第四步S4,利用设定阈值对通过第三步S3为来自所述选定层的每个特征图生成的权值进行截断操作,生成掩模层。所述设定阈值例如为0.1,经过截断操作后,每个生成的掩模层中,输出值在设定阈值以下的元素的值均为0。
经过上述第一步S1至第四步S4,即完成了添加权重训练模块后的网络训练并获得掩模层的过程。接着执行本实施例的卷积神经网络的压缩和加速方法的第三步骤,利用第二步骤获得的权重度量对模块进行剪枝和压缩。
第三步骤可以执行以下两种剪枝操作:1)基于所述权重度量对所述权重训练模块的输出层的权重进行剪枝;2)对所述初始卷积神经网络结构中与所述选定层的输出作进一步卷积操作的卷积层的卷积核权重进行剪枝。通过剪枝操作,可以使相关计算加速。
具体的,本实施例中,以上述通过SENet模块得到的掩模层作为权重度量。第1)种剪枝压缩操作的方法可包括如下过程:遍历所述掩模层中权值为0的元素,将所述最后一个全连接层中输出权值被掩模处理的权重剪除,并保存剩余的权重,以压缩所述最后一个全连接层的权重。在获得剪枝后的最后一个全连接层的权重后,即可根据所述权重训练模块经过剪枝后的权重生成剪裁后的特征图。剪裁后的特征图由权重训练模块输出。
第2)种剪枝压缩操作的方法可包括如下过程:遍历所述掩模层中权值为0的元素,将相应的所述卷积层的卷积核权重通道中被掩模处理的通道剪除。进一步,在存储剪枝后的卷积核权重后,其占用的空间减少,即达到了压缩卷积层的效果。
参照图1,所述初始卷积神经网络结构中与所述选定层的输出作进一步卷积操作的卷积层的原始卷积核以四维权值张量可表示为K×K×C×N,其中,K×K为卷积核的尺寸,C为输入该卷积核的权重通道数,N为从该卷积核输出的权重通道数。在经过上述第2)种剪枝压缩操作后,剩余的卷积核权重通道减少,经过剪枝后的卷积核可表示为K×K×C'×N,C'表示剩余的卷积核权重通道数。在保存之后,剩余的卷积核权重被压缩,因而占用的存储空间相对于剪枝之前减少,其存储空间压缩率为C'/C。
上述训练和剪枝的步骤可以执行不止一次,即可以通过“训练-剪枝-训练-剪枝”的迭代操作来进行剪枝,以避免一次修剪过多对网络模型造成损害。
接着执行第四步骤,为网络推理的步骤。其中,根据所述权重训练模块经过剪枝后的权重生成剪裁后的特征图,并利用所述剪裁后的特征图与所述剪裁后的卷积层进行卷积操作,进而获得满足存储和速度要求的神经网络模型。
本实施例中,根据所述权重训练模块经过剪枝后的权重生成剪裁后的特征图的方法可包括:根据所述掩模层逐通道地将截断后的权值加权到所述选定层输出的各个特征图上,以生成所述剪裁后的特征图(图1)。
参照图1,在经过第1)种剪枝压缩操作后,最后一个全连接层的权重减少,从而获得的剪裁后的特征图可以表示为W×H×C',其中C'为与剪裁后的特征图的数量,C'为大于1的整数且C'<C。所述剪裁后的特征图作为卷积运算中相应的选定层的输出。
在网络推理过程中,一方面,由于已经使用掩模层对SENet模块的最后一个全连接层进行了权重剪枝,所以这一部分的计算时间可以节省下来,经过剪枝后,最后一个全连接层的计算量可以减少(1-C'/C),运算加速比亦为(1-C'/C)。另一方面,由于使用掩模层还对要进行卷积操作的卷积层进行卷积核权重剪枝,在利用权重训练模块输出的剪裁后的特征图与剪裁后的卷积层进行卷积操作时,计算量也减小了(1-C'/C),运算加速比亦为(1-C'/C)。经过相应卷积运算输出的特征图可表示为W×H×N,其中N为输出的特征图的数量。经过上述训练和推理,有助于获得满足存储和速度要求的神经网络模型。
本发明实施例的卷积神经网络的压缩和加速方法,通过为卷积层中的特征图分别赋予特征图权重特征,增强重要特征,抑制无关特征,可以提升网络表现,一方面从前向检测速度方面出发,根据权重度量对赋予特征图权重特征后的卷积层的输出通道和与之作进一步卷积运算的卷积层通道作了剪枝,可以减少网络模型的权重数量并且提升网络计算速度,另一方面,由于卷积层通道减少,在存储到某种介质如硬盘时,可以缩小网络模型所占的空间,即还可以实现对神经网络模型的压缩,便于其在一些计算和存储性能较低的设备如手机上的应用。由于所述权重训练模块能够在训练过程中学习到网络模型各个特征图的重要性,具有提升有用特征并抑制对当前任务用处不大的特征的作用,在降低网络模型计算复杂度的同时,还可以提升网络模型的准确率。
为了验证上述卷积神经网络的压缩和加速方法的表现,发明人以yolov3-tiny为例,利用上述压缩和加速方法对初版网络模型进行加速和优化。图4为优化后的yolov3-tiny模型(表示为yolov3-tiny-SE-CP)与初版的yolov3-tiny模型的F1分数(F1 score)比较图,其中横坐标为一个时期(epoch,即所有训练样本的一个正向传递和一个反向传递),纵坐标为F1分数。训练集采用的图像为用在汽车上的喷油器图片。根据图4可以看出,改进前,yolov3-tiny模型的F1分数最高为81.02,而优化后的yolov3-tiny模型模型的F1分数最高提升至83.60,同时召回率明显提升。之后在工厂用工控机级别的CPU上测试其加速性能表现,下表一为在三层卷积层上添加SENet模块并进行剪枝后获得的特征图个数及对应的剪枝率的数据。
表一
特征图个数 | 剪枝率 |
512 | 5.86% |
1024 | 35.06% |
512 | 73.63% |
进一步将上述优化后的yolov3-tiny模型部署在工控机级别CPU上测试其加速性能表现,具体通过输入喷油器的测试图片来进行喷油器的缺陷检测,在经过上述的卷积神经网络的压缩和加速方法进行优化加速后,产线上实际单帧图片的检测时间可以降低至0.5s,可以满足产线的实时性要求。
与传统的剪枝方法相比,上述卷积神经网络的压缩和加速方法具有以下优点:
一、由于利用了权重训练模块如SENet进行网络训练,能够在训练过程中学习到输入的各个特征图的重要性,然后在此基础上进行剪枝,不仅可以大幅降低计算复杂度,还可以提升获得的神经网络模型的准确率;
二、利用上述卷积神经网络的压缩和加速方法获得的神经网络模型,在推理阶段相比传统的剪枝模型消耗的存储资源和内存资源更少,更加适合部署至各种运算和存储性能较低端的嵌入式设备中,有助于神经网络的推广应用;
三、可以在最小化改变预训练好的初始卷积神经网络结构前提下,采用端到端的学习来优化网络和自动剪枝,并且由于采用了端到端的学习,可以根据训练数据集合自动学习到有利于当前任务的剪枝方案,所以它能显著减少人工的参与。
本发明实施例还涉及一种装置,所述装置包括计算机可读存储介质和处理器,所述计算机可读存储介质存储有程序代码,当所述程序代码被所述处理器执行时,执行上述神经网络的压缩和加速方法。具体的,所述装置可以是一种硬件平台,其中可包括个人计算机、服务器或者网络设备等等。所述计算机可读存储介质可以是随机存取存储器(RAM)、随机只读存储器(ROM)、硬盘、磁碟、光盘、中央处理单元(CPU)中的寄存器、经由通信线路的外部存储设备(或介质)等等,在所述计算机可读存储介质上存储的程序代码可以使用各种常见编程语言框架来实现,在被所述装置的处理器读取时,即可执行本实施例上述的卷积神经网络的压缩和加速方法。
本发明实施例还涉及一种嵌入式设备,所述嵌入式设备部署有神经网络模型,所述神经网络模型采用了上述神经网络的压缩和加速方法。此处嵌入式设备指的是设置有嵌入式系统的设备。例如,可以是笔记本电脑、手机、平板电脑、智能家居、汽车或者工控机等设备。由于采用了上述神经网络的压缩和加速方法进行压缩和运算加速,该神经网络模型具有占用空间小、运算速度快的特点,因而在该嵌入式设备上可以利用该神经网络模型执行预设的任务。
作为示例,所述嵌入式设备可以是工控机,其中部署的神经网络模型用来进行产品缺陷检测,通过对处理的图片进行快速的特征提取和分类,可以获得关于产品的缺陷信息,相比于人工质检,检测效率可以得到很大提升,并且避免了人工误差,可以提高生产效率以及产线的自动化程度。
上述实施例中的处理、执行,一般是以软件程序的方式配合硬件的方式来实施,然而,他们全部(或其中一部分)也可以使用电子硬件的方式来实施。不管是以软件或者硬件方式,其个别部分是熟悉电子、软件领域人员可以进行实施的,因此,其细节就不在本说明书中赘述。
上述描述仅是对本发明较佳实施例的描述,并非对本发明权利范围的任何限定,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。
Claims (11)
1.一种卷积神经网络的压缩和加速方法,其特征在于,包括:
建立一初始卷积神经网络结构;
选择所述初始卷积神经网络结构中的一层或若干卷积层作为选定层,在所述选定层添加权重训练模块并进行网络训练,其中,所述权重训练模型用于学习所述选定层输出的特征图的权重,以经过所述网络训练获得与所述选定层输出的特征图的权重相关的权重度量;以及,
基于所述权重度量对所述权重训练模块的输出层的权重进行剪枝,相应的,对所述初始卷积神经网络结构中与所述选定层的输出作进一步卷积操作的卷积层的卷积核权重进行剪枝,获得剪裁后的卷积层,存储剪枝后的卷积核权重;
进行网络推理,其中,根据所述权重训练模块的输出层生成剪裁后的特征图,并利用所述剪裁后的特征图与所述剪裁后的卷积层进行卷积操作。
2.如权利要求1所述的压缩和加速方法,其特征在于,所述权重训练模块包括SENet结构,所述权重度量为利用所述SENet结构进行所述网络训练后生成的掩模层。
3.如权利要求2所述的压缩和加速方法,其特征在于,在所述选定层添加权重训练模块并进行网络训练的方法包括:
获得选定层输出的特征图;
对所述选定层输出的特征图利用全局池化进行挤压操作,所述挤压操作的输出表明了所述选定层输出的特征图的全局信息;
对所述挤压操作的输出通过两级全连接进行激发操作,并根据最后一个全连接层为所述选定层输出的每个特征图生成相应的权值;以及,
利用设定阈值对所述权值进行截断操作,生成所述掩模层。
4.如权利要求3所述的压缩和加速方法,其特征在于,在所述激发操作中,对所述最后一个全连接层的处理不包括正则化。
5.如权利要求3所述的压缩和加速方法,其特征在于,利用Sigmoid函数对所述最后一个全连接层的输出进行激活。
6.如权利要求3所述的压缩和加速方法,其特征在于,根据所述权重训练模块经过剪枝后的权重生成剪裁后的特征图的方法包括:根据所述掩模层逐通道地将截断后的权值加权到所述选定层输出的各个特征图上,以生成所述剪裁后的特征图。
7.如权利要求3所述的压缩和加速方法,其特征在于,基于所述权重度量对所述权重训练模块的输出层的权重进行剪枝的方法包括:
遍历所述掩模层中权值为0的元素,将所述最后一个全连接层中输出权值被掩模处理的权重剪除,并保存剩余的权重,以压缩所述最后一个全连接层的权重。
8.如权利要求3所述的压缩和加速方法,其特征在于,对所述初始卷积神经网络结构中与所述选定层的输出作进一步卷积运算的卷积层的卷积核权重进行剪枝的方法包括:
遍历所述掩模层中权值为0的元素,将相应的所述卷积层的卷积核权重通道中被掩模处理的通道剪除。
9.一种装置,其特征在于,所述装置包括计算机可读存储介质和处理器,所述计算机可读存储介质存储有程序代码,当所述程序代码被所述处理器执行时,执行如权利要求1至8任一项所述的压缩和加速方法。
10.一种嵌入式设备,其特征在于,所述嵌入式设备部署有神经网络模型,所述神经网络模型采用了权利要求1至8任一项所述的压缩和加速方法。
11.如权利要求10所述的嵌入式设备,其特征在于,所述嵌入式设备为工控机,其中部署的所述神经网络模型用来进行产品缺陷检测。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911176896.8A CN112949814B (zh) | 2019-11-26 | 2019-11-26 | 卷积神经网络的压缩和加速方法、装置及嵌入式设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911176896.8A CN112949814B (zh) | 2019-11-26 | 2019-11-26 | 卷积神经网络的压缩和加速方法、装置及嵌入式设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112949814A true CN112949814A (zh) | 2021-06-11 |
CN112949814B CN112949814B (zh) | 2024-04-26 |
Family
ID=76225064
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911176896.8A Active CN112949814B (zh) | 2019-11-26 | 2019-11-26 | 卷积神经网络的压缩和加速方法、装置及嵌入式设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112949814B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113705775A (zh) * | 2021-07-29 | 2021-11-26 | 浪潮电子信息产业股份有限公司 | 一种神经网络的剪枝方法、装置、设备及存储介质 |
CN115546775A (zh) * | 2022-12-05 | 2022-12-30 | 成都寒芒科技有限公司 | 一种基于图像技术和深度学习融合的烤烟分级方法及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170372174A1 (en) * | 2016-06-28 | 2017-12-28 | Conduent Business Services, Llc | System and method for expanding and training convolutional neural networks for large size input images |
CN109711532A (zh) * | 2018-12-06 | 2019-05-03 | 东南大学 | 一种针对硬件实现稀疏化卷积神经网络推断的加速方法 |
CN109886397A (zh) * | 2019-03-21 | 2019-06-14 | 西安交通大学 | 一种针对卷积层的神经网络结构化剪枝压缩优化方法 |
CN109948717A (zh) * | 2019-03-26 | 2019-06-28 | 江南大学 | 一种生成对抗网络的自生长训练方法 |
WO2019144575A1 (zh) * | 2018-01-24 | 2019-08-01 | 中山大学 | 一种快速行人检测方法及装置 |
CN110175628A (zh) * | 2019-04-25 | 2019-08-27 | 北京大学 | 一种基于自动搜索与知识蒸馏的神经网络剪枝的压缩算法 |
US20190294929A1 (en) * | 2018-03-20 | 2019-09-26 | The Regents Of The University Of Michigan | Automatic Filter Pruning Technique For Convolutional Neural Networks |
-
2019
- 2019-11-26 CN CN201911176896.8A patent/CN112949814B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170372174A1 (en) * | 2016-06-28 | 2017-12-28 | Conduent Business Services, Llc | System and method for expanding and training convolutional neural networks for large size input images |
WO2019144575A1 (zh) * | 2018-01-24 | 2019-08-01 | 中山大学 | 一种快速行人检测方法及装置 |
US20190294929A1 (en) * | 2018-03-20 | 2019-09-26 | The Regents Of The University Of Michigan | Automatic Filter Pruning Technique For Convolutional Neural Networks |
CN109711532A (zh) * | 2018-12-06 | 2019-05-03 | 东南大学 | 一种针对硬件实现稀疏化卷积神经网络推断的加速方法 |
CN109886397A (zh) * | 2019-03-21 | 2019-06-14 | 西安交通大学 | 一种针对卷积层的神经网络结构化剪枝压缩优化方法 |
CN109948717A (zh) * | 2019-03-26 | 2019-06-28 | 江南大学 | 一种生成对抗网络的自生长训练方法 |
CN110175628A (zh) * | 2019-04-25 | 2019-08-27 | 北京大学 | 一种基于自动搜索与知识蒸馏的神经网络剪枝的压缩算法 |
Non-Patent Citations (2)
Title |
---|
靳丽蕾;杨文柱;王思乐;崔振超;陈向阳;陈丽萍;: "一种用于卷积神经网络压缩的混合剪枝方法", 小型微型计算机系统, no. 12, 11 December 2018 (2018-12-11) * |
马治楠;韩云杰;彭琳钰;周进凡;林付春;刘宇红;: "基于深层卷积神经网络的剪枝优化", 电子技术应用, no. 12, 6 December 2018 (2018-12-06) * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113705775A (zh) * | 2021-07-29 | 2021-11-26 | 浪潮电子信息产业股份有限公司 | 一种神经网络的剪枝方法、装置、设备及存储介质 |
CN115546775A (zh) * | 2022-12-05 | 2022-12-30 | 成都寒芒科技有限公司 | 一种基于图像技术和深度学习融合的烤烟分级方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112949814B (zh) | 2024-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Singh et al. | Play and prune: Adaptive filter pruning for deep model compression | |
CN109657582B (zh) | 人脸情绪的识别方法、装置、计算机设备及存储介质 | |
US11144782B2 (en) | Generating video frames using neural networks | |
CN112613581A (zh) | 一种图像识别方法、系统、计算机设备和存储介质 | |
US20220036167A1 (en) | Sorting method, operation method and operation apparatus for convolutional neural network | |
US20230401833A1 (en) | Method, computer device, and storage medium, for feature fusion model training and sample retrieval | |
CN111178258B (zh) | 一种图像识别的方法、系统、设备及可读存储介质 | |
US20210056357A1 (en) | Systems and methods for implementing flexible, input-adaptive deep learning neural networks | |
CN113705775A (zh) | 一种神经网络的剪枝方法、装置、设备及存储介质 | |
US11989637B2 (en) | System and method for invertible wavelet layer for neural networks | |
CN110796251A (zh) | 基于卷积神经网络的图像压缩优化方法 | |
CN113435594B (zh) | 安防检测模型训练方法、装置、设备及存储介质 | |
CN112949814B (zh) | 卷积神经网络的压缩和加速方法、装置及嵌入式设备 | |
CN111783996A (zh) | 一种数据处理方法、装置及设备 | |
CN112132279A (zh) | 卷积神经网络模型压缩方法、装置、设备及存储介质 | |
CN110782430A (zh) | 一种小目标的检测方法、装置、电子设备及存储介质 | |
CN111178495B (zh) | 用于检测图像中极小物体的轻量卷积神经网络 | |
US11580399B2 (en) | System and method for convolutional layer structure for neural networks | |
CN112598110B (zh) | 神经网络构建方法、装置、设备及介质 | |
Park et al. | Squantizer: Simultaneous learning for both sparse and low-precision neural networks | |
CN112070211B (zh) | 基于计算卸载机制的图像识别方法 | |
CN116229323A (zh) | 一种基于改进的深度残差网络的人体行为识别方法 | |
CN115620017A (zh) | 图像的特征提取方法、装置、设备及存储介质 | |
CN114677545A (zh) | 一种基于相似性剪枝和高效模块的轻量化图像分类方法 | |
CN114692745A (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 |