一种面向遥感应用的卷积神经网络剪枝和量化同步压缩方法

文档序号:8725 发布日期:2021-09-17 浏览:31次 英文

一种面向遥感应用的卷积神经网络剪枝和量化同步压缩方法

技术领域

本发明涉及人工智能

技术领域

,尤其涉及一种面向遥感应用的卷积神经网络压缩方法。

背景技术

随着各种卷积神经网络模型在遥感数据处理领域的广泛应用,将卷积神经网络模型移植到机载、星载、车载等移动平台上的需求也越来越强烈。在这些资源约束严格的平台上应用时,由于可选的专用器件资源有限,且需通过多模冗余等方式保障可靠性等原因,能够用于实现卷积神经网络模型的资源十分有限。高性能的卷积神经网络往往具有海量的参数数量和浮点计算次数,难以在这些资源有限的平台上进行应用,需要进行剪枝、量化等一系列的参数压缩工作。然而当前的卷积神经网络剪枝和量化压缩方法还存在压缩后模型精度损失大的问题。剪枝和量化过程均会影响模型精度,两步压缩后精度损失会叠加。先剪枝再量化会导致模型精度损失大。

发明内容

有鉴于此,本发明的目的是提供一种面向遥感应用的卷积神经网络压缩方法,提高了模型参数压缩比例的同时,保证了压缩后模型的精度。

一种面向遥感应用的卷积神经网络剪枝和量化同步压缩方法,包括如下步骤:

S1、采用包含遥感图像的数据对卷积神经网络进行参数训练,得到模型M2;

S2、对所述模型M2进行剪枝和量化参数的编码,具体如下:

对卷积神经网络中的各层的参数,定义其编码为:

Ok=(p1,p2,...,pn,q1,q2,...,qn)

其中,n表示网络中各层的参数数量;p1,p2,...,pn表示对各参数是否剪枝,取值为0或1, 0表示是对该参数进行剪枝,1表示保留该参数,不进行剪枝;q1,q2,...,qn表示对各参数的量化位数;

S3、按照步骤S2的编码,生成设定数量的初始的种群,每个种群中包含若干个体;

S4、根据步骤S3的种群中每个个体的编码对模型M2中的参数剪枝和量化进行设置,由此得到与个体数量对应的模型,采用遥感图像数据对模型的参数数值进行训练,得到参数训练后的模型;

S5、对参数训练后得到的模型进行精度评估,将每个种群中精度最差的部分个体进行剔除,并对剩余个体的编码进行随机改变,对个体间的编码进行交叉和/或迁移,生成新的个体和种群;

S6、重复执行步骤S5,直到满足设定条件,停止对模型参数的训练;

其中,在训练的过程中,当前训练使用的模型参数数值为上一次训练的参数数值;

S7、对S6得到的模型进行精度评估,保留精度最高的部分个体,则完成卷积神经网络的剪枝和量化。

进一步的,对S7精度最高的部分个体进行重新训练,具体为:

首先,按照S7剪枝结果构建浮点参数的卷积神经网络模型,采用训练数据对该网络模型参数进行训练;

然后,在该剪枝后模型参数的基础上,依次对模型的每一层的量化参数进行训练,具体为:根据S7对参数量化结果,对网络模型的第一层的参数进行量化,网络模型其他各层为浮点参数,在剪枝后模型参数的基础上,对整个卷积神经网络进行训练,完成后,固定第一层的量化后参数,根据S7的结果对第二层的参数进行量化,第三层及以后各层保持为浮点参数,再对网络进行训练,依次类推,直到网络最后一层,完成模型参数的最终训练。

进一步的,所述S2中,编码时符合规则度约束条件,具体为:当约束仅对卷积神经网络的滤波器级别剪枝时,同一滤波器中的参数需要相同的剪枝编码;当约束仅对卷积核级别剪枝时,同一卷积核中的所有参数需要相同的剪枝编码。

较佳的,S3中,生成初始种群及个体的方法为:

在满足参数压缩率的条件下,随机对网络每一层的编码Ok=(p1,p2,...,pn,q1,q2,...,qn)中元素的值进行赋值;

或者,采用已有的剪枝和量化算法得到剪枝或量化后的模型结构,依照其结构对初始种群中个体的编码进行赋值,得到个体。

较佳的,S6中所述设定条件为:当任何一个个体的精度、参数量和计算量均到达规定阈值或到达预定的训练次数后停止训练。

较佳的,在对模型参数进行训练时,每个模型的训练周期数相同,在满足可以对模型性能进行区分的条件下,训练采取最少的次数。

较佳的,S5中对模型精度进行评估时,当各模型精度一致时,剔除模型参数量大的个体。

较佳的,S5中对模型精度评估时,依据不同的任务类型选择评估方法。

较佳的,S5中,对同一种群中的不同个体进行编码交叉,将每个种群中的最优个体迁移到其他种群,更新个体和种群。

较佳的,S1中,当遥感图像数据不足时,先使用自然场景图像数据对网络进行参数训练,得到预训练模型M1;再使用遥感图像数据对预训练模型M1进行参数训练,得到模型M2。

本发明具有如下有益效果:

本发明提供的一种面向遥感应用的卷积神经网络剪枝和量化同步压缩方法,与其他的卷积神经网络剪枝和量化压缩方法相比,本方法融合了模型剪枝和量化过程,实现了卷积神经网络模型的同步剪枝和量化,在提高模型参数压缩比例的同时,减少了模型压缩后的精度损失;

对剪枝和量化后的模型进行再训练,可以得到更为精确的参数数值,提高网络精度;

设定编码时需要遵守的规则度约束条件,即在实际的遥感平台处理器中对卷积神经网络模型进行实现时,对同一层中的不同滤波器处于相同位置的卷积核同时剪枝可以提高计算单元的通用程度,并提高计算的并行度;

本发明压缩后的模型可以在机载、星载等资源有限的平台处理器上进行移植和应用。

具体实施方式

下面结合实施例,对本发明进行详细描述。

为了解决传统的卷积神经网络剪枝和量化压缩方法存在精度易损失等问题,本发明在总结之前卷积神经网络压缩算法的基础上,通过同步进行模型的剪枝和量化,在提高了模型参数压缩比例的同时,保证了压缩后模型的精度。

本发明提供一种面向遥感应用的卷积神经网络剪枝和量化同步压缩方法,主要包括如下步骤:

S1、搭建深度卷积神经网络模型,使用自然场景图像数据对网络进行参数训练,得到预训练模型M1;

S2、使用遥感图像数据对预训练模型M1进行参数训练,得到模型M2;

对于遥感图像数据量较少的场景应用大量自然图像数据对模型进行预训练可以提高模型的特征提取能力,当遥感图像数据量不小于自然场景图像数据量时,可不进行步骤S1的模型预训练。

S3、对所述模型M2进行剪枝和量化参数的编码,具体的编码方案设计如下:

模型参数的剪枝包含是否剪枝的两种可能性,而量化包括1至n比特的量化位数,对网络中的某一层,可以定义其编码为:

Ok=(p1,p2,...,pn,q1,q2,...,qn)

其中的n表示网络中各层的参数数量。p1至pn的取值为0或1,0表示是对该参数进行剪枝,1表示保留该参数,不进行剪枝。q1至qn的取值由期望的量化位数决定,例如4到8,表示该参数的量化位数。

S4、在种群的编码符合规则度约束的条件下按照步骤S3的编码方案随机生成N(一般取大于5)个初始种群,每个种群包含K(一般取大于20)个个体,其中的随机种群生成方案依照期望的模型压缩方式进行设计,典型的2种初始种群和个体生成方法如下:

第一、在满足设置的参数压缩率的条件下,随机对网络每一层的编码 Ok=(p1,p2,...,pn,q1,q2,...,qn)中元素的值进行赋值;

第二、采用已有的剪枝和量化算法得到其剪枝或量化后的模型结构,依照其结构对初始种群个体的编码进行赋值。

在编码时需要符合规则度约束条件。剪枝按粒度可以分为滤波器级、卷积核级、核内参数级等。考虑到在实际的遥感平台处理器中对卷积神经网络模型进行实现时,对同一层中的不同滤波器处于相同位置的卷积核同时剪枝可以提高计算单元的通用程度,并提高计算的并行度,因此,在设置规则度约束时需要根据处理器硬件计算特点灵活进行。例如约束仅对滤波器级别剪枝时,同一滤波器中的参数需要相同的剪枝编码。约束仅对卷积核级别剪枝时,同一卷积核中的所有参数需要相同的剪枝编码。当剪枝编码的位置为0时,其对应位置的参数量化编码也相应置为0,例如p1=0时,q1=0。

S5、采用遥感图像数据(数据采用与步骤S2相同的数据)对步骤S4的N个种群及K个个体编码所对应的模型分别进行参数训练;

在训练时,每个个体均保留模型M2中的参数,在其基础上进行剪枝和量化。每个模型的训练周期数相同,在满足可以对模型性能进行区分的条件下,应训练较少的次数,以减少训练时间。

S6、对S5得到的模型进行精度评估,将每个种群中精度部分最差的个体进行剔除,并对剩余个体的编码进行随机改变,对同一种群中的不同个体进行编码交叉(不同个体间交换编码Ok相同位置的元素值),同时将每个种群中的最优个体迁移到其他种群,使种群增加个体。

精度评估方法依据不同的任务类型进行选择,例如对于图像分类任务,采用模型的分类准确率作为精度评估标准。当模型精度一致时,剔除模型参数量大的个体。在编码随机改变时,需要满足前述S4中的规则度约束。

S7、对S6得到的新种群和个体进行参数训练,并重复S6;

在训练的过程中,保留每个个体来源的参数值,在上一次训练参数的基础上进行训练和参数评估。其中,当上一次某个位置的参数被剪枝,没有对应参数值时,一直向上追溯,直到追溯到模型M2中对应参数的值。

S8、当任何一个个体的精度、参数量和计算量均到达规定阈值或到达预定的训练次数后停止训练;

S9、对S8得到的模型进行精度评估,保留精度最高的T个个体,则完成卷积神经网络的剪枝和量化。

剪枝和量化后模型的参数是否剪枝和参数比特数是确定的,参数的具体值需要继续训练优化,具体为:

重新训练时,采用逐层训练的方法进行。首先,按照S9剪枝结果构建浮点参数的卷积神经网络模型,采用训练数据对该网络模型进行训练,其中,可先后采用步骤S1和步骤S2对该浮点参数的剪枝模型进行训练;然后,在该剪枝后模型参数的基础上,依次对模型的每一层的量化参数进行训练。例如,根据S9对参数量化结果,对网络模型的第一层的参数进行量化,网络其他各层为浮点参数,在剪枝后模型参数的基础上,对整个卷积神经网络进行训练,完成后,固定第一层的量化后参数,根据S9对第二层参数量化结果对参数进行量化,第三层及以后保持为浮点参数,再进行训练,依次类推,直到网络最后一层,完成模型参数的训练。

综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

完整详细技术资料下载
上一篇:石墨接头机器人自动装卡簧、装栓机
下一篇:模型压缩方法及装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!