CN115661511A - 通道全局排序指导剪枝和量化联合的神经网络压缩方法 - Google Patents

通道全局排序指导剪枝和量化联合的神经网络压缩方法 Download PDF

Info

Publication number
CN115661511A
CN115661511A CN202211217914.4A CN202211217914A CN115661511A CN 115661511 A CN115661511 A CN 115661511A CN 202211217914 A CN202211217914 A CN 202211217914A CN 115661511 A CN115661511 A CN 115661511A
Authority
CN
China
Prior art keywords
neural network
layer
convolution
network model
image classification
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.)
Pending
Application number
CN202211217914.4A
Other languages
English (en)
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.)
Xidian University
Original Assignee
Xidian University
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 Xidian University filed Critical Xidian University
Priority to CN202211217914.4A priority Critical patent/CN115661511A/zh
Publication of CN115661511A publication Critical patent/CN115661511A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Image Analysis (AREA)

Abstract

本发明公开了一种通道全局排序指导剪枝和量化联合的神经网络压缩方法,包括下述步骤:获取训练样本集和测试样本集;构建图像分类卷积神经网络模型;对图像分类卷积神经网络模型进行迭代训练;计算训练好的图像分类卷积神经网络模型中所有通道的重要性得分并获取剪枝量化后的图像分类卷积神经网络模型;更新剪枝量化后的图像分类卷积神经网络模型;获取图像分类卷积神经网络的压缩结果。本发明在通道重要性的全局排序指导下对图像分类卷积神经网络模型联合进行剪枝和量化,解决了现有技术中存在的仅在同一层内比较通道重要性且剪枝和量化互不相关导致在指定压缩比下压缩后网络相比于未压缩网络的分类准确性的下降值大的问题。

Description

通道全局排序指导剪枝和量化联合的神经网络压缩方法
技术领域
本发明属于深度学习领域,涉及一种卷积神经网络压缩方法,具体涉及一种通道全局排序指导剪枝和量化联合的神经网络压缩方法,可用于在计算、存储资源受限的边缘设备上部署图像分类卷积神经网络并完成图像分类任务。
背景技术
卷积神经网络目前已经在视频、图像和语音等信息的处理过程中取得了巨大的成功,这得益于它越来越深和越来越宽的模型架构,但由此也产生了网络推理过程的计算复杂度高和内存空间占用大的问题,使得在计算、存储资源受限的边缘设备上部署卷积神经网络受到限制,尤其是对于移动平台、智能化嵌入式设备、现场可编程逻辑门阵列等需要实时推理完成信息处理的硬件,进而导致卷积神经网络在许多场景,如森林火灾救援、人脸识别等中的应用受到阻碍。
因此,既能降低计算复杂度、减少内存占用空间,又能保持卷积神经网络性能的卷积神经网络压缩方法被提出,具体包括剪枝、量化、低秩分解、知识蒸馏等,这些方法可以单独使用,也可以联合使用。其中,剪枝和量化的应用更为广泛。剪枝是删除卷积神经网络中卷积层的部分通道;量化是将权值参数或激活层输出值的浮点数形式转换为比特位表示的整数形式,并且是硬件部署前必不可少的操作。衡量图像分类卷积神经网络压缩方法的标准是在指定压缩比下压缩后网络相比于未压缩网络的分类准确性的下降值大小,下降值越小,则压缩后网络的性能越好。
Yu Po-Hsiang等人在2020年发表的论文“Joint Pruning&Quantization forExtremely Sparse Neural Networks”(arXiv preprint arXiv:2010.01892)中,公开了一种剪枝和量化联合的图像分类卷积神经网络模型压缩方法,该方法首先提出一个泰勒评分来评价二维卷积层的所有通道在同一层内的通道重要性,然后根据每个二维卷积层的每个通道的泰勒评分,对泰勒评分低于预设阈值的通道进行删除,在完成剪枝后,手动指定权重和激活层的量化位宽,通过微调得到压缩后的图像分类卷积神经网络模型压缩方法。但是,该方法仍然存在的不足之处是,二维卷积层的通道重要性的比较范围只是在同一层内,而且剪枝和量化本质上是互不相关的,并不能确保最大化各自的优势,因此导致在指定压缩比下压缩后网络相比于未压缩网络的分类准确性的下降值大。
发明内容
本发明的目的在于针对上述现有技术的不足,提出一种通道全局排序指导剪枝和量化联合的神经网络压缩方法,用于解决现有技术中存在的仅在同一二维卷积层内比较通道重要性且剪枝和量化本质上互不相关导致在指定压缩比下压缩后网络相比于未压缩网络的分类准确性的下降值大的问题。
为实现上述目的,本发明采取的技术方案包括如下步骤:
(1)获取训练样本集和测试样本集:
获取包括M个目标类别且每个类别包含N幅RGB图像的数据集X,并对每幅RGB图像中的图像类别进行标注,然后随机选取数据集X中每类别包含的N0幅图像,并将所选取的共MN0幅RGB图像及其标签组成训练样本集Xtrain,将剩余的M(N-N0)幅RGB图像及其标签组成测试样本集Xtest,其中M≥10,N≥6000,N0≥0.8N;
(2)构建图像分类卷积神经网络模型O并对其进行迭代训练:
构建包括顺次连接的二维卷积层、批归一化层、分段线性激活层、多个残差单元模块、自适应平均池化层、全连接层和softmax激活函数层的图像分类卷积神经网络模型O;第一残差单元模块包括顺次连接的卷积模块和分段线性激活层,且卷积模块的输入与分段线性激活层跳跃连接;第二残差单元模块包括并行排布的卷积模块和平均池化层,以及与卷积模块和平均池化层的输出端连接的分段线性激活层;卷积模块包括多个二维卷积层、多个批归一化层和一个分段线性激活层;其中二维卷积层和分段线性激活层的总数均为L,L≥55,每个二维卷积层包括I个通道,I≥16;
(3)对图像分类卷积神经网络模型进行迭代训练:
(3a)初始化迭代次数为e,最大迭代次数为E,E≥600,第e次迭代图像分类卷积神经网络模型的权值参数为θe,并令e=0;
(3b)将训练样本集Xtrain作为O的输入,对每个训练样本进行特征提取,得到MN0个特征图,并对每幅特征图中的目标进行分类,得到每个训练样本的分类结果
Figure BDA0003875494560000021
(3c)采用交叉熵损失函数
Figure BDA0003875494560000031
并通过每个训练样本的分类结果及其对应的标签计算O的损失值
Figure BDA0003875494560000032
再采用随机梯度下降法,通过
Figure BDA0003875494560000033
对权值参数θe的偏导值
Figure BDA0003875494560000034
对θe进行更新,得到本次迭代的图像分类卷积神经网络模型Oe
(3d)判断e≥E是否成立,若是,得到训练好的图像分类卷积神经网络模型
Figure BDA0003875494560000035
否则,令e=e+1,Oe=O,并执行步骤(3b);
(4)计算训练好的图像分类卷积神经网络模型中所有通道的重要性得分并对图像分类卷积神经网络模型进行剪枝和量化:
(4a)将从训练样本集Xtrain中随机选取的MN1个训练样本及其标签组成的秩生成样本集Xchoose作为
Figure BDA0003875494560000036
的输入,并使用钩子Hook函数提取
Figure BDA0003875494560000037
中输入第c幅图像
Figure BDA0003875494560000038
时每个二维卷积层的每个通道的特征图
Figure BDA0003875494560000039
再对
Figure BDA00038754945600000310
进行奇异值分解,得到输入
Figure BDA00038754945600000311
时每个通道的秩
Figure BDA00038754945600000312
然后根据
Figure BDA00038754945600000313
计算每个通道的平均秩
Figure BDA00038754945600000314
后保存,其中,N1≥0.01N0,1≤l≤L,1≤i≤I;
(4b)通过每个通道的平均秩
Figure BDA00038754945600000315
计算该通道的重要性得分
Figure BDA00038754945600000316
并对训练好的图像分类卷积神经网络模型
Figure BDA00038754945600000317
中重要性得分最低的ρ个通道进行删除,获得剪枝率为Ω的剪枝后的图像分类卷积神经网络模型,其中,al、bl分别表示
Figure BDA00038754945600000318
中可优化的伸缩变量、偏移变量;
(4c)通过每个二维卷积层的I个通道组成的稀疏掩模
Figure BDA00038754945600000319
计算该二维卷积层的稀疏性Sl=||Ψl||0,并根据Sl计算每个二维卷积层的权重量化位宽
Figure BDA00038754945600000320
和每个分段线性激活层量化位宽
Figure BDA00038754945600000321
Figure BDA00038754945600000322
Figure BDA00038754945600000323
其中,
Figure BDA00038754945600000324
表示通道被删除,
Figure BDA00038754945600000325
表示通道未删除,||·||0表示L1范数,
Figure BDA00038754945600000326
表示向上取整操作,
Figure BDA0003875494560000041
是第l个二维卷积层的权重量化位宽上界,
Figure BDA0003875494560000042
是第l个分段线性激活层所需的激活量化位宽上界,p表示惩罚因子;
(4d)根据每个二维卷积层的权重量化位宽
Figure BDA0003875494560000043
和每个分段线性激活层量化位宽
Figure BDA0003875494560000044
对剪枝后的图像分类卷积神经网络模型中每个二维卷积层的权重向量Wl进行量化,同时替换每个分段线性激活层的激活函数,得到量化后权重向量为Wl q、分段线性激活层的激活函数为
Figure BDA0003875494560000045
的剪枝量化后的图像分类卷积神经网络模型
Figure BDA0003875494560000046
(5)对剪枝量化后的图像分类卷积神经网络模型重新进行剪枝并更新权重、激活层量化位宽:
通过遗传进化算法对
Figure BDA0003875494560000047
中可优化的伸缩变量al、偏移变量bl进行优化,并通过al、bl的优化结果al *、bl *和每个通道的平均秩
Figure BDA0003875494560000048
重新计算每个通道的重要性得分,然后按重新计算的所有通道的重要性得分对剪枝量化后的图像分类卷积神经网络模型
Figure BDA0003875494560000049
重新进行剪枝并更新
Figure BDA00038754945600000410
的权重、激活层量化位宽,得到更新的剪枝量化后的图像分类卷积神经网络模型
Figure BDA00038754945600000411
(6)获取图像分类卷积神经网络的压缩结果:
对更新的剪枝量化后的图像分类卷积神经网络模型
Figure BDA00038754945600000412
的权值参数进行微调,获得压缩后的图像分类卷积神经网络模型
Figure BDA00038754945600000413
本发明与现有的技术相比具有以下优点:
本发明在对训练好的图像分类卷积神经网络模型计算所有二维卷积层的所有通道的重要性得分后对其进行全局排序,并在通道重要性的全局排序指导下对图像分类卷积神经网络模型联合进行剪枝和量化,解决了现有技术中存在的仅在同一二维卷积层内比较通道重要性且剪枝和量化本质上互不相关导致在指定压缩比下压缩后网络相比于未压缩网络的分类准确性的下降值大的问题。
附图说明
图1是本发明的实现流程图;
图2是本发明残差单元模块的结构图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步的详细描述。
参照附图1,本发明包括如下步骤。
步骤1)获取训练样本集和测试样本集:
获取包括M个目标类别且每个类别包含N幅RGB图像的数据集X,并对每幅RGB图像中的图像类别进行标注,然后随机选取数据集X中每类别包含的N0幅图像,并将所选取的共MN0幅RGB图像及其标签组成训练样本集Xtrain,将剩余的M(N-N0)幅RGB图像及其标签组成测试样本集Xtest,本实例中,M=10,N=6000,
Figure BDA0003875494560000051
步骤2)构建图像分类卷积神经网络模型O:
构建包括顺次连接的二维卷积层、批归一化层、分段线性激活层、多个残差单元模块、自适应平均池化层、全连接层和softmax激活函数层的图像分类卷积神经网络模型O;第一残差单元模块包括顺次连接的卷积模块和分段线性激活层,且卷积模块的输入与分段线性激活层跳跃连接;第二残差单元模块包括并行排布的卷积模块和平均池化层,以及与卷积模块和平均池化层的输出端连接的分段线性激活层;卷积模块包括多个二维卷积层、多个批归一化层和一个分段线性激活层;其中二维卷积层和分段线性激活层的总数均为L,每个二维卷积层包括I个通道,本实例中,L=55;
多个残差单元模块的具体排列方式为:第一残差单元模块→第一残差单元模块→第一残差单元模块→第一残差单元模块→第一残差单元模块→第一残差单元模块→第一残差单元模块→第一残差单元模块→第一残差单元模块→第二残差单元模块→第一残差单元模块→第一残差单元模块→第一残差单元模块→第一残差单元模块→第一残差单元模块→第一残差单元模块→第一残差单元模块→第一残差单元模块→第二残差单元模块→第一残差单元模块→第一残差单元模块→第一残差单元模块→第一残差单元模块→第一残差单元模块→第一残差单元模块→第一残差单元模块→第一残差单元模块;
其中,本实例第一残差单元模块的具体结构如图2(a)所示;
第一残差单元模块的具体结构为:卷积模块→分段线性激活层,卷积模块的输入与分段线性激活层跳跃连接;
其中,本实例第二残差单元模块的具体结构如图2(b)所示;
第二残差单元模块的具体结构为:并行排布的卷积模块和平均池化层→分段线性激活层;
卷积模块的具体结构为:二维卷积层→批归一化层→分段线性激活层→卷积层→批归一化层;
所述的O的每层参数设置为:第一卷积层的卷积核大小为3×3,通道数I=16,步长为1;在第一个到第九个第一残差单元模块中的卷积模块中,每个二维卷积层的卷积核大小为3×3,通道数I=16,步长为1;第十个第二残差单元模块中的卷积模块中,第一个二维卷积层的卷积核大小为3×3,通道数I=32,步长为2,第二个二维卷积层的卷积核大小为3×3,通道数I=32,步长为1,平均池化层的核大小为1×1,步长为2;在第十一个到第十八个第一残差单元模块中,每个二维卷积层的卷积核大小为3×3,通道数I=32,步长为1;第十九个第二残差单元模块中的卷积模块中,第一个二维卷积层的卷积核大小为3×3,通道数I=64,步长为2,第二个二维卷积层的卷积核大小为3×3,通道数I=64,步长为1,平均池化层的核大小为1×1,步长为2;在第二十个到第二十七个第一残差单元模块中,每个二维卷积层的卷积核大小为3×3,通道数I=64,步长为1;每个批归一化层的通道数与它的上一个二维卷积层通道数保持一致;全连接层的通道数为10;自适应平均池化层的核大小为1×1,步长为1;所有分段线性激活层由ReLU函数实现;最后一层激活层由softmax函数实现;
步骤3)对图像分类卷积神经网络模型进行迭代训练:
步骤3a)初始化迭代次数为e,最大迭代次数为E,本实例中,E=600,第e次迭代图像分类卷积神经网络模型的权值参数为θe,并令e=0;
步骤3b)将训练样本集Xtrain作为O的输入,对每个训练样本进行特征提取,得到MN0个特征图,并对每幅特征图中的目标进行分类,得到每个训练样本的分类结果
Figure BDA0003875494560000061
步骤3c)采用交叉熵损失函数
Figure BDA0003875494560000062
并通过每个训练样本的分类结果及其对应的标签计算O的损失值
Figure BDA0003875494560000063
再采用随机梯度下降法,通过
Figure BDA0003875494560000064
对权值参数θe的偏导值
Figure BDA0003875494560000065
对θe进行更新,得到本次迭代的图像分类卷积神经网络模型Oe,计算O的损失值
Figure BDA0003875494560000066
以及对θe进行更新,计算、更新方法分别为:
Figure BDA0003875494560000067
Figure BDA0003875494560000071
其中,MN0是输入训练样本的数量,
Figure BDA0003875494560000072
表示输入第c幅图像
Figure BDA0003875494560000073
时网络输出的分类结果,Pc表示第c幅输入图像的标签,:=是将公式右边的值赋值给左边的操作,γ表示学习率,本实例中,γ=0.001;
步骤3d)判断e≥E是否成立,若是,得到训练好的图像分类卷积神经网络模型
Figure BDA0003875494560000074
否则,令e=e+1,Oe=O,并执行步骤3b);
步骤4)计算训练好的图像分类卷积神经网络模型中所有通道的重要性得分并获取剪枝量化后的图像分类卷积神经网络模型:
步骤4a)将从训练样本集Xtrain中随机选取的MN1个训练样本及其标签组成的秩生成样本集Xchoose作为
Figure BDA0003875494560000075
的输入,本实例中,N1=64,并使用钩子Hook函数提取
Figure BDA0003875494560000076
中输入第c幅图像
Figure BDA0003875494560000077
时每个二维卷积层的每个通道的特征图
Figure BDA0003875494560000078
再对
Figure BDA0003875494560000079
进行奇异值分解,得到输入
Figure BDA00038754945600000710
时每个通道的秩
Figure BDA00038754945600000711
然后根据
Figure BDA00038754945600000712
计算每个通道的平均秩
Figure BDA00038754945600000713
后保存,其中,1≤l≤L,1≤i≤I,每个通道的秩
Figure BDA00038754945600000714
以及每个通道的平均秩
Figure BDA00038754945600000715
其计算公式分别为:
Figure BDA00038754945600000716
Figure BDA00038754945600000717
其中,σj,uj,vj分别表示
Figure BDA00038754945600000718
的左奇异向量,前j个奇异值和右奇异向量,
Figure BDA00038754945600000719
是输入第c幅图像
Figure BDA00038754945600000720
时每个通道的秩;
步骤4b)通过每个通道的平均秩
Figure BDA00038754945600000721
计算该通道的重要性得分
Figure BDA00038754945600000722
并对训练好的图像分类卷积神经网络模型
Figure BDA00038754945600000723
中重要性得分最低的ρ个通道进行删除,获得剪枝率为Ω的剪枝后的图像分类卷积神经网络模型,其中,al、bl分别表示
Figure BDA0003875494560000081
中可优化的伸缩变量、偏移变量,实例中,Ω=30%;
步骤4c)通过每个二维卷积层的I个通道组成的稀疏掩模
Figure BDA0003875494560000082
计算该二维卷积层的稀疏性Sl=||Ψl||0,并根据Sl计算每个二维卷积层的权重量化位宽
Figure BDA0003875494560000083
和每个分段线性激活层量化位宽
Figure BDA0003875494560000084
Figure BDA0003875494560000085
Figure BDA0003875494560000086
其中,其中,
Figure BDA0003875494560000087
表示通道被删除,
Figure BDA0003875494560000088
表示通道未删除,||·||0表示L1范数,
Figure BDA0003875494560000089
表示向上取整操作,
Figure BDA00038754945600000810
是第l个二维卷积层的权重量化位宽上界,
Figure BDA00038754945600000811
是第l个分段线性激活层所需的激活量化位宽上界,p表示惩罚因子,本实例中,
Figure BDA00038754945600000812
Figure BDA00038754945600000813
步骤4d)根据每个二维卷积层的权重量化位宽
Figure BDA00038754945600000814
和每个分段线性激活层量化位宽
Figure BDA00038754945600000815
对剪枝后的图像分类卷积神经网络模型中每个二维卷积层的权重向量Wl进行量化,同时替换每个分段线性激活层的激活函数,得到量化后权重向量为Wl q、分段线性激活层的激活函数为
Figure BDA00038754945600000816
的剪枝量化后的图像分类卷积神经网络模型
Figure BDA00038754945600000817
量化、替换公式分别为:
Figure BDA00038754945600000818
Figure BDA00038754945600000819
其中,Wl q表示第l个二维卷积层的量化后权重向量,tanh(·)表示双曲正切函数,|·|表示取绝对值操作,max(·)表示取最大值操作,round(·)表示将浮点数映射为整数的操作,yl表示输入到第l个分段线性激活层的特征向量,
Figure BDA0003875494560000091
表示用于对输入的特征向量进行量化的函数,clamp(·,d1,d2)用于将输入数据映射到[d1,d2]区间;
步骤5)更新剪枝量化后的图像分类卷积神经网络模型:
通过遗传进化算法对
Figure BDA0003875494560000092
中可优化的伸缩变量al、偏移变量bl进行优化,并通过al、bl的优化结果al *、bl *和每个通道的平均秩
Figure BDA0003875494560000093
重新计算每个通道的重要性得分,然后按重新计算的所有通道的重要性得分对剪枝量化后的图像分类卷积神经网络模型
Figure BDA0003875494560000094
重新进行剪枝并更新
Figure BDA0003875494560000095
的权重、激活层量化位宽,得到更新的剪枝量化后的图像分类卷积神经网络模型
Figure BDA0003875494560000096
遗传进化算法对al、bl进行优化的实现步骤为:
步骤5a)初始化al=1,bl=0,计算
Figure BDA0003875494560000097
中每个二维卷积层中I个通道的平均秩的标准差stdl,将种群Pool初始化为大小为P的队列,包含P种随机产生的样本
Figure BDA0003875494560000098
Figure BDA0003875494560000099
初始化突变率为μ,随机步长为λ,梯度迭代更新步数为τ,迭代次数为k,最大迭代次数为K,最高准确性为ACCmax,P≥64,0<μ≤1,50≤τ≤300,K≥330,并令λ=1,k=0,ACCmax=0,本实例中,P=64,μ=0.1,τ=200,K=336;
步骤5b)通过从Pool中抽样的S种样本和所有通道的平均秩所计算的S组所有通道的重要性得分对
Figure BDA00038754945600000910
进行剪枝后进行量化,获得S个剪枝量化后的图像分类卷积神经网络模型,本实例中,S=16;
步骤5c)按照
Figure BDA00038754945600000911
中的权值参数初始化S个剪枝量化后的图像分类卷积神经网络模型的权值参数,将测试样本集Xtest分别输入S个剪枝量化后的图像分类卷积神经网络模型,获得图像分类准确性,将分类准确性最高的网络模型对应的样本作为当前最优的al′、bl′;
步骤5d)随机抽取μ×L层二维卷积层,对抽取到的层的对应的al′、bl′进行计算,得到更新后的al″、bl″:
Figure BDA00038754945600000912
Figure BDA0003875494560000101
其中,
Figure BDA0003875494560000102
步骤5e)根据更新后的al″、bl″和所有通道的平均秩所计算的每个通道的重要性得分
Figure BDA0003875494560000103
进行剪枝后进行量化,获得新的剪枝量化后的图像分类卷积神经网络模型,将训练样本集Xtrain输入新的剪枝量化后的图像分类卷积神经网络模型,使用交叉熵损失函数和随机梯度下降法将梯度迭代更新τ步,获得梯度迭代更新好的剪枝量化后的图像分类卷积神经网络模型;
步骤5f)将测试样本集Xtest输入梯度迭代更新好的剪枝量化后的图像分类卷积神经网络模型,获得图像分类准确性ACCk,如果该准确性大于ACCmax,则ACCmax=ACCk,并将本次更新后的al″、bl″加入Pool,否则,执行步骤5g);
步骤5g)判断k≥K是否成立,若是,得到ACCmax对应的最优的al *、bl *,否则,令k=k+1,并执行步骤5b);
步骤6)获取图像分类卷积神经网络的压缩结果:
对更新的剪枝量化后的图像分类卷积神经网络模型
Figure BDA0003875494560000104
的权值参数进行微调,获得压缩后的图像分类卷积神经网络模型
Figure BDA0003875494560000105
微调过程为:
步骤6a)初始化迭代次数为t,最大迭代次数为T,T≥1200,第t次迭代剪枝量化后图像分类卷积神经网络模型
Figure BDA0003875494560000106
的权值参数为
Figure BDA0003875494560000107
并令t=0,对
Figure BDA0003875494560000108
关闭权重量化操作,对所有分段线性激活层用ReLU函数替换
Figure BDA0003875494560000109
函数;
步骤6b)将训练样本集Xtrain作为
Figure BDA00038754945600001010
的输入,对
Figure BDA00038754945600001011
进行更新,得到本次迭代的图像分类卷积神经网络模型
Figure BDA00038754945600001012
步骤6c)判断
Figure BDA00038754945600001013
是否成立,若是,对
Figure BDA00038754945600001014
中所有分段线性激活层使用
Figure BDA00038754945600001015
函数并执行步骤6d),否则,令t=t+1,
Figure BDA00038754945600001016
并执行步骤6b);
步骤6d)判断
Figure BDA0003875494560000111
是否成立,若是,对
Figure BDA0003875494560000112
恢复权重量化操作并执行步骤6e),否则,令t=t+1,
Figure BDA0003875494560000113
并执行步骤6b);
步骤6e)判断t≥T是否成立,若是,获得压缩后的图像分类卷积神经网络模型
Figure BDA0003875494560000114
否则,令t=t+1,
Figure BDA0003875494560000115
并执行步骤6b);
下面结合仿真实验对本发明的技术效果做进一步的说明:
1.实验条件:
仿真实验的硬件平台为:NVIDIA 2080Ti GPU,软件平台为:操作系统为Linux,Python版本为3.7,Pytorch版本为1.7.1。
仿真实验采用CIFAR-10图像分类数据集,图片数据类型为RGB,每幅图片的大小为32像素×32像素,该数据集包含10种不同类别的带标签的图片,每个类别包含6000副图片;参考官方提供的数据集划分方式,从数据集包含的每个类别中随机选择5000幅图片及其标签作为训练样本集,其余每个类别中的1000幅图片及其标签作为测试样本集。
2.仿真内容与结果分析:
对本发明和现有的受层内通道评分指导的剪枝和量化联合的方法的分类准确性、压缩倍数分别进行对比仿真,其结果如表1所示。
现有的剪枝和量化联合的神经网络模型压缩方法是指:YuPo-Hsiang等人在其发表的论文“Joint Pruning&Quantization for Extremely Sparse Neural Networks”(arXiv preprint arXiv:2010.01892)中,提出的剪枝和量化联合的图像分类卷积神经网络模型压缩方法。
为了评价本发明的效果,利用下述的评价指标公式,分别计算本发明仿真实验中三种方法的分类准确性ACC、分类准确性ACC下降值↓ΔACC、压缩倍数Comp:
Figure BDA0003875494560000116
↓ΔACC=ACC未压缩网络-ACC压缩后网络
Figure BDA0003875494560000117
比特运算操作次数BOPs的计算方法为:
Figure BDA0003875494560000121
其中,Ωl-1表示第l-1层二维卷积层的剪枝率,Ωl表示第l层二维卷积层的剪枝率,Fw,l·Fh,l分别是第l层二维卷积层所有通道的特征图的大小,δw,l·δh,l分别是第l层二维卷积层对应的卷积核的大小。
表1.本发明仿真的ACC未压缩网络、ACC压缩后网络、↓ΔACC、Comp对比表
方法 ACC<sub>未压缩网络</sub> ACC<sub>压缩后网络</sub> ↓ΔACC Comp
现有技术 94.03% 93.28% 0.75% 54.01倍
本发明 94.03% 93.93% 0.10% 54.96倍
综合表1可以看出,本发明与现有技术相比,在略高于现有技术的压缩倍数下,↓ΔACC为0.10%,而现有技术的↓ΔACC为0.75%,证明了本方法压缩后的图像分类卷积神经网络模型相比于未压缩的网络模型有较小的分类准确性下降值。
以上仿真实验表明:本发明在通道重要性的全局排序指导下对图像分类卷积神经网络模型联合进行剪枝和量化,解决了现有技术中存在的仅在同一二维卷积层内比较通道重要性且剪枝和量化互不相关导致在指定压缩比下压缩后网络相比于未压缩网络的分类准确性的下降值大的问题。

Claims (7)

1.一种通道全局排序指导剪枝和量化联合的卷积神经网络压缩方法,其特征在于,包括如下步骤:
(1)获取训练样本集和测试样本集:
获取包括M个目标类别且每个类别包含N幅RGB图像的数据集X,并对每幅RGB图像中的图像类别进行标注,然后随机选取数据集X中每类别包含的N0幅图像,并将所选取的共MN0幅RGB图像及其标签组成训练样本集Xtrain,将剩余的M(N-N0)幅RGB图像及其标签组成测试样本集Xtest,其中M≥10,N≥6000,N0≥0.8N;
(2)构建图像分类卷积神经网络模型O并对其进行迭代训练:
构建包括顺次连接的二维卷积层、批归一化层、分段线性激活层、多个残差单元模块、自适应平均池化层、全连接层和softmax激活函数层的图像分类卷积神经网络模型O;第一残差单元模块包括顺次连接的卷积模块和分段线性激活层,且卷积模块的输入与分段线性激活层跳跃连接;第二残差单元模块包括并行排布的卷积模块和平均池化层,以及与卷积模块和平均池化层的输出端连接的分段线性激活层;卷积模块包括多个二维卷积层、多个批归一化层和一个分段线性激活层;其中二维卷积层和分段线性激活层的总数均为L,L≥55,每个二维卷积层包括I个通道,I≥16;
(3)对图像分类卷积神经网络模型进行迭代训练:
(3a)初始化迭代次数为e,最大迭代次数为E,E≥600,第e次迭代图像分类卷积神经网络模型的权值参数为θe,并令e=0;
(3b)将训练样本集Xtrain作为O的输入,对每个训练样本进行特征提取,得到MN0个特征图,并对每幅特征图中的目标进行分类,得到每个训练样本的分类结果
Figure FDA0003875494550000011
(3c)采用交叉熵损失函数
Figure FDA0003875494550000021
并通过每个训练样本的分类结果及其对应的标签计算O的损失值
Figure FDA0003875494550000022
再采用随机梯度下降法,通过
Figure FDA0003875494550000023
对权值参数θe的偏导值
Figure FDA0003875494550000024
对θe进行更新,得到本次迭代的图像分类卷积神经网络模型Oe
(3d)判断e≥E是否成立,若是,得到训练好的图像分类卷积神经网络模型
Figure FDA0003875494550000025
否则,令e=e+1,Oe=O,并执行步骤(3b);
(4)计算训练好的图像分类卷积神经网络模型中所有通道的重要性得分并对图像分类卷积神经网络模型进行剪枝和量化:
(4a)将从训练样本集Xtrain中随机选取的MN1个训练样本及其标签组成的秩生成样本集Xchoose作为
Figure FDA0003875494550000026
的输入,并使用钩子Hook函数提取
Figure FDA0003875494550000027
中输入第c幅图像
Figure FDA0003875494550000028
时每个二维卷积层的每个通道的特征图
Figure FDA0003875494550000029
再对
Figure FDA00038754945500000210
进行奇异值分解,得到输入
Figure FDA00038754945500000211
时每个通道的秩
Figure FDA00038754945500000224
然后根据
Figure FDA00038754945500000225
计算每个通道的平均秩
Figure FDA00038754945500000212
后保存,其中,N1≥0.01N0,1≤l≤L,1≤i≤I;
(4b)通过每个通道的平均秩
Figure FDA00038754945500000226
计算该通道的重要性得分
Figure FDA00038754945500000213
并对训练好的图像分类卷积神经网络模型
Figure FDA00038754945500000214
中重要性得分最低的ρ个通道进行删除,获得剪枝率为Ω的剪枝后的图像分类卷积神经网络模型,其中,al、bl分别表示
Figure FDA00038754945500000215
中可优化的伸缩变量、偏移变量;
(4c)通过每个二维卷积层的I个通道组成的稀疏掩模
Figure FDA00038754945500000216
计算该二维卷积层的稀疏性Sl=||Ψl||0,并根据Sl计算每个二维卷积层的权重量化位宽
Figure FDA00038754945500000217
和每个分段线性激活层量化位宽
Figure FDA00038754945500000218
Figure FDA00038754945500000219
Figure FDA00038754945500000220
其中,
Figure FDA00038754945500000221
表示通道被删除,
Figure FDA00038754945500000222
表示通道未删除,||·||0表示L1范数,
Figure FDA00038754945500000223
表示向上取整操作,
Figure FDA0003875494550000031
是第l个二维卷积层的权重量化位宽上界,
Figure FDA0003875494550000032
是第l个分段线性激活层所需的激活量化位宽上界,p表示惩罚因子;
(4d)根据每个二维卷积层的权重量化位宽
Figure FDA0003875494550000033
和每个分段线性激活层量化位宽
Figure FDA0003875494550000034
对剪枝后的图像分类卷积神经网络模型中每个二维卷积层的权重向量Wl进行量化,同时替换每个分段线性激活层的激活函数,得到量化后权重向量为
Figure FDA0003875494550000035
分段线性激活层的激活函数为
Figure FDA0003875494550000036
的剪枝量化后的图像分类卷积神经网络模型
Figure FDA0003875494550000037
(5)对剪枝量化后的图像分类卷积神经网络模型重新进行剪枝并更新权重、激活层量化位宽:
通过遗传进化算法对
Figure FDA0003875494550000038
中可优化的伸缩变量al、偏移变量bl进行优化,并通过al、bl的优化结果al *、bl *和每个通道的平均秩
Figure FDA00038754945500000314
重新计算每个通道的重要性得分,然后按重新计算的所有通道的重要性得分对剪枝量化后的图像分类卷积神经网络模型
Figure FDA0003875494550000039
重新进行剪枝并更新
Figure FDA00038754945500000310
的权重、激活层量化位宽,得到更新的剪枝量化后的图像分类卷积神经网络模型
Figure FDA00038754945500000311
(6)获取图像分类卷积神经网络的压缩结果:
对更新的剪枝量化后的图像分类卷积神经网络模型
Figure FDA00038754945500000312
的权值参数进行微调,获得压缩后的图像分类卷积神经网络模型
Figure FDA00038754945500000313
2.根据权利要求1所述的一种通道全局排序指导剪枝和量化联合的卷积神经网络压缩方法,其特征在于,步骤(2)中所述的图像分类卷积神经网络模型O,其所包含的第一残差单元模块、第二残差单元模块的个数分别为25、2;卷积模块所包含的二维卷积层和批归一化层的个数均为2;其中:
多个残差单元模块的具体排列方式为:第一残差单元模块→第一残差单元模块→第一残差单元模块→第一残差单元模块→第一残差单元模块→第一残差单元模块→第一残差单元模块→第一残差单元模块→第一残差单元模块→第二残差单元模块→第一残差单元模块→第一残差单元模块→第一残差单元模块→第一残差单元模块→第一残差单元模块→第一残差单元模块→第一残差单元模块→第一残差单元模块→第二残差单元模块→第一残差单元模块→第一残差单元模块→第一残差单元模块→第一残差单元模块→第一残差单元模块→第一残差单元模块→第一残差单元模块→第一残差单元模块;
第一残差单元模块的具体结构为:卷积模块→分段线性激活层,卷积模块的输入与分段线性激活层跳跃连接;
第二残差单元模块的具体结构为:并行排布的卷积模块和平均池化层→分段线性激活层;
卷积模块的具体结构为:二维卷积层→批归一化层→分段线性激活层→卷积层→批归一化层;
所述的O的每层参数设置为:第一卷积层的卷积核大小为3×3,通道数为16,步长为1;在第一个到第九个第一残差单元模块中的卷积模块中,每个二维卷积层的卷积核大小为3×3,通道数为16,步长为1;第十个第二残差单元模块中的卷积模块中,第一个二维卷积层的卷积核大小为3×3,通道数为32,步长为2,第二个二维卷积层的卷积核大小为3×3,通道数为32,步长为1,平均池化层的核大小为1×1,步长为2;在第十一个到第十八个第一残差单元模块中,每个二维卷积层的卷积核大小为3×3,通道数为32,步长为1;第十九个第二残差单元模块中的卷积模块中,第一个二维卷积层的卷积核大小为3×3,通道数为64,步长为2,第二个二维卷积层的卷积核大小为3×3,通道数为64,步长为1,平均池化层的核大小为1×1,步长为2;在第二十个到第二十七个第一残差单元模块中,每个二维卷积层的卷积核大小为3×3,通道数为64,步长为1;每个批归一化层的通道数与它的上一个二维卷积层通道数保持一致;全连接层的通道数为10;自适应平均池化层的核大小为1×1,步长为1;所有分段线性激活层由ReLU函数实现;最后一层激活层由softmax函数实现。
3.根据权利要求1所述的一种通道全局排序指导剪枝和量化联合的卷积神经网络压缩方法,其特征在于,步骤(3c)中所述的计算O的损失值
Figure FDA0003875494550000041
以及对θe进行更新,计算、更新方法分别为:
Figure FDA0003875494550000051
Figure FDA0003875494550000052
其中,MN0是输入训练样本的数量,
Figure FDA0003875494550000053
表示输入第c幅图像
Figure FDA0003875494550000054
时网络输出的分类结果,Pc表示第c幅输入图像的标签,:=是将公式右边的值赋值给左边的操作,γ表示学习率,0.0001≤γ≤0.1。
4.根据权利要求1所述的一种通道全局排序指导剪枝和量化联合的卷积神经网络压缩方法,其特征在于,步骤(4a)中所述的每个通道的秩
Figure FDA00038754945500000513
以及每个通道的平均秩
Figure FDA0003875494550000055
其计算公式分别为:
Figure FDA0003875494550000056
Figure FDA0003875494550000057
其中,σj,uj,vj分别表示
Figure FDA0003875494550000058
的左奇异向量,前j个奇异值和右奇异向量,
Figure FDA00038754945500000514
是输入第c幅图像
Figure FDA0003875494550000059
时每个通道的秩。
5.根据权利要求1所述的一种通道全局排序指导剪枝和量化联合的卷积神经网络压缩方法,其特征在于,步骤(4d)中所述的根据每个二维卷积层的权重量化位宽
Figure FDA00038754945500000510
和每个分段线性激活层量化位宽
Figure FDA00038754945500000511
对剪枝后的图像分类卷积神经网络模型中每个二维卷积层的权重向量Wl进行量化,以及替换每个分段线性激活层的激活函数,量化、替换公式分别为:
Figure FDA00038754945500000512
Figure FDA0003875494550000061
其中,Wl q表示第l个二维卷积层的量化后权重向量,tanh(·)表示双曲正切函数,|·|表示取绝对值操作,max(·)表示取最大值操作,round(·)表示将浮点数映射为整数的操作,yl表示输入到第l个分段线性激活层的特征向量,
Figure FDA0003875494550000067
表示用于对输入的特征向量进行量化的函数,clamp(·,d1,d2)用于将输入数据映射到[d1,d2]区间。
6.根据权利要求1所述的一种通道全局排序指导剪枝和量化联合的卷积神经网络压缩方法,其特征在于,步骤(5)中所述的遗传进化算法对al、bl进行优化,实现步骤为:
(5a)初始化al=1,bl=0,计算
Figure FDA0003875494550000062
中每个二维卷积层中I个通道的平均秩的标准差stdl,将种群Pool初始化为大小为P的队列,包含P种随机产生的样本
Figure FDA0003875494550000063
Figure FDA0003875494550000064
初始化突变率为μ,随机步长为λ,梯度迭代更新步数为τ,迭代次数为k,最大迭代次数为K,最高准确性为ACCmax,P≥64,0<μ≤1,50≤τ≤300,K≥330,并令λ=1,k=0,ACCmax=0;
(5b)通过从Pool中抽样的S种样本和所有通道的平均秩所计算的S组所有通道的重要性得分对
Figure FDA0003875494550000065
进行剪枝后进行量化,获得S个剪枝量化后的图像分类卷积神经网络模型,16≤S≤64;
(5c)按照
Figure FDA0003875494550000066
中的权值参数初始化S个剪枝量化后的图像分类卷积神经网络模型的权值参数,将测试样本集Xtest分别输入S个剪枝量化后的图像分类卷积神经网络模型,获得图像分类准确性,将分类准确性最高的网络模型对应的样本作为当前最优的al′、bl′;
(5d)随机抽取μ×L层二维卷积层,对抽取到的层的对应的al′、bl′进行计算,得到更新后的al″、bl″:
Figure FDA0003875494550000071
Figure FDA0003875494550000072
其中,
Figure FDA0003875494550000073
(5e)根据更新后的al″、bl″和所有通道的平均秩所计算的每个通道的重要性得分
Figure FDA0003875494550000074
进行剪枝后进行量化,获得新的剪枝量化后的图像分类卷积神经网络模型,将训练样本集Xtrain输入新的剪枝量化后的图像分类卷积神经网络模型,使用交叉熵损失函数和随机梯度下降法将梯度迭代更新τ步,获得梯度迭代更新好的剪枝量化后的图像分类卷积神经网络模型;
(5f)将测试样本集Xtest输入梯度迭代更新好的剪枝量化后的图像分类卷积神经网络模型,获得图像分类准确性ACCk,如果该准确性大于ACCmax,则ACCmax=ACCk,并将本次更新后的al″、bl″加入Pool,否则,执行步骤(5g);
(5g)判断k≥K是否成立,若是,得到ACCmax对应的最优的al *、bl *,否则,令k=k+1,并执行步骤(5b)。
7.根据权利要求1所述的一种通道全局排序指导剪枝和量化联合的卷积神经网络压缩方法,其特征在于,步骤(6)中所述的对更新的剪枝量化后的图像分类卷积神经网络模型
Figure FDA0003875494550000075
的权值参数进行微调,实现步骤为:
(6a)初始化迭代次数为t,最大迭代次数为T,T≥1200,第t次迭代剪枝量化后图像分类卷积神经网络模型
Figure FDA0003875494550000076
的权值参数为
Figure FDA0003875494550000077
并令t=0,对
Figure FDA0003875494550000078
关闭权重量化操作,对所有分段线性激活层用ReLU函数替换
Figure FDA0003875494550000079
函数;
(6b)将训练样本集Xtrain作为
Figure FDA00038754945500000710
的输入,对
Figure FDA00038754945500000711
进行更新,得到本次迭代的图像分类卷积神经网络模型
Figure FDA00038754945500000712
(6c)判断
Figure FDA0003875494550000081
是否成立,若是,对
Figure FDA0003875494550000082
中所有分段线性激活层使用
Figure FDA0003875494550000083
函数并执行步骤(6d),否则,令t=t+1,
Figure FDA0003875494550000084
并执行步骤(6b);
(6d)判断
Figure FDA0003875494550000085
是否成立,若是,对
Figure FDA0003875494550000086
恢复权重量化操作并执行步骤(6e),否则,令t=t+1,
Figure FDA0003875494550000087
并执行步骤(6b);
(6e)判断t≥T是否成立,若是,获得压缩后的图像分类卷积神经网络模型
Figure FDA0003875494550000088
否则,令t=t+1,
Figure FDA0003875494550000089
并执行步骤(6b)。
CN202211217914.4A 2022-09-30 2022-09-30 通道全局排序指导剪枝和量化联合的神经网络压缩方法 Pending CN115661511A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211217914.4A CN115661511A (zh) 2022-09-30 2022-09-30 通道全局排序指导剪枝和量化联合的神经网络压缩方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211217914.4A CN115661511A (zh) 2022-09-30 2022-09-30 通道全局排序指导剪枝和量化联合的神经网络压缩方法

Publications (1)

Publication Number Publication Date
CN115661511A true CN115661511A (zh) 2023-01-31

Family

ID=84986325

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211217914.4A Pending CN115661511A (zh) 2022-09-30 2022-09-30 通道全局排序指导剪枝和量化联合的神经网络压缩方法

Country Status (1)

Country Link
CN (1) CN115661511A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116188878A (zh) * 2023-04-25 2023-05-30 之江实验室 基于神经网络结构微调的图像分类方法、装置和存储介质
CN117649568A (zh) * 2024-01-30 2024-03-05 之江实验室 一种用于图像分类卷积神经网络的网络压缩方法及装置
CN118036755A (zh) * 2024-04-12 2024-05-14 清华大学 大语言模型的量化方法及推理方法、装置、设备和介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116188878A (zh) * 2023-04-25 2023-05-30 之江实验室 基于神经网络结构微调的图像分类方法、装置和存储介质
CN117649568A (zh) * 2024-01-30 2024-03-05 之江实验室 一种用于图像分类卷积神经网络的网络压缩方法及装置
CN117649568B (zh) * 2024-01-30 2024-05-03 之江实验室 一种用于图像分类卷积神经网络的网络压缩方法及装置
CN118036755A (zh) * 2024-04-12 2024-05-14 清华大学 大语言模型的量化方法及推理方法、装置、设备和介质

Similar Documents

Publication Publication Date Title
CN115661511A (zh) 通道全局排序指导剪枝和量化联合的神经网络压缩方法
CN110334765B (zh) 基于注意力机制多尺度深度学习的遥感影像分类方法
CN108764471B (zh) 基于特征冗余分析的神经网络跨层剪枝方法
CN109840560B (zh) 基于胶囊网络中融入聚类的图像分类方法
CN111489364B (zh) 基于轻量级全卷积神经网络的医学图像分割方法
CN110490227B (zh) 一种基于特征转换的少样本图像分类方法
CN110858269B (zh) 事实描述文本预测方法及装置
CN111723915B (zh) 一种基于深度卷积神经网络的目标检测方法
CN112668630B (zh) 一种基于模型剪枝的轻量化图像分类方法、系统及设备
Paupamah et al. Quantisation and pruning for neural network compression and regularisation
CN112183742B (zh) 基于渐进式量化和Hessian信息的神经网络混合量化方法
CN111027630B (zh) 一种基于卷积神经网络的图像分类方法
Crowley et al. Pruning neural networks: is it time to nip it in the bud?
CN112101364B (zh) 基于参数重要性增量学习的语义分割方法
CN113420651B (zh) 深度卷积神经网络的轻量化方法、系统及目标检测方法
CN112598062A (zh) 一种图像识别方法和装置
CN117056785A (zh) 基于自适应模型扰动的联邦学习分类模型训练方法
Chang et al. Semi-supervised learning using generative adversarial networks
CN114444686A (zh) 一种卷积神经网络的模型参数量化方法、装置及相关装置
Wang et al. Fast lossless neural compression with integer-only discrete flows
CN113361589A (zh) 基于迁移学习与知识蒸馏的珍稀濒危植物叶片识别方法
CN112115837A (zh) 一种基于YoloV3和双阈值模型压缩的目标检测方法
CN116957010A (zh) 一种用于卷积神经网络的模型推理方法和装置
CN115063374A (zh) 模型训练、人脸图像质量评分方法、电子设备及存储介质
CN113642614A (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