掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本发明涉及分类技术领域,尤其涉及一种细粒度分类模型的优化方法、系统及相关装置。

背景技术

细粒度分类对物体大类下的子类进行识别,从而区分物体大类下的不同子分类。细粒度分类任务相对通用分类任务的区别和难点在于其物体所属类别的粒度更为精细,因此,其广泛应用于目标检测、目标识别、目标分类,如图像识别等领域。

然而现有的细粒度分类模型的网络结构较为复杂且庞大,在海量目标分类中,计算量呈数量级,使得计算时间过长,功耗增大,并且由于其网络结构庞大,使得内存占用过大,给终端设备带来负担,导致分类效率低。

因此,现有技术还有待于发展和改进。

发明内容

基于此,有必要针对现有的细粒度分类模型网络结构复杂而导致分类效率低的技术问题,提出了一种细粒度分类模型的优化方法、系统及相关装置。

第一方面,本申请提供了一种细粒度分类模型的优化方法,所述细粒度分类模型的优化方法包括:

获取预先训练的初始细粒度分类模型以及所述初始细粒度分类模型的初始准确率;

对所述初始细粒度分类模型进行剪枝,得到第一细粒度分类模型;

对第一细粒度分类模型进行训练,得到所述第一细粒度分类模型的第一准确率;

若第一准确率与初始准确率的差值小于或等于预设阈值,则对第i个细粒度分类模型进行剪枝,以得到第i+1个细粒度分类模型;其中,第1个细粒度分类模型为所述第一细粒度分类模型,i的初始值为1;

确定第i+1个细粒度分类模型的第i+1个准确率与初始准确率的差值是否大于预设阈值;

若大于,则停止剪枝,将第i个细粒度分类模型作为目标细粒度分类模型;

若小于,则令i=i+1,返回执行对第i个细粒度分类模型进行剪枝。

所述的细粒度分类模型的优化方法,其中,所述对所述初始细粒度分类模型进行剪枝,得到第一细粒度分类模型具体包括:

获取所述初始细粒度分类模型中网络结构层数m,m为正整数;

获取所述初始细粒度分类模型中第n层网络结构所包含的所有卷积核对应的若干参数值,其中,n的初始值为1,n为正整数,且n≤m;

对每个卷积核对应的若干参数分别进行求和,得到每个卷积核对应的总参数值;

对所有总参数值进行排序,根据排序结果确定用于去除卷积核的参考值;

若没有卷积核的总参数值大于所述参考值,则令n=n+1,返回执行执行获取所述初始细粒度分类模型中第n层网络结构所包含的所有卷积核对应的若干参数值;

若存在某一卷积核的总参数值小于或等于所述参考值,则将所述卷积核删除,并令n=n+1,则返回执行获取所述初始细粒度分类模型中第n层网络结构所包含的所有卷积核对应的若干参数值;

将n=m所得到的最终细粒度分类模型作为第一细粒度分类模型。

所述的细粒度分类模型的优化方法,其中,所述若存在某一卷积核的总参数值小于所述参考值,则将所述卷积核删除之后还包括:

删除第n+1层网络结构中与第n层网络结构中所述卷积核对应的通道数,其中,n<m。

所述的细粒度分类模型的优化方法,其中,所述对所有总参数值进行排序,根据排序结果确定用于去除卷积核的参考值具体包括:

将所有总参数值进行排序,得到排序结果;

根据排序结果以及用户任务需求,确定所述排序结果对应的删除顺序以及将要删除卷积核的个数;

计算所述排序结果中对应的若干待删除卷积核的参考值。

所述的细粒度分类模型的优化方法,其中,所述第i细粒度分类模型与所述初始细粒度分类模型采用相同的训练集进行训练。

所述的细粒度分类模型的优化方法,其中,所述方法还包括:

若第一准确率与初始准确率的差值大于预设阈值,则更新所述初始细粒度分类模型的参数,对更新后的初始细粒度分类模型重新进行训练。

所述的细粒度分类模型的优化方法,其中,所述初始细粒度分类模型至少包括NTS细粒度分类模型,所述目标细粒度分类模型为所述初始细粒度分类模型的最小网络结构。

第二方面,本申请还提供一种细粒度分类模型的优化装置,所述细粒度分类模型的优化装置包括处理器与所述处理器连接的存储器,所述存储器存储有一个或多个程序,所述程序被处理器执行以实现所述的细粒度分类模型的优化方法中的步骤。

第三方面,本申请还提供一种细粒度分类模型的优化系统,所述细粒度分类模型的优化系统包括所述的细粒度分类模型的优化装置。

第四方面,本申请还提供一种计算机临时存储介质,该计算机临时存储介质存储有一个或多个程序,所述程序被处理器执行以实现所述的细粒度分类模型的优化方法中的步骤。

采用本发明实施例,具有如下有益效果:

本发明公开了一种细粒度分类模型的优化方法、系统及相关装置,旨在利用剪枝技术,将初始细粒度分类模型转化为体积更小更优的目标细粒度分类模型,使得内存占用减小,提高分类效率。同时由于目标细粒度分类模型的分类准确率与初始细粒度分类模型的分类准确率的差值满足预设阈值的要求,从而使得剪枝所得到的目标细粒度分类模型的分类效果与初始细粒度分类模型的分类效果保持一致,达到保持模型准确率的目的。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

其中:

图1为本发明提供的一种细粒度分类模型的优化方法的一实施例的流程图。

图2为本发明提供的一种细粒度分类模型的优化装置的结构框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1,图1示例了本发明提供的一种细粒度分类模型的优化方法的一实施例的流程图。如图1所示,所述细粒度分类模型的优化方法包括:

S10、获取预先训练的初始细粒度分类模型以及所述初始细粒度分类模型的初始准确率。

在本实施例中,所述初始细粒度分类模型为NTS细粒度分类模型。该初始细粒度分类模型是经过训练地且符合预设标准的网络模型。为了保证后续剪枝得到的目标细粒度分类模型的分类准确率与初始细粒度分类模型的分类准确率一致,因此,需要通过预先训练的初始细粒度分类模型的初始准确率作为参考准确率,并且目标细粒度分类模型的训练所采用的训练集与初始细粒度分类模型所采用的训练集是相同的。

S20、对所述初始细粒度分类模型进行剪枝,得到第一细粒度分类模型。

具体地,剪枝技术的核心思想是裁剪不重要的部分,即裁剪对模型没有影响的网络结构。因此,通过剪枝技术可使得初始细粒度分类模型的体积减小,从而减小内存占用,简化初始细粒度分类模型的网络结构。

虽然剪枝技术可使得初始细粒度分类模型的体积减小,但剪枝后的细粒度分类模型的分类准确率低,不能保证与初始细粒度分类模型的初始分类准确率一致,因此,存在剪枝失败的可能,该分类准确率低的细粒度分类模型不能作为目标细粒度分类模型。

因此,如何利用剪枝技术有效裁剪初始细粒度分类模型,以使得裁剪后得到的目标细粒度分类模型的分类准确率保持与原有初始细粒度分类模型的初始分类准确率一致。

在本实施例中,利用初始细粒度分类模型的网络结构层中卷积核参数之和与去除卷积核的参考值的比对结果来删除卷积核,以减小初始细粒度分类模型的体积。简单来说,就是按参数(或特征输出)绝对值大小来评估重要性,然后用贪心法将不重要那部分删除。

示例性的,所述对所述初始细粒度分类模型进行剪枝,得到第一细粒度分类模型具体包括:

S21,获取所述初始细粒度分类模型中网络结构层数m,m为正整数;

S22,获取所述初始细粒度分类模型中第n层网络结构所包含的所有卷积核对应的若干参数值,其中,n的初始值为1,n为正整数,且n≤m;

S23,对每个卷积核对应的若干参数分别进行求和,得到每个卷积核对应的总参数值;

S24,对所有总参数值进行排序,根据排序结果确定用于去除卷积核的参考值;

S25,若没有卷积核的总参数值大于所述参考值,则令n=n+1,返回执行执行获取所述初始细粒度分类模型中第n层网络结构所包含的所有卷积核对应的若干参数值;

S26,若存在某一卷积核的总参数值小于或等于所述参考值,则将所述卷积核删除,并令n=n+1,则返回执行获取所述初始细粒度分类模型中第n层网络结构所包含的所有卷积核对应的若干参数值;

S27,将n=m所得到的最终细粒度分类模型作为第一细粒度分类模型。

其中,步骤S24包括:

S241,将所有总参数值进行排序,得到排序结果;

S242,根据排序结果以及用户任务需求,确定所述排序结果对应的删除顺序以及将要删除卷积核的个数;

S243,计算所述排序结果中对应的若干待删除卷积核的参考值。

举例来说,初始细粒度分类模型的网络结构层数m=10,n=1

第1层网络结构包含卷积核1,卷积核2,卷积核3,....卷积核100(即第1层100个卷积核),其中,卷积核1的大小为3*3*3(通道数3),卷积核2的大小为3*3*4(通道数4),卷积核3的大小为3*3*5(通道数5).......卷积核100的大小为3*3*10(通道数10)。

那么,卷积核1对应的参数的个数为3*3*3=27,卷积核2对应的参数的个数为3*3*4=36,卷积核3对应的参数的个数为3*3*5=45,.......卷积核100对应的参数的个数为3*3*10=90。

需要说明的是,参数值有正负,因此,在本实施例中,计算每个卷积核的参数值之和是计算每个卷积核的参数的绝对值之和。

因此,卷积核1的总参数值为27个参数的绝对值之和,卷积核2的总参数值为36个参数的绝对值之和,卷积核3的总参数值为45个参数的绝对值之和,.....卷积核100的总参数值为90个参数的绝对值之和。

将总参数值按由大到小排序(也可由小到大排序等,并非限定,可根据需求自定义排序),假设排序结果为卷积核2,卷积核1,卷积核3,.....卷积核100。根据经验或用户目标任务需求,需要删除100个卷积核中前N个卷积核,如N=20,则计算排序结果前20卷积核的参数对应的值,将这个值作为去除卷积核的参考值。

若这100个卷积核的100个总参数值存在至少一个小于或等于所述参考值,说明该卷积核对细粒度分类模型的网络结构层不产生影响,则删除这个卷积核,若没有卷积核总参数小于或等于所述参数值,则不删除,继续下一网络结构层,即接着对第2层网络结构中所有的卷积核进行与第1层相同的操作。

直到第10层(初始细粒度分类模型的最后一层)同样执行与第1层相同的操作步骤后,得到的细粒度分类模型作为第一细粒度分类模型。

进一步地,由于第n层卷积核的个数会影响到第n+1层卷积核的通道数,因此,在删除第n层的某一个卷积核之后,需要同时删除第n+1层上卷积核对应的通道。也就是说,删除第n+1层网络结构中与第n层网络结构中所述卷积核对应的通道数,其中,n<m。若第n层为细粒度分类模型的最后一层,则不存在n+1层,也就不需要删除第n+1对应的通道数。

需要说明的是,上述用于去除卷积核的参考值不是预先设置也不是固定的,其根据当前网络层所有卷积核的参数以及用户需求的不同而不同。

S30、对第一细粒度分类模型进行训练,得到所述第一细粒度分类模型的第一准确率。

在本实施例中,所述第一细粒度分类模型的网络结构的体积小于初始细粒度分类模型的体积。为了确保剪枝后的细粒度分类模型保持与原有初始细粒度分类模型的分类准确率一致,因此,需要对剪枝后的第一细粒度分类模型进行剪枝验证,以确定第一细粒度分类模型是剪枝成功,即与初始细粒度分类模型保持一致,还是剪枝失败。

在本实施例中,剪枝验证的方法是通过剪枝后模型得到的分类准确率与初始细粒度分类模型的初始分类准确率的差值与预设阈值的比对结果来验证剪枝成功或失败。

具体地,获取初始细粒度分类模型所输入的训练集。将该训练集输入至第一细粒度分类模型进行训练,采用相同的训练方法,得到所述第一细粒度分类模型的第一准确率。

S40、若第一准确率与初始准确率的差值小于或等于预设阈值,则对第i个细粒度分类模型进行剪枝,以得到第i+1个细粒度分类模型;其中,第1个细粒度分类模型为所述第一细粒度分类模型,i的初始值为1;

S50、确定第i+1个细粒度分类模型的第i+1个准确率与初始准确率的差值是否大于预设阈值

S60、若大于,则停止剪枝,将第i个细粒度分类模型作为目标细粒度分类模型;

S70、若小于,则令i=i+1,返回执行对第i个细粒度分类模型进行剪枝。

举例来说,若第一准确率与初始准确率的差值小于或等于预设阈值,说明对初始细粒度分类模型剪枝成功。该第一细粒度分类模型可用于跟初始细粒度分类模型相同的应用场景。同样,第一细粒度分类模型的体积小于初始细粒度分类模型的体积。

在本实施例中,为了使得剪枝后的细粒度分类模型的体积达到最优,即最小体积,更进一步提高分类效率,更进一步减小内存占用,因此,在第一细粒度分类模型的基础上继续进行剪枝,以得到更小更优的细粒度分类模型。

具体地,i=1,对第一细粒度分类模型进行剪枝,得到第2个细粒度分类模型,其对应的第2个分类准确率与初始准确率的差值再次与预设阈值比较,以确认差值是否大于预设阈值,若大于预设阈值,则第2个细粒度分类模型剪枝失败,停止剪枝,而其上一个剪枝的第一细粒度分类模型作为目标细粒度分类模型。

若小于或等于预设阈值,则i=2,对第2个细粒度分类模型进行剪枝,得到第3个细粒度分类模型,执行与i=1相同的操作,即其对应的第3个分类准确率与初始准确率的差值再次与预设阈值比较,以确认剪枝失败或成功。

当模型经过训练、剪枝、再训练迭代次数足够多之后,模型剪枝成功几率会逐步下降直至几乎无法成功,此时停止剪枝。举例来说,若连续i次剪枝成功,第i+1次剪枝失败,停止剪枝,并将第i次剪枝得到的细粒度分类模型作为目标细粒度分类模型。

需要说明的是,任意第i细粒度分类模型与所述初始细粒度分类模型采用相同的训练集进行训练,才能确保剪枝验证的准确性。

进一步地,在对初始细粒度分类模型的第1次剪枝得到第一细粒度分类模型,若第一细粒度分类模型的第一准确率与初始准确率的差值大于预设阈值,则说明对初始细粒度分类模型的第1次剪枝失败,需要对初始细粒度分类模型重新进行训练,即通过更新初始细粒度分类模型的参数,修正初始细粒度分类模型,从而使得修正后的初始细粒度分类模型能够至少剪枝成功1次,以得到目标细粒度分类模型。

需要说明的是,上述预设阈值在本实施例中设置为0.1,该阈值并非限定的,可根据用户需求自定义设置,如设置其预设范围区间0.05~0.1。

这样,基于步骤S10-S70,本发明旨在利用剪枝技术,将初始细粒度分类模型转化为体积更小更优的目标细粒度分类模型,使得内存占用减小,不仅提高分类效率,还可放到更低端的设备运行,扩大应用群里,利用推广。同时由于目标细粒度分类模型的分类准确率与初始细粒度分类模型的分类准确率的差值满足预设阈值的要求,从而使得剪枝所得到的目标细粒度分类模型的分类效果与初始细粒度分类模型的分类效果保持一致,达到保持模型准确率的目的。

在上述实施例中,可以全部或部分的通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或者数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或半导体介质(例如固态硬盘Solid S100a100e Disk(SSD))等。

基于上述方法,本申请还提供一种细粒度分类模型的优化装置,其应用于细粒度分类模型的优化系统。在一个实施例中,如图2所示,图2展示了一种细粒度分类模型的优化装置的结构框图。其包括至少一个处理器(processor)20;显示屏21;以及存储器(memory)22,还可以包括通信接口(Communica100ions In100erface)23和总线24。其中,处理器20、显示屏21、存储器22和通信接口23可以通过总线24完成相互间的通信。显示屏21设置为显示初始设置模式中预设的用户引导界面。通信接口23可以传输信息。处理器20可以调用存储器22中的逻辑指令,以执行上述实施例中的方法。

此外,上述的存储器22中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。

存储器22作为一种计算机可读存储介质,可设置为存储软件程序、计算机可执行程序,如本发明实施例中的方法对应的程序指令或模块。处理器20通过运行存储在存储器22中的软件程序、指令或模块,从而执行功能应用以及数据处理,即实现上述实施例中的方法。

存储器22可包括存储程序区和存储数据区,其中,存储程序区可存储操作语音客服系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器。例如,U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random AccessMemory,RAM)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。

在一个实施例中,本发明还提供一种细粒度分类模型的优化系统,所述细粒度分类模型的优化系统包括如图2所示的细粒度分类模型的优化装置。

在另一个实施例中,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器(本实施例为所述处理器10)执行,以实现本发明的细粒度分类模型的优化方法中的步骤,具体如上述方法所述。

以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

相关技术
  • 一种细粒度分类模型的优化方法、系统及相关装置
  • 一种基于深度模型框架的高效细粒度图像分类模型
技术分类

06120112375297