CN114330692A - 神经网络模型的部署方法、装置、设备及存储介质 - Google Patents
神经网络模型的部署方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114330692A CN114330692A CN202111660692.9A CN202111660692A CN114330692A CN 114330692 A CN114330692 A CN 114330692A CN 202111660692 A CN202111660692 A CN 202111660692A CN 114330692 A CN114330692 A CN 114330692A
- Authority
- CN
- China
- Prior art keywords
- model
- convolution
- neural network
- output result
- candidate
- 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
Links
Images
Landscapes
- Image Analysis (AREA)
Abstract
本申请实施例公开了一种神经网络模型的部署方法、装置、设备及存储介质,方法包括:获得电子设备的当前算力信息;至少根据包含多个神经网络模型的模型集合,获得与所述当前算力信息相匹配的目标模型;其中,所述模型集合中的神经网络模型的卷积核参数预先经过训练得到;将所述目标模型部署在所述电子设备上。可见,本申请中根据电子设备的当前算力信息为电子设备部署卷积核参数预先经过训练的神经网络模型,由此在将神经网络模型部署到电子设备之后,无需重新对部署的神经网络模型进行训练,由此通过缩短部署流程达到提高部署效率的目的。
Description
技术领域
本申请涉及信息处理技术领域,更具体地说,涉及一种神经网络模型的部署方法、装置、设备及存储介质。
背景技术
随着深度神经网络技术的飞速发展,机器在诸多任务上均已超越人类的水平。神经网络以其复杂的结构及超大的参数量为基础在诸多视觉任务上均取得优异的效果。
在为边缘设备部署神经网络模型时,需要按照边缘设备的实际算力进行部署。
但是在按照边缘设备的算力部署神经网络模型后,需要重新对神经网络模型进行训练,因此,会导致部署流程被延长,使得部署效率较低。
发明内容
有鉴于此,本申请提供了一种神经网络模型的部署方法、装置、设备及存储介质,以提高神经网络模型部署的效率。
为了实现上述目的,现提出的方案如下:
一种神经网络模型的部署方法,包括:
获得电子设备的当前算力信息;
至少根据包含多个神经网络模型的模型集合,获得与所述当前算力信息相匹配的目标模型;其中,所述模型集合中的神经网络模型的卷积核参数预先经过训练得到;
将所述目标模型部署在所述电子设备上。
上述方法,优选的,至少根据包含多个神经网络模型的模型集合,获得与所述当前算力信息相匹配的目标模型,包括:
在包含多个神经网络模型的模型集合中,筛选出初始集合,所述初始集合中包含有至少一个运算能力参数匹配所述当前算力信息的神经网络模型;
对所述初始集合中的神经网络模型进行至少一次迭代处理,以得到与所述当前算力信息相匹配的目标模型;
其中,一次所述迭代处理包括:对模型准确率满足筛选条件的神经网络模型的模型参数中的至少部分参数进行突变和/或交叉处理,以得到新的神经网络模型,以及,对所述新的神经网络模型按照所述当前算力信息进行筛选。
上述方法,优选的,所述模型集合中的神经网络模型通过以下方式进行构建:
获得基于神经网络构建的基础模型,所述基础模型具有多个特征提取阶段,每个所述特征提取阶段对应于至少一个初始卷积层,每个所述初始卷积层对应于多个初始卷积通道,每个所述初始卷积层对应有多个初始卷积核,所述初始卷积核的卷积核参数经过训练得到;
根据所述基础模型在每个所述特征提取阶段对应的初始卷积层、初始卷积通道和初始卷积核,获得多个候选构建策略,所述候选构建策略包含每个所述特征提取阶段对应的候选卷积层的数量、每个所述候选卷积层对应的候选卷积通道的数量、每个所述候选卷积层对应的候选卷积核的尺寸和每个所述候选卷积核的卷积核参数;
根据所述候选构建策略,构建对应的神经网络模型,以得到包含多个神经网络模型的模型集合;
其中,所述神经网路模型的特征提取阶段与所述基础模型的特征提取阶段相对应,所述神经网络模型在每个所述特征提取阶段对应的卷积层的数量与所述候选构建策略中的候选卷积层的数量一致,所述神经网络模型在每个所述卷积层对应的卷积通道的数量与所述候选构建策略中在相应候选卷积层对应的候选卷积通道的数量一致,所述神经网络模型在每个所述卷积层对应的卷积核的尺寸与所述候选构建策略中相应候选卷积层对应的候选卷积核的尺寸一致,所述神经网络模型在每个所述卷积层对应的卷积核的卷积核参数与所述候选构建策略中相应候选卷积层对应的候选卷积核的卷积核参数一致。
上述方法,优选的,根据所述基础模型在每个所述特征提取阶段对应的初始卷积层、初始卷积通道和初始卷积核,获得多个候选构建策略,包括:
分别以预设的第一倍率处理所述基础模型在每个所述特征提取阶段对应的初始卷积层的数量,以得到每个所述特征提取阶段上对应的候选卷积层的数量,所述第一倍率有一个或多个;
分别以预设的第二倍率处理所述基础模型在每个所述初始卷积层上对应的初始卷积通道的数量,以得到每个所述初始卷积层对应的候选卷积层对应的候选卷积通道的数量,所述第二倍率有一个或多个;
分别以预设的第三倍率处理所述基础模型在每个所述特征提取阶段对应的初始卷积核中的最大卷积核的尺寸,以得到每个所述特征提取阶段中每个所述候选卷积层对应的候选卷积核的尺寸,所述第三倍率有一个或多个;
根据所述基础模型在每个所述特征提取阶段对应的最大卷积核的卷积核参数,分别为每个所述特征提取阶段中每个候选卷积层对应的候选卷积核设置卷积核参数,其中,所述候选卷积核的卷积核参数从核起始位置继承于其所在特征提取阶段对应的初始卷积核中的最大卷积核的卷积核参数;
根据所述候选卷积层的数量、所述候选卷积通道的数量、所述候选卷积核的尺寸和所述候选卷积核的卷积核参数,获得多个候选构建策略。
上述方法,优选的,所述模型集合中的神经网络模型通过以下方式进行训练:
在所述模型集合中选择第一模型、第二模型和第三模型,所述第一模型、所述第二模型和所述第三模型在每个特征提取阶段上的卷积层数量、每个所述卷积层对应的卷积通道数量和每个所述卷积层对应的卷积核尺寸均不同;例如,所述第一模型为所述模型集合中在每个所述特征提取阶段上的卷积层数量最大、每个所述卷积层对应的卷积通道数量最大且每个所述卷积层对应的卷积核尺寸最大的神经网络模型,所述第二模型为所述模型集合中在每个所述特征提取阶段上卷积层数量最小、每个所述卷积层对应的卷积通道数量最小且每个所述卷积层对应的卷积核尺寸最小的神经网络模型,所述第三模型在每个所述特征提取阶段上卷积层数量为所述模型集合中最大卷积层数量和最小卷积层数量之间的随机值,所述第三模型在每个所述卷积层对应的卷积通道数量为所述模型集合中最大卷积通道数量和最小卷积通道数量之间的随机值,所述第三模型在每个所述卷积层对应的卷积核尺寸为所述模型集合中最大卷积核尺寸和最小卷积核尺寸之间的随机值;
将带有样本标签的样本图像,分别作为所述第一模型、所述第二模型和所述第三模型的输入图像,以得到所述第一模型的第一输出结果、所述第二模型的第二输出结果和所述第三模型的第三输出结果;
在所述样本标签、所述第一输出结果、所述第二输出结果和所述第三输出结果满足调整条件的情况下,根据所述样本标签、所述第一输出结果、所述第二输出结果和所述第三输出结果,对所述第一模型、所述第二模型和所述第三模型对应的卷积核参数进行调整,返回执行所述步骤:在所述模型集合中选择第一模型、第二模型和第三模型,直到所述样本标签、所述第一输出结果、所述第二输出结果和所述第三输出结果满足收敛条件。
上述方法,优选的,所述样本标签包含:手部区域框的标签和指尖点位置的标签;
其中,根据所述样本标签、所述第一输出结果、所述第二输出结果和所述第三输出结果,对所述第一模型、所述第二模型和所述第三模型对应的卷积核参数进行调整,包括:
使用蒸馏损失函数,获得所述第一输出结果相对于所述样本标签在所述手部区域框上的第一损失函数值和在所述指尖点位置上的第二损失函数值;
使用所述蒸馏损失函数,获得所述第二输出结果相对于所述第一输出结果在所述手部区域框上的第三损失函数值和在所述指尖点位置上的第四损失函数值;
使用所述蒸馏损失函数,获得所述第三输出结果相对于所述第一输出结果在所述手部区域框上的第五损失函数值和在所述指尖点位置上的第六损失函数值;
根据所述第一损失函数值、所述第二损失函数值、所述第三损失函数值、所述第四损失函数值、所述第五损失函数值和所述第六损失函数值,对所述第一模型、所述第二模型和所述第三模型对应的卷积核参数进行调整,以使得所述第二输出结果和所述第三输出结果分别与所述第一输出结果至少近似一致且所述第一输出结果与所述样本标签至少近似一致。
上述方法,优选的,获得基于神经网络构建的基础模型,包括:
基于神经网络,构建初始的基础模型;所述基础模型具有多个特征提取阶段,每个所述特征提取阶段对应于至少一个卷积层,每个所述卷积层对应有多个卷积通道,每个所述卷积层对应有卷积核;
使用带有样本标签的样本图像,对所述基础模型在每个所述卷积层对应的卷积核参数进行优化,以得到训练完成的基础模型,所述基础模型能够对输入图像中的手部区域框和指尖点位置进行检测。
上述方法,优选的,所述方法还包括:
将目标图像输入到所述目标模型中,以通过所述目标模型对所述目标图像中的手部区域框和指尖点位置进行检测。
一种神经网络模型的部署装置,包括:
信息获得模块,用于获得电子设备的当前算力信息;
模型获得模块,用于至少根据包含多个神经网络模型的模型集合,获得与所述当前算力信息相匹配的目标模型;其中,所述模型集合中的神经网络模型的卷积核参数预先经过训练得到;
模型部署模块,用于将所述目标模型部署在所述电子设备上。
一种神经网络模型的部署设备,包括存储器和处理器;
所述存储器,用于存储程序;
所述处理器,用于执行所述程序,实现如上任一项所述的神经网络模型的部署方法的各个步骤。
一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如上任一项所述的神经网络模型的部署方法的各个步骤。
从上述的技术方案可以看出,本申请实施例提供的神经网络模型的部署方法、装置、设备及存储介质,获得电子设备的当前算力信息;至少根据包含多个神经网络模型的模型集合,获得与当前算力信息相匹配的目标模型;其中,模型集合中的神经网络模型的卷积核参数预先经过训练得到;将目标模型部署在所述电子设备上。可见,本申请中根据电子设备的当前算力信息为电子设备部署卷积核参数预先经过训练的神经网络模型,由此在将神经网络模型部署到电子设备之后,无需重新对部署的神经网络模型进行训练,由此通过缩短部署流程达到提高部署效率的目的。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例公开的神经网络模型的部署方法的一种实现流程图;
图2-图7分别为本申请实施例公开的神经网络模型的部署方法的部分流程图;
图8为本申请实施例适用于手部区域框和指尖点位置检测场景中检测模型的架构图;
图9为本申请实施例适用于手部区域框和指尖点位置检测场景中超网络中子网络之间共享参数的示意图;
图10为本申请实施例适用于手部区域框和指尖点位置检测场景中检测模型的训练流程图;
图11为本申请实施例适用于手部区域框和指尖点位置检测场景中获得手部区域框蒸馏损失的示例图;
图12为本申请实施例适用于手部区域框和指尖点位置检测场景中获得指尖点位置蒸馏损失的示例图;
图13为本申请实施例适用于手部区域框和指尖点位置检测场景中的超网络训练阶段的流程图;
图14为本申请实施例适用于手部区域框和指尖点位置检测场景中的模型部署阶段的流程图;
图15为本申请实施例公开的神经网络模型的部署装置的一种结构示意图;
图16为本申请实施例公开的神经网络模型的部署设备的硬件结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
超强的算力要求严重限制了主流神经网络在边缘设备的部署。如何在保持原有模型效果的同时,降低网络参数量及运算量实现神经网络在低功耗、低算力边缘设备上的成功部署越来越受到关注。而神经网络模型的搜索便是一种十分有效且热度极高的技术方案。当前主流的神经网络模型搜索方案主要分为如下三种类型:基于强化学习的技术方案、基于进化算法的技术方案和基于梯度的技术方案。但是这三种方案在面对不同硬件平台时均需要重新进行训练及搜索,造成算力的严重浪费,且部署流程延长。
为了克服现有技术中的神经网络模型的部署方案所存在的缺陷,本申请方案提出一种面向边缘设备的神经网络结构搜索以及部署方案。该方案在最大化实际部署模型效果的同时降低了超网络训练的时间及存储消耗,实现超网络训练与实际模型部署间的解耦,能够实现一次超网络训练,多种不同硬件平台的同时部署,无需对搜索并部署的神经网络模型进行重新训练,大大提升模型部署效率,促进深度学习模型的快速落地。
请参阅图1,图1为本申请实施例提供的神经网络模型的部署方法的一种实现流程图,可以包括:
步骤S101:获得电子设备的当前算力信息。
其中的电子设备可以为手机、pad、笔记本、计算机或服务器等边缘设备。而电子设备的当前算力信息可以用单位时间内的计算次数来表征,或者可以用其他性能参数来表征。
具体的,本实施例中可以通过读取电子设备的设备配置参数如CPU型号、内存大小等来获得电子设备的当前算力信息。
步骤S102:至少根据包含多个神经网络模型的模型集合,获得与当前算力信息相匹配的目标模型。
其中,模型集合中的神经网络模型的卷积核参数预先经过训练得到。具体的,模型集合中的神经网络模型可以在模型集合被构建过程中训练得到。
具体的,本实施例中可以根据当前算力信息,在模型集合中筛选出运算能力参数匹配当前算力信息的初始模型,之后,再根据初始模型获得到目标模型。例如,可以直接将初始模型作为目标模型,或者,可以对初始模型进行调整,以得到目标模型。
需要说明的是,神经网络模型的运算能力参数匹配当前算力信息,可以理解为:当前算力信息下,电子设备能够正常运行该运算能力参数的神经网络模型。具体的,神经网络模型的运算能力参数可以用神经网络模型在单位时间内所可能达到的最大计算次数来表征,而电子设备的当前算力信息可以用电子设备在单位时间内所能够进行的最大计算次数来表征,此时,运算能力参数匹配当前算力信息具体为:神经网络模型在单位时间内所可能达到的最大计算次数小于或等于电子设备在单位时间内所能够进行的最大计算次数,由此,电子设备能够以其当前算力支撑神经网络模型正常运行。
步骤S103:将目标模型部署在电子设备上。
具体的,本实施例中可以将目标模型传输到电子设备上并触发该目标模型在电子设备上运行。由此,电子设备可以通过目标模型实现相应的数据处理。例如,本实施例中可以将待处理的目标图像输入到目标模型中,运行目标模型,由此通过目标模型对目标图像中的手部区域框和指尖点位置进行检测。
例如,在人机交互场景中,电子设备将采集到的包含用户内容的输入图像传输到部署完成的目标模型中,由目标模型基于神经网络中的卷积核参数对输入图像进行处理,以检测出输入图像中的手部区域框以及指尖点位置,进而基于手部区域框以及指尖点位置实现人机交互。
本申请实施例公开的一种神经网络模型的部署方法中,根据电子设备的当前算力信息为电子设备部署卷积核参数预先经过训练的神经网络模型,由此在将神经网络模型部署到电子设备之后,无需重新对部署的神经网络模型进行训练,由此通过缩短部署流程达到提高部署效率的目的。
在一可选的实施例中,上述获取目标模型的一种实现流程图如图2所示,可以包括:
步骤S201:在包含多个神经网络模型的模型集合中,筛选出初始集合。
其中,初始集合中包含有至少一个运算能力参数匹配当前算力信息的神经网络模型,即前文中的初始模型。初始集合中的神经网络模型的卷积核参数预先经过训练得到。
步骤S202:对初始集合中的神经网络模型按照遗传算法进行至少一次迭代处理,以得到与当前算力信息相匹配的目标模型。
其中,一次迭代处理包括:对模型准确率满足筛选条件的神经网络模型的模型参数中的至少部分参数进行突变和/或交叉处理,以得到新的神经网络模型,以及,对新的神经网络模型按照所述当前算力信息进行筛选。
需要说明的是,神经网络模型的模型准确率可以使用测试图像进行模型测试得到。例如,将带有测试标签的测试图像输入到神经网络模型,将神经网络模型得到的输出结果与测试标签进行比对,以得到神经网络模型的模型准确率。神经网络模型的模型准确率可以通过预先测试得到。而筛选条件为:模型准确率排序在前K个的条件。模型参数可以包含有:神经网络模型在每个特征提取阶段的卷积层的数量、在每个卷积层上的卷积通道的数量、在每个卷积层上的卷积核的尺寸以及每个卷积核的卷积核参数。
具体实现中,步骤S202中可以先在初始集合中选出模型准确率排序在前K个的神经网络模型,再针对这些选出的K个神经网络模型,按照遗传算法将这K个神经网络模型的模型参数的至少部分参数进行突变、交叉、替换等任意一种或任意多种处理,进而得到新的神经网络模型;之后,再将这些新的神经网络模型中运算能力参数不匹配当前算力信息的神经网络模型剔除,将剩余的新的神经网络模型并入到初始集合中,得到更新的初始集合;
然后,返回重新在被更新的初始集合中选出模型准确率排序在前K个的神经网络模型,之后,按照前述方式,对这K个神经网络模型的模型参数进行突变、交叉等处理,直到对初始集合中的神经网络模型进行迭代处理的迭代次数到达预设的次数阈值,停止迭代,此时在最新的初始集合中选择模型准确率最高的神经网络模型作为目标模型。
由此,就可以得到模型准确率最高且能够匹配电子设备的当前算力信息的神经网络模型,再将该神经网络模型部署到电子设备上之后,电子设备不仅能够正常运行该神经网络模型,还可以达到最高的模型准确率。
在一可选的实施例中,上述模型集合中的神经网络模型的构建流程图如图3所示,可以包括:
步骤S301:获得基于神经网络构建的基础模型。
其中,基础模型具有多个特征提取阶段,每个特征提取阶段对应于至少一个初始卷积层,每个初始卷积层对应于多个初始卷积通道,每个初始卷积层对应有多个初始卷积核,基础模型中初始卷积核的卷积核参数经过训练得到。
以基础模型为实现手部区域框和指尖点位置的神经网络模型为例,基础模型中包含4个特征提取阶段,在每个特征提取阶段上对应于相同或不同数量的初始卷积层,在每个初始卷积层上均对应有多个初始卷积通道,每个初始卷积层上对应有多个初始卷积核,而初始卷积核的卷积核参数通过样本图像的训练得到。
步骤S302:根据基础模型在每个特征提取阶段对应的初始卷积层、初始卷积通道和初始卷积核,获得多个候选构建策略。
其中,候选构建策略中包含每个特征提取阶段对应的候选卷积层的数量、每个候选卷积层对应的候选卷积通道的数量、每个候选卷积层对应的候选卷积核的尺寸和每个候选卷积核的卷积核参数。
需要说明的是,不同的候选构建策略之间,在候选卷积层的数量、候选卷积通道的数量、每个候选卷积层对应的候选卷积核的尺寸中至少有一项是不同的。而同一特征提取阶段上的各个卷积层的卷积核参数从核起始位置开始卷积核参数是一致的。
具体的,本实施例中可以通过基础模型在每个特征提取阶段对应的初始卷积层的数量、初始卷积通道的数量和初始卷积核的尺寸分别按照一个或多个倍率进行拆分,以得到不同的初始卷积层的数量、初始卷积通道的数量和初始卷积核的尺寸的组合所构成的候选构建策略。
步骤S303:根据候选构建策略,构建对应的神经网络模型,以得到包含多个神经网络模型的模型集合;
其中,神经网路模型的特征提取阶段与基础模型的特征提取阶段相对应,神经网络模型在每个特征提取阶段对应的卷积层的数量与候选构建策略中的候选卷积层的数量一致,神经网络模型在每个卷积层对应的卷积通道的数量与候选构建策略中在相应候选卷积层对应的候选卷积通道的数量一致,神经网络模型在每个卷积层上对应的卷积核的尺寸与候选构建策略中相应候选卷积层的候选卷积核的尺寸一致,神经网络模型在每个卷积层上对应的卷积核的卷积核参数与候选构建策略中相应候选卷积层对应的候选卷积核的卷积核参数一致。
也就是说,分别针对每个候选构建策略,按照候选构建策略中的候选卷积层的数量、每个候选卷积层对应的候选卷积通道的数量、每个候选卷积层对应的候选卷积核的尺寸和每个候选卷积核的卷积核参数,创建具有相应模型参数的神经网络模型。例如,某个候选构建策略中有2个特征提取阶段,两个特征提取阶段分别有2个和4个候选卷积层,这两个特征提取阶段的每个候选卷积层分别对应256和512个候选卷积通道,而6个候选卷积层分别对应的候选卷积核的尺寸为12*12、3*3、5*5、6*6、8*8、9*9,相应每个候选卷积核具有相应的卷积核参数,基于此,所创建的神经网络模型中具有2个特征提取阶段,两个特征提取阶段分别有2个和4个卷积层,这两个特征提取阶段的每个卷积层分别对应256和512个卷积通道,而6个卷积层分别对应的卷积核的尺寸为12*12、3*3、5*5、6*6、8*8、9*9,相应每个卷积核具有相应的卷积核参数。
在一可选的实施例中,上述获得候选构建策略的一种实现流程图如图4所示,可以包括:
步骤S401:分别以预设的第一倍率处理基础模型在每个特征提取阶段对应的初始卷积层的数量,以得到每个特征提取阶段上对应的候选卷积层的数量。
其中的第一倍率有一个或多个。基于此,对于每个特征提取阶段,在初始卷积层的数量经过第一倍率的处理之后,可以得到分别对应于每个特征提取阶段的一个或多个候选卷积层的数量。例如,其中一个特征提取阶段对应的一个候选卷积层的数量为该特征提取阶段对应的初始卷积层的数量乘以其中一个第一倍率所得到的数值。
例如,基础模型中具有2个特征提取阶段,第一个特征提取阶段有2个初始卷积层,第二个特征提取阶段有4个初始卷积层,第一倍率有2个:0.5和1,基于此,第一个特征提取阶段对应有2个候选卷积层的数量,分别为:1和2,第二个特权提取阶段对应有2个候选卷积层的数量,分别为2和4。
步骤S402:分别以预设的第二倍率处理基础模型在每个初始卷积层对应的初始卷积通道的数量,以得到每个初始卷积层对应的候选卷积通道的数量。
其中的第二倍率有一个或多个。基于此,对于每个特征提取阶段,在初始卷积层对应的初始卷积通道的数量经过第二倍率的处理之后,可以得到分别对应于每个特征提取阶段中每个候选卷积层的一个或多个候选卷积通道的数量。例如,其中一个特征提取阶段的其中一个候选卷积层对应的一个候选卷积通道的数量为该特征提取阶段的其中一个初始卷积层对应的初始卷积通道的数量乘以其中一个第二倍率所得到的数值。
例如,基础模型中具有2个特征提取阶段,第一个特征提取阶段中的2个初始卷积层均有256个初始卷积通道,第二个特征提取阶段中的4个初始卷积层均有512个初始卷积层,第二倍率有4个:0.25、0.5、0.75和1,基于此,第一个特征提取阶段中每个候选卷积层对应有4个候选卷积通道的数量,分别为:64、128、192和256,第二个特权提取阶段中每个候选卷积层对应有4个候选卷积通道的数量,分别为128、256、384和512。
步骤S403:分别以预设的第三倍率处理基础模型在每个特征提取阶段对应的初始卷积核中的最大卷积核的尺寸,以得到每个特征提取阶段中每个候选卷积层对应的候选卷积核的尺寸。
其中的第三倍率有一个或多个。基于此,对于每个特征提取阶段,在初始卷积核中的最大卷积核的尺寸经过三倍率的处理之后,可以得到分别对应于每个特征提取阶段中每个候选卷积层的候选卷积核的尺寸。例如,其中一个特征提取阶段的其中一个候选卷积层对应的候选卷积核的尺寸为该特征提取阶段的初始卷积核中最大卷积核的尺寸乘以其中一个第三倍率所得到的尺寸值。
例如,基础模型中具有2个特征提取阶段,第一个特征提取阶段中的2个初始卷积层中的最大卷积核的尺寸为12*12,第二个特征提取阶段中的4个初始卷积层中的最大卷积核的尺寸为9*9,第三倍率有2个:0.5和1,基于此,第一个特征提取阶段中每个候选卷积层的候选卷积核尺寸可以为:6*6或者12*12,第二个特权提取阶段中每个候选卷积层的候选卷积核的尺寸可以为4*4或9*9。
需要说明的是,第一倍率、第二倍率和第三倍率之间可以相同或不同,具体的倍率数值可以根据需求设置。
步骤S404:根据基础模型在每个特征提取阶段对应的最大卷积核的卷积核参数,分别为每个特征提取阶段中每个候选卷积层对应的候选卷积核设置卷积核参数。
其中,候选卷积核的卷积核参数从核起始位置继承于其所在特征提取阶段对应的初始卷积核中的最大卷积核的卷积核参数。
也就是说,针对其中的每个特征提取阶段,将其对应的最大卷积核的起始位置参数提取为这个特征提取阶段各个候选卷积层的候选卷积核的卷积核参数。而提取到的起始位置参数对应的卷积核尺寸与对应的候选卷积核的尺寸相一致,也就是说,按照候选卷积核的尺寸,在同一特征提取阶段对应的最大卷积核中选取相同核位置上的卷积核参数,作为该候选卷积核的卷积核参数。即:候选卷积核的卷积核参数与最大卷积核的卷积核参数从核起始位置是共享的。
其中,卷积核参数可以包含有卷积核的步长、有效填充、权重系数以及偏差量等参数。
步骤S405:根据候选卷积层的数量、候选卷积通道的数量、候选卷积核的尺寸和候选卷积核的卷积核参数,获得多个候选构建策略。
具体实现中,分别针对每个特征提取阶段,可以对其对应的候选卷积层的数量、候选卷积通道的数量和候选卷积核的尺寸之间进行互相组合,以得到多个候选构建策略。而同一个特征提取阶段中,各个候选构建策略中的候选卷积核的卷积核参数在候选卷积核之间从核起始位置是共享的。不同的特征提取阶段之间,各个候选构建策略中的候选卷积核的卷积核参数是不相关的。
在一可选的实施例中,上述在构建出模型集合中的神经网络模型之后,可以对神经网络模型的模型参数再次进行训练,具体的训练流程图如图5中所示:
步骤S501:在模型集合中选择第一模型、第二模型和第三模型。
其中,第一模型、第二模型和第三模型在每个特征提取阶段上的卷积层数量、每个卷积层对应的卷积通道数量和每个卷积层对应的卷积核尺寸均不同。
例如,其中的第一模型为模型集合中在每个特征提取阶段上的卷积层数量最大、每个卷积层对应的卷积通道数量最大且每个卷积层对应的卷积核尺寸最大的神经网络模型,第二模型为模型集合中在每个特征提取阶段上卷积层数量最小、每个卷积层对应的卷积通道数量最小且每个卷积层对应的卷积核尺寸最小的神经网络模型,而第三模型在每个特征提取阶段上卷积层数量为模型集合中最大卷积层数量和最小卷积层数量之间的随机值,且第三模型在每个卷积层对应的卷积通道数量为模型集合中最大卷积通道数量和最小卷积通道数量之间的随机值,且第三模型在每个卷积层对应的卷积核尺寸为模型集合中最大卷积核尺寸和最小卷积核尺寸之间的随机值。
也就是说,对模型集合中的神经网络模型,先确定每个特征提取阶段上卷积层数量的最大值、卷积层数量的最小值、卷积通道数量的最大值、卷积通道数量的最小值、卷积核尺寸的最大值和卷积核尺寸的最小值,基于此,选择各项最大值对应的神经网络模型作为第一模型,选择各项最小值对应的神经网络模型为第二模型,选择最大值和最小值之间的随机中间值对应的神经网络模型作为第三模型。
步骤S502:将带有样本标签的样本图像,分别作为第一模型、第二模型和第三模型的输入图像,以得到第一模型的第一输出结果、第二模型的第二输出结果和第三模型的第三输出结果。
以模型集合中的神经网络模型为实现手部区域框和指尖点位置检测的检测模型,将一帧样本图像分别输入到第一模型、第二模型和第三模型,由此得到第一模型的第一输出结果、第二模型的第二输出结果和第三模型的第三输出结果,第一输出结果中包含第一手部区域框和第一指尖点位置,第二输出结果中包含第二手部区域框和第二指尖点位置,第三输出结果中包含第三手部区域框和第三指尖点位置。
步骤S503:判断样本标签、第一输出结果、第二输出结果和第三输出结果是否满足调整条件,在样本标签、第一输出结果、第二输出结果和第三输出结果满足调整条件的情况下,执行步骤S504,在样本标签、第一输出结果、第二输出结果和第三输出结果不满足调整条件的情况下,结束当前训练流程。
其中,调整条件可以为:样本标签、所述第一输出结果、所述第二输出结果和所述第三输出结果不满足收敛条件,如所述卷积核参数被调整的次数没有达到预设的迭代次数阈值,或者,第一输出结果、第二输出结果和第三输出结果与样本标签之间的损失函数值大于损失阈值。
具体实现中,将第一输出结果、第二输出结果和第三输出结果与样本标签之间的损失函数值进行计算,如果损失函数值大于或等于损失阈值或者迭代次数小于迭代次数阈值,那么可以确定调整条件被满足,此时,执行步骤S504,否则,可以确定训练完成,结束当前训练流程。
步骤S504:根据样本标签、第一输出结果、第二输出结果和第三输出结果,对所述第一模型、所述第二模型和所述第三模型对应的卷积核参数进行调整,返回执行所述步骤S501,以重新在所述模型集合中选择第一模型、第二模型和第三模型,直到所述样本标签、所述第一输出结果、所述第二输出结果和所述第三输出结果满足收敛条件,即不满足调整条件,如所述卷积核参数被调整的次数达到预设的迭代次数阈值,或者,第一输出结果、第二输出结果和第三输出结果与样本标签之间的损失函数值小于或等于损失阈值。
具体实现中,本实施例中可以根据第一输出结果、第二输出结果和第三输出结果与样本标签之间的损失函数值的大小,对第一模型、所述第二模型和所述第三模型中的权重和/或偏置等卷积核参数进行调整,之后,再返回步骤S501,以使用下一帧样本图像和样本标签再次对第一模型、所述第二模型和所述第三模型中的权重和/或偏置等卷积核参数进行调整,直到样本标签、所述第一输出结果、所述第二输出结果和所述第三输出结果满足收敛条件,训练结束。
在一可选的实施例中,以基础模型为实现手部区域框和指尖点位置检测的检测模型为例,样本图像的样本标签中包含有手部区域框的标签和指尖点位置的标签,而第一输出结果中包含第一手部区块框和第一指尖点位置,第二输出结果中包含第二手部区域框和第二指尖点位置,第三输出结果中包含第三手部区域框和第三指尖点位置,基于此,上述对所述第一模型、所述第二模型和所述第三模型对应的卷积核参数进行调整的一种实现流程图如图6中所示,可以包括:
步骤S601:使用蒸馏损失函数,获得所述第一输出结果相对于所述样本标签在所述手部区域框上的第一损失函数值和在所述指尖点位置上的第二损失函数值。
具体的,使用蒸馏损失函数分别获得第一手部区域框和手部区域框的标签之间的第一损失函数值和第一指尖点位置和指尖点位置的标签之间的第二损失函数值。
步骤S602:使用所述蒸馏损失函数,获得所述第二输出结果相对于所述第一输出结果在所述手部区域框上的第三损失函数值和在所述指尖点位置上的第四损失函数值;
具体的,使用蒸馏损失函数分别获得第二手部区域框和第一手部区域框之间的第三损失函数值和第二指尖点位置和第一指尖点位置之间的第四损失函数值。
步骤S603:使用所述蒸馏损失函数,获得所述第三输出结果相对于所述第一输出结果在所述手部区域框上的第五损失函数值和在所述指尖点位置上的第六损失函数值。
具体的,使用蒸馏损失函数分别获得第三手部区域框和第一手部区域框之间的第五损失函数值和第三指尖点位置和第一指尖点位置之间的第六损失函数值。
其中,步骤S601、步骤S602和步骤S603之间的执行顺序可以不受附图中执行顺序的限制,也可以先执行步骤S602或者先执行步骤S603,所形成的不同的技术方案均在本申请的保护范围内。
步骤S604:根据第一损失函数值、第二损失函数值、第三损失函数值、第四损失函数值、第五损失函数值和第六损失函数值,对第一模型、第二模型和第三模型对应的卷积核参数进行调整,以使得第二输出结果和第三输出结果分别与第一输出结果至少近似一致且第一输出结果与样本标签至少近似一致。
具体的,本实施例中同时进行如下处理:
使用第二手部区域框和第一手部区域框之间的第三损失函数值和第二指尖点位置和第一指尖点位置之间的第四损失函数值对第二模型中的卷积核参数进行调整,以使得第二输出结果中的第二手部区域框与第一输出结果中的第一手部区域框至少近似一致,且第二输出结果中的第二指尖点位置与第一输出结果中的第一指尖点位置至少近似一致;
使用第三手部区域框和第一手部区域框之间的第五损失函数值和第三指尖点位置和第一指尖点位置之间的第六损失函数值对第三模型中的卷积核参数进行调整,以使得第三输出结果中的第三手部区域框与第一输出结果中的第一手部区域框至少近似一致,且第三输出结果中的第三指尖点位置与第一输出结果中的第一指尖点位置至少近似一致;
使用第一手部区域框和手部区域框的标签之间的第一损失函数值和第一指尖点位置和指尖点位置的标签之间的第二损失函数值对第一模型中的卷积核参数进行调整,以使得第一输出结果中的第一手部区域框与手部区域框的标签至少近似一致,且第一输出结果中的第一指尖点位置与指尖点位置的标签至少近似一致。
也就是说,本实施例中通过蒸馏损失函数促使由第二模型和第三模型输出的指尖点位置相对于手部区域框中心的方向向量向第一模型输出的指尖点位置相对于手部区域框中心的方向向量靠拢,由此,在促进第二模型和第三模型的指尖点位置准确性的同时,也能协助手部区域框的定位准确率的提升。
在一可选的实施例中,以基础模型为能够对输入图像中的手部区域框和指尖点位置进行检测的检测模型为例,上述获得基础模型的一种实现流程图如图7所示,可以包括:
步骤S701:基于神经网络,构建初始的基础模型。
初始的基础模型中具有多个特征提取阶段,每个特征提取阶段对应于至少一个初始卷积层,每个初始卷积层对应有多个初始卷积通道,每个初始卷积层对应有初始卷积核。
以基础模型为实现手部区域框和指尖点位置检测的检测模型为例,以ResNet50为骨干网络构建初始的检测模型,所构建的初始检测模型中包含有分别按照4倍、8倍、16倍以及32倍下采样进行特征提取的阶段stage,在每个stage中对应有多个初始卷积层即Block,且每个Block均对应有多个初始卷积通道channel,如表1所示:
表1初始模型参数配置
步骤S702:使用带有样本标签的样本图像,对基础模型在每个初始卷积核的卷积核参数进行优化,以得到训练完成的基础模型。
其中,样本图像可以为较高分辨率的图像数据。
具体实现中,可以先将一帧样本图像输入到基础模型中,将基础模型的输出结果与样本标签进行比对,根据比对结果对基础模型在每个初始卷积核的卷积核参数如权重和/或偏置值等进行调整,以使得输出结果向样本标签靠近;再将下一帧样本图像输入到基础模型,再次根据基础模型的输出结果与样本标签之间的比对结果对基础模型在每个初始卷积核的卷积核参数进行调整,以此类推,直到基础模型的输出结果与样本标签之间的比对结果满足收敛条件或卷积核参数被调整的次数达到迭代次数阈值。
其中,这里的收敛条件可以为:基础模型的输出结果与样本标签之间的损失函数值小于或等于损失阈值。
基于此,以基础模型为实现手部区域框和指尖点位置检测的检测模型为例,在构建初始的检测模型之后,使用多组样本图像通过多次迭代对检测模型进行训练,使得检测模型在每个初始卷积核的卷积核参数能够使得检测模型的输出结果与样本图像的样本标签至少近似一致,由此,完成对检测模型的训练。
例如,如图8中所示的端到端的检测模型的架构,本申请中训练出的检测模型以ResNet50为骨干网络提取原始图像特征,再利用特征金字塔实现高层与低层特征的融合,最终在高分辨率特征图上完成手部区域框(手部包围框)的检测及指尖点位置的定位。可见,本申请中训练出的基础模型采用端到端的全卷积方式,能够同时检测输入图像中的手部区域框和指尖点位置,相对于两阶段的检测方案流程更加简单,因此实现检测的效率更高。
基于图8中所示的检测模型,本申请中构建超网络。例如,以图8中经过训练的检测模型为基础,通过拆解其不同阶段子模块(Block,即卷积层)的组合形式以及不同子模块通道(Channel)数构成超网络空间,即前文中的模型集合。由于基础模型的神经网络结构确定,基于其所构建的超网络空间得到大大的压缩,且由于各个子模块均来自同一基础模型,其模块间匹配度较高,因此大大降低效果较差的子网络组合所占的比例。
以ResNet50构建的检测模型为例完成超网络的构建,具体参数配置如下表2所示。其中,以ResNet50的Stage2为例,其原始由4个Res-Block组成,每个Block的通道数是512,则在超网络构建过程中,不同的子网络Stage2上对应的Block数可以为:1(即4*0.25)、2(即4*0.5)、3(即4*0.75)、4(即4*1.0)。不同的子网络Stage 2上对应的每个Block的通道(Channel)数量可以为:128(即512*0.25)、256(即512*0.5)、384(即512*0.75)、512(即512*1.0),因此Stage2共具有4*4即16种候选构建策略。其他的Stage与Stage2类似,最终所有Stage的候选构建策略互相组合构成所有的候选子网络,即模型集合中所包含的神经网络模型。其中,考虑到Stage1特征图较大,运算耗时较长,在原ResNet50候选Block、候选通道(Channel)的基础上添加MaxPool搜索项用于快速完成特征图分辨率的下采样,降低最小子网络的运算量下限。
表2超网络参数配置
基于以上超网络的构建方式,同一位置所有候选Block间仅存在卷积核大小及通道(channel)大小上的差异,本申请提出采用卷积核参数共享的方式实现不同子网络间参数的共享,具体方式如下图9所示。具体而言,对于当前Stage而言,首先构造最大卷积核:最大输出通道数×最大输入通道数×最大卷积核大小×最大卷积核大小(这里以方形卷积核为例),任何当前Stage的对应位置卷积核大小均不得大于上述范围,则当前子网络对应的卷积核:当前输出通道数×当前输入通道数×当前卷积核大小×当前卷积核大小,其卷积核参数直接取最大卷积核的卷积核参数的起始一部分,实现同一位置所有候选Block的卷积核参数与最大卷积核参数共享,从而大大减少超网络可优化参数量,降低模型训练存储消耗。更进一步的,由于参数间的高度耦合,最终使得超网络仅需较少的训练迭代次数就能实现充分优化,大大提升超网络训练效率。
基于以上构建的超网络,本申请中可以采用夹闭准则结合知识蒸馏的方式完成超网络的训练。具体而言,使用样本图像进行多次迭代训练,而在每个迭代步骤中,固定在超网络中采样最大子网络(Lteacher)与最小子网络(LKD)、同时随机采样一个中间大小的子网络(LKD)。这里的最大子网络是指Block、Channel以及卷积核尺寸均最大的子网络,最小子网络是指Block、Channel以及卷积核尺寸均最小的子网络。这种方式在保证不同子网络采样公平性的同时实现超网络上限与下限的联合优化,从而有效保证了超网络训练的完全性,降低采样不均衡带来的额外影响。
更进一步的,由于最大子网络即为原始的基础模型,其决定了不同子网络的效果上限,因此在每次采样训练时,采用最大子网络的输出对其余子网络进行知识蒸馏,使得不同子网络均能模拟最优优化目标,进一步稳定超网络训练过程,提升子网络效果的排序准确率,便于部署阶段快速搜索到最优子网络。更重要的是,本申请中以手部区域框检测及指尖点位置检测的检测模型为基础完成超网络训练,直接与最终检测任务相关联,搜索得到的最优子网络直接进行部署,大大提升整体效率。其整体超网络训练流程如图10中所示。
需要说明的是,由于检测模型有三个输出分支,如图10中所示,因此需针对不同分支单独进行蒸馏损失处理。其中,分类分支输出不同像素点是否为目标位置的后验概率,其本质上是一个分类任务,因此采用KL损失完成知识蒸馏。针对手部包围框定位分支,由于其输出手部区域框的位置,而蒸馏的目标是使得较小子网络向最大子网络靠拢,基于此,如图11中所示,本申请中通过如下公式(1)获得手部区域框的蒸馏损失通过该蒸馏损失来引导较小子网络学习最大子网络准确的手部区域框的定位信息。针对指尖关键点定位分支,由于手部区域框蒸馏损失已促使较小子网络输出的手部区域框向最大子网络输出的手部区域框靠拢,因此仅需促使较小子网络和最大自网络各自输出的指尖点位置接近即可。基于上述,如图12中所示,本申请中通过如下公式(2)获得指尖点位置的蒸馏损失该蒸馏损失促使由较小子网络输出的指尖点相对于手部区域框中心的方向向量向最大子网络输出的方向向量靠拢,在促进较小子网络的指尖点定位准确性的同时,也能协助手部区域框定位质量的提升。综合上述提出的蒸馏损失完成超网络的训练,提升子网络评估质量。
在以上超网络经过构建以及训练之后,可以提供给边缘设备进行部署。例如,给定最终训练得到的超网络参数及边缘设备算力要求(参数量或浮点运算量),采用进化算法完成满足硬件要求的最优子网络搜索。
具体流程如下:
1、在满足硬件算力要求的前提下随机挑选部分子网络构成原始种群,即前文中的初始集合;
2、种群中的子网络中卷积核参数直接继承超网络中的最大卷积核的卷积核参数,实现种群中子网络性能的评估;
3、挑选当前种群效果最优(检测准确率较高)的前K个子网络构成当前最优子网络群,在满足硬件算力的前提下在当前最优子网络群中以一定概率进行子网络的突变与子网络间的交叉,从而生成新的子网络;
4、将突变与交叉得到的子网络并入当前最优子网络群构成更新后的种群;
5、重复以上步骤2、3、4,直到达到最大迭代次数,得到最终种群;
6、挑选最终种群中的效果最优子网络作为最终部署模型,即前文中的目标模型。由于每次迭代均是挑选当前种群最优的前K个子网络进行突变和交叉得到进化后的种群,因此大大缩减了子网络搜索时间。
总体而言,本申请基于以上实现,提出面向低功耗边缘设备的手部区域框检测及指尖点定位的检测模型的神经网络结构搜索方案,其中分为超网络训练以及模型部署两个阶段。具体的详细步骤如下:
一、超网络训练,整体流程如图13所示:
第一步、基础网络构建:
给定当前手部区域框检测与指尖点定位任务(其他任务也可以)要求之后,采用ResNet50(其他基础网络均可)为特征提取网络,以提取的图像特征为基础上同时完成手部区域框检测及指尖点定位。训练阶段,结合原始图像中人工标注的手部区域与指尖点位置的标签,采用交叉熵损失函数实现手部区域框中心点的分类训练,采用Smooth L1损失函数实现手部区域框大小及指尖点位置的回归训练。测试阶段,综合检测模型输出的手部区域中心点、手部区域框大小、指尖点回归结果实现手部区域框检测及指尖点定位,并评测基础模型效果,确保达到落地的效果要求。
第二步、超网络构建:
在第一步构建的原始网络(即检测模型)的基础上,以上一节中表述的超网络构建参数为依据,并结合相同位置Block卷积参数共享技术实现超网络的构建。注意:以第一步训练得到的基础网络的卷积核参数作为超网络中各个子模块的初始化卷积核参数。
第三步、超网络训练:
如前文表述,采用夹闭准则每次同时训练固定结构的最大、最小子网络以及随机采样的中间大小子网络。注意:仅最大子网络利用原始图像的标注信息计算优化损失,另外两个子网络仅采用最大网络的预测作为标签计算蒸馏损失,其中手部中心点分类蒸馏损失采用KL损失,手部区域框大小及指尖点位置的回归仍采用Smooth L1作为蒸馏损失。当训练的整体损失不再下降或达到最大迭代次数时,停止超网络训练,保存超网络训练得到的优化参数作为模型部署阶段使用。
二、模型部署阶段,整体流程如图14所示:
第一步、子网络搜索:
在给定边缘设备算力要求的提前下,利用前文所述的进化算法完成超网络搜索空间中最优子网络的搜索。注意,在搜索过程中各个子网络的模型参数均直接继承于训练得到的超网络,无需再对每个子网络进行训练,因此搜索效率大大提高。
第二步、最优子网络参数提取:
以第一步搜索得到的最优子网络结构为基础,直接在超网络中提取该结构的模型参数。得益于本申请中对超网络的充分训练,且整个流程直接在实际部署任务上完成,因此继承超网络参数的最优子网络无需重新训练即可满足边缘设备的效率、效果需求。
第三步、边缘设备模型部署:
完成最优子网络在端上设备的正确部署,满足业务方对效率、效果的需求。更重要的是,本申请在面对不同边缘设备算力要求时(多种不同类型的边缘设备)也无需再对超网络进行重新训练,可直接根据不同边缘设备的算力要求搜索最优子网络结构进行部署(即仅需重复模型部署阶段),真正做到满足不同部署要求的最优子网络间的参数共享,大大缩减模型效率优化的耗时,提升模型上线效率。
由此可见,本申请以提出的端到端手部区域框检测及指尖点位置定位的检测模型为基础,提出一种面向低功耗边缘设备模型部署的神经网络结构搜索方案,能同时完成超网络的构建及快速训练、子网络模型效果的准确排序、高效的参数共享及内存利用。更重要的是,由于不同子网络与超网络之间完全参数共享,因此本申请的超网络只需一次训练即可实现在不同边缘设备的快速部署,从而大大降低模型部署期间效率优化所耗费的时间,促使更多人工智能技术的有效落地。
综上,通过本申请提出的超网络训练及模型部署流程,能够在提升内存使用率的同时大大提升超网络的优化效率,使得超网络得到充分训练,最终实现对不同子网络模型效果的正确评判。而且,本申请中能够真正做到一次超网络训练,不同端上设备模型部署时参数的共用(即每次实际部署仅需重复模型部署阶段),大大节省模型优化耗时,提升模型上线效率。
与方法实施例相对应,本申请实施例还提供一种神经网络模型的部署装置,本申请实施例提供的神经网络模型的部署装置的一种结构示意图如图15所示,可以包括:
信息获得模块1501,模型获得模块1502和模型部署模块1503;其中,
信息获得模块1501,用于获得电子设备的当前算力信息;
模型获得模块1502,用于至少根据包含多个神经网络模型的模型集合,获得与所述当前算力信息相匹配的目标模型;其中,所述模型集合中的神经网络模型的卷积核参数预先经过训练得到;
模型部署模块1503,用于将所述目标模型部署在所述电子设备上。
本申请实施例提供的神经网络模型的部署装置,根据电子设备的当前算力信息为电子设备部署卷积核参数预先经过训练的神经网络模型,由此在将神经网络模型部署到电子设备之后,无需重新对部署的神经网络模型进行训练,由此通过缩短部署流程达到提高部署效率的目的。
在一可选的实施例中,模型获得模块1502可以包括:
集合筛选模块,用于在包含多个神经网络模型的模型集合中,筛选出初始集合,所述初始集合中包含有至少一个运算能力参数匹配所述当前算力信息的神经网络模型;
模型处理模块,用于对所述初始集合中的神经网络模型进行至少一次迭代处理,以得到与所述当前算力信息相匹配的目标模型;
其中,一次所述迭代处理包括:对模型准确率满足筛选条件的神经网络模型的模型参数中的至少部分参数进行突变和/或交叉处理,以得到新的神经网络模型,以及,对所述新的神经网络模型按照所述当前算力信息进行筛选。
在一可选的实施例中,还包括:集合构建模块;
集合构建模块,包括:
基础获得模块,用于获得基于神经网络构建的基础模型,所述基础模型具有多个特征提取阶段,每个所述特征提取阶段对应于至少一个初始卷积层,每个所述初始卷积层对应于多个初始卷积通道,每个所述初始卷积层对应有多个初始卷积核,所述初始卷积核的卷积核参数经过训练得到;
策略获得模块,用于根据所述基础模型在每个所述特征提取阶段对应的初始卷积层、初始卷积通道和初始卷积核,获得多个候选构建策略,所述候选构建策略包含每个所述特征提取阶段对应的候选卷积层的数量、每个所述候选卷积层对应的候选卷积通道的数量、每个所述候选卷积层对应的候选卷积核的尺寸和每个所述候选卷积核的卷积核参数;
模型构建模块,用于根据所述候选构建策略,构建对应的神经网络模型,以得到包含多个神经网络模型的模型集合;
其中,所述神经网路模型的特征提取阶段与所述基础模型的特征提取阶段相对应,所述神经网络模型在每个所述特征提取阶段对应的卷积层的数量与所述候选构建策略中的候选卷积层的数量一致,所述神经网络模型在每个所述卷积层对应的卷积通道的数量与所述候选构建策略中在相应候选卷积层对应的候选卷积通道的数量一致,所述神经网络模型在每个所述卷积层对应的卷积核的尺寸与所述候选构建策略中相应候选卷积层对应的候选卷积核的尺寸一致,所述神经网络模型在每个所述卷积层对应的卷积核的卷积核参数与所述候选构建策略中相应候选卷积层对应的候选卷积核的卷积核参数一致。
在一可选的实施例中,策略获得模块包括:
卷积层处理模块,用于分别以预设的第一倍率处理所述基础模型在每个所述特征提取阶段对应的初始卷积层的数量,以得到每个所述特征提取阶段上对应的候选卷积层的数量,所述第一倍率有一个或多个;
卷积通道处理模块,用于分别以预设的第二倍率处理所述基础模型在每个所述初始卷积层上对应的初始卷积通道的数量,以得到每个所述初始卷积层对应的候选卷积层对应的候选卷积通道的数量,所述第二倍率有一个或多个;
卷积核处理模块,用于分别以预设的第三倍率处理所述基础模型在每个所述特征提取阶段对应的初始卷积核中的最大卷积核的尺寸,以得到每个所述特征提取阶段中每个所述候选卷积层对应的候选卷积核的尺寸,所述第三倍率有一个或多个;
参数处理模块,用于根据所述基础模型在每个所述特征提取阶段对应的最大卷积核的卷积核参数,分别为每个所述特征提取阶段中每个候选卷积层对应的候选卷积核设置卷积核参数,其中,所述候选卷积核的卷积核参数从核起始位置继承于其所在特征提取阶段对应的初始卷积核中的最大卷积核的卷积核参数;
候选获得模块,用于根据所述候选卷积层的数量、所述候选卷积通道的数量、所述候选卷积核的尺寸和所述候选卷积核的卷积核参数,获得多个候选构建策略。
在一可选的实施例中,集合构建模块还包括:
模型选择模块,用于在所述模型集合中选择第一模型、第二模型和第三模型,所述第一模型、所述第二模型和所述第三模型在每个特征提取阶段上的卷积层数量、每个所述卷积层对应的卷积通道数量和每个所述卷积层对应的卷积核尺寸均不同;例如,所述第一模型为所述模型集合中在每个所述特征提取阶段上的卷积层数量最大、每个所述卷积层对应的卷积通道数量最大且每个所述卷积层对应的卷积核尺寸最大的神经网络模型,所述第二模型为所述模型集合中在每个所述特征提取阶段上卷积层数量最小、每个所述卷积层对应的卷积通道数量最小且每个所述卷积层对应的卷积核尺寸最小的神经网络模型,所述第三模型在每个所述特征提取阶段上卷积层数量为所述模型集合中最大卷积层数量和最小卷积层数量之间的随机值,所述第三模型在每个所述卷积层对应的卷积通道数量为所述模型集合中最大卷积通道数量和最小卷积通道数量之间的随机值,所述第三模型在每个所述卷积层对应的卷积核尺寸为所述模型集合中最大卷积核尺寸和最小卷积核尺寸之间的随机值;
模型运行模块,用于将带有样本标签的样本图像,分别作为所述第一模型、所述第二模型和所述第三模型的输入图像,以得到所述第一模型的第一输出结果、所述第二模型的第二输出结果和所述第三模型的第三输出结果;在所述样本标签、所述第一输出结果、所述第二输出结果和所述第三输出结果满足调整条件的情况下,触发参数调整模块;
参数调整模块,用于根据所述样本标签、所述第一输出结果、所述第二输出结果和所述第三输出结果,对所述第一模型、所述第二模型和所述第三模型对应的卷积核参数进行调整,返回重新触发模型选择模块,以在所述模型集合中选择第一模型、第二模型和第三模型,直到所述样本标签、所述第一输出结果、所述第二输出结果和所述第三输出结果满足收敛条件。
在一可选的实施例中,所述样本标签包含:手部区域框的标签和指尖点位置的标签;
其中,参数调整模块,包括:
损失获得模块,用于使用蒸馏损失函数,获得所述第一输出结果相对于所述样本标签在所述手部区域框上的第一损失函数值和在所述指尖点位置上的第二损失函数值;使用所述蒸馏损失函数,获得所述第二输出结果相对于所述第一输出结果在所述手部区域框上的第三损失函数值和在所述指尖点位置上的第四损失函数值;使用所述蒸馏损失函数,获得所述第三输出结果相对于所述第一输出结果在所述手部区域框上的第五损失函数值和在所述指尖点位置上的第六损失函数值;
卷积调整模块,用于根据所述第一损失函数值、所述第二损失函数值、所述第三损失函数值、所述第四损失函数值、所述第五损失函数值和所述第六损失函数值,对所述第一模型、所述第二模型和所述第三模型对应的卷积核参数进行调整,以使得所述第二输出结果和所述第三输出结果分别与所述第一输出结果至少近似一致且所述第一输出结果与所述样本标签至少近似一致。
在一可选的实施例中,基础获得模块,包括:
模型初建模块,用于基于神经网络,构建初始的基础模型;所述基础模型具有多个特征提取阶段,每个所述特征提取阶段对应于至少一个卷积层,每个所述卷积层对应有多个卷积通道,每个所述卷积层对应有卷积核;
参数优化模块,用于使用带有样本标签的样本图像,对所述基础模型在每个所述卷积层对应的卷积核参数进行优化,以得到训练完成的基础模型,所述基础模型能够对输入图像中的手部区域框和指尖点位置进行检测。
在一可选的实施例中,还包括:模型运行模块,用于将目标图像输入到所述目标模型中,以通过所述目标模型对所述目标图像中的手部区域框和指尖点位置进行检测。
需要说明的是,本实施例中各模块的具体实现可以参考前文中的相应内容,此处不再详述。
本申请实施例提供的神经网络模型的部署装置可应用于神经网络模型的部署设备,如手机、pad、PC终端、云平台、服务器及服务器集群等。可选的,图16示出了神经网络模型的部署设备的硬件结构框图,参照图16,神经网络模型的部署设备的硬件结构可以包括:至少一个处理器1,至少一个通信接口2,至少一个存储器3和至少一个通信总线4;
在本申请实施例中,处理器1、通信接口2、存储器3、通信总线4的数量为至少一个,且处理器1、通信接口2、存储器3通过通信总线4完成相互间的通信;
处理器1可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路等;
存储器3可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory)等,例如至少一个磁盘存储器;
其中,存储器存储有程序,处理器可调用存储器存储的程序,所述程序用于:
获得电子设备的当前算力信息;
至少根据包含多个神经网络模型的模型集合,获得与所述当前算力信息相匹配的目标模型;其中,所述模型集合中的神经网络模型的卷积核参数预先经过训练得到;
将所述目标模型部署在所述电子设备上。
可选的,所述程序的细化功能和扩展功能可参照上文描述。
本申请实施例还提供一种存储介质,该存储介质可存储有适于处理器执行的程序,所述程序用于:
获得电子设备的当前算力信息;
至少根据包含多个神经网络模型的模型集合,获得与所述当前算力信息相匹配的目标模型;其中,所述模型集合中的神经网络模型的卷积核参数预先经过训练得到;
将所述目标模型部署在所述电子设备上。
可选的,所述程序的细化功能和扩展功能可参照上文描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (11)
1.一种神经网络模型的部署方法,其特征在于,包括:
获得电子设备的当前算力信息;
至少根据包含多个神经网络模型的模型集合,获得与所述当前算力信息相匹配的目标模型;其中,所述模型集合中的神经网络模型的卷积核参数预先经过训练得到;
将所述目标模型部署在所述电子设备上。
2.根据权利要求1所述的方法,其特征在于,至少根据包含多个神经网络模型的模型集合,获得与所述当前算力信息相匹配的目标模型,包括:
在包含多个神经网络模型的模型集合中,筛选出初始集合,所述初始集合中包含有至少一个运算能力参数匹配所述当前算力信息的神经网络模型;
对所述初始集合中的神经网络模型进行至少一次迭代处理,以得到与所述当前算力信息相匹配的目标模型。
3.根据权利要求1或2所述的方法,其特征在于,所述模型集合中的神经网络模型通过以下方式进行构建:
获得基于神经网络构建的基础模型;
根据所述基础模型在每个特征提取阶段对应的初始卷积层、初始卷积通道和初始卷积核,获得多个候选构建策略;
根据所述候选构建策略,构建对应的神经网络模型,以得到包含多个神经网络模型的模型集合。
4.根据权利要求3所述的方法,其特征在于,根据所述基础模型在每个特征提取阶段对应的初始卷积层、初始卷积通道和初始卷积核,获得多个候选构建策略,包括:
分别预设的第一倍率处理所述基础模型在每个所述特征提取阶段对应的初始卷积层的数量,以得到每个所述特征提取阶段上对应的候选卷积层的数量;
分别以预设的第二倍率处理所述基础模型在每个所述初始卷积层上对应的初始卷积通道的数量,以得到每个所述初始卷积层对应的候选卷积层对应的候选卷积通道的数量;
分别以预设的第三倍率处理所述基础模型在每个所述特征提取阶段对应的初始卷积核中的最大卷积核的尺寸,以得到每个所述特征提取阶段中每个所述候选卷积层对应的候选卷积核的尺寸;
根据所述基础模型在每个所述特征提取阶段对应的最大卷积核的卷积核参数,分别为每个所述特征提取阶段中每个候选卷积层对应的候选卷积核设置卷积核参数,其中,所述候选卷积核的卷积核参数从核起始位置继承于其所在特征提取阶段对应的初始卷积核中的最大卷积核的卷积核参数;
根据所述候选卷积层的数量、所述候选卷积通道的数量、所述候选卷积核的尺寸和所述候选卷积核的卷积核参数,获得多个候选构建策略。
5.根据权利要求1所述的方法,其特征在于,所述模型集合中的神经网络模型通过以下方式进行训练:
在所述模型集合中选择第一模型、第二模型和第三模型,所述第一模型、所述第二模型和所述第三模型在每个特征提取阶段上的卷积层数量、每个所述卷积层对应的卷积通道数量和每个所述卷积层对应的卷积核尺寸均不同;;
将带有样本标签的样本图像,分别作为所述第一模型、所述第二模型和所述第三模型的输入图像,以得到所述第一模型的第一输出结果、所述第二模型的第二输出结果和所述第三模型的第三输出结果;
在所述样本标签、所述第一输出结果、所述第二输出结果和所述第三输出结果满足调整条件的情况下,根据所述样本标签、所述第一输出结果、所述第二输出结果和所述第三输出结果,对所述第一模型、所述第二模型和所述第三模型对应的卷积核参数进行调整,返回执行所述步骤:在所述模型集合中选择第一模型、第二模型和第三模型,直到所述样本标签、所述第一输出结果、所述第二输出结果和所述第三输出结果满足收敛条件。
6.根据权利要求5所述的方法,其特征在于,所述样本标签包含:手部区域框的标签和指尖点位置的标签;
其中,根据所述样本标签、所述第一输出结果、所述第二输出结果和所述第三输出结果,对所述第一模型、所述第二模型和所述第三模型对应的卷积核参数进行调整,包括:
使用蒸馏损失函数,获得所述第一输出结果相对于所述样本标签在所述手部区域框上的第一损失函数值和在所述指尖点位置上的第二损失函数值;
使用所述蒸馏损失函数,获得所述第二输出结果相对于所述第一输出结果在所述手部区域框上的第三损失函数值和在所述指尖点位置上的第四损失函数值;
使用所述蒸馏损失函数,获得所述第三输出结果相对于所述第一输出结果在所述手部区域框上的第五损失函数值和在所述指尖点位置上的第六损失函数值;
根据所述第一损失函数值、所述第二损失函数值、所述第三损失函数值、所述第四损失函数值、所述第五损失函数值和所述第六损失函数值,对所述第一模型、所述第二模型和所述第三模型对应的卷积核参数进行调整,以使得所述第二输出结果和所述第三输出结果分别与所述第一输出结果至少近似一致且所述第一输出结果与所述样本标签至少近似一致。
7.根据权利要求3所述的方法,其特征在于,获得基于神经网络构建的基础模型,包括:
基于神经网络,构建初始的基础模型;所述基础模型具有多个特征提取阶段,每个所述特征提取阶段对应于至少一个卷积层,每个所述卷积层对应有多个卷积通道,每个所述卷积层对应有卷积核;
使用带有样本标签的样本图像,对所述基础模型在每个所述卷积层对应的卷积核参数进行优化,以得到训练完成的基础模型,所述基础模型能够对输入图像中的手部区域框和指尖点位置进行检测。
8.根据权利要求1所述的方法,所述方法还包括:
将目标图像输入到所述目标模型中,以通过所述目标模型对所述目标图像中的手部区域框和指尖点位置进行检测。
9.一种神经网络模型的部署装置,其特征在于,包括:
信息获得模块,用于获得电子设备的当前算力信息;
模型获得模块,用于至少根据包含多个神经网络模型的模型集合,获得与所述当前算力信息相匹配的目标模型;其中,所述模型集合中的神经网络模型的卷积核参数预先经过训练得到;
模型部署模块,用于将所述目标模型部署在所述电子设备上。
10.一种神经网络模型的部署设备,其特征在于,包括存储器和处理器;
所述存储器,用于存储程序;
所述处理器,用于执行所述程序,实现如权利要求1-8中任一项所述的神经网络模型的部署方法的各个步骤。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1-8中任一项所述的神经网络模型的部署方法的各个步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111660692.9A CN114330692A (zh) | 2021-12-30 | 2021-12-30 | 神经网络模型的部署方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111660692.9A CN114330692A (zh) | 2021-12-30 | 2021-12-30 | 神经网络模型的部署方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114330692A true CN114330692A (zh) | 2022-04-12 |
Family
ID=81018532
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111660692.9A Pending CN114330692A (zh) | 2021-12-30 | 2021-12-30 | 神经网络模型的部署方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114330692A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114781640A (zh) * | 2022-06-16 | 2022-07-22 | 阿里巴巴达摩院(杭州)科技有限公司 | 模型部署方法、系统、存储介质以及电子设备 |
CN114880995A (zh) * | 2022-06-30 | 2022-08-09 | 浙江大华技术股份有限公司 | 算法方案部署方法及相关装置、设备和存储介质 |
CN115034368A (zh) * | 2022-06-10 | 2022-09-09 | 小米汽车科技有限公司 | 车载模型训练方法、装置、电子设备、存储介质及芯片 |
CN115081628A (zh) * | 2022-08-15 | 2022-09-20 | 浙江大华技术股份有限公司 | 一种深度学习模型适配度的确定方法及装置 |
CN115600653A (zh) * | 2022-12-07 | 2023-01-13 | 荣耀终端有限公司(Cn) | 神经网络模型的部署方法及装置 |
CN116630632A (zh) * | 2023-07-25 | 2023-08-22 | 腾讯科技(深圳)有限公司 | 图像分割模型的量化方法、装置和设备及计算机存储介质 |
WO2024040941A1 (zh) * | 2022-08-25 | 2024-02-29 | 华为云计算技术有限公司 | 神经网络结构搜索方法、装置及存储介质 |
-
2021
- 2021-12-30 CN CN202111660692.9A patent/CN114330692A/zh active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115034368A (zh) * | 2022-06-10 | 2022-09-09 | 小米汽车科技有限公司 | 车载模型训练方法、装置、电子设备、存储介质及芯片 |
CN115034368B (zh) * | 2022-06-10 | 2023-09-29 | 小米汽车科技有限公司 | 车载模型训练方法、装置、电子设备、存储介质及芯片 |
CN114781640A (zh) * | 2022-06-16 | 2022-07-22 | 阿里巴巴达摩院(杭州)科技有限公司 | 模型部署方法、系统、存储介质以及电子设备 |
CN114781640B (zh) * | 2022-06-16 | 2022-09-27 | 阿里巴巴达摩院(杭州)科技有限公司 | 模型部署方法、系统、存储介质以及电子设备 |
CN114880995A (zh) * | 2022-06-30 | 2022-08-09 | 浙江大华技术股份有限公司 | 算法方案部署方法及相关装置、设备和存储介质 |
CN115081628A (zh) * | 2022-08-15 | 2022-09-20 | 浙江大华技术股份有限公司 | 一种深度学习模型适配度的确定方法及装置 |
WO2024040941A1 (zh) * | 2022-08-25 | 2024-02-29 | 华为云计算技术有限公司 | 神经网络结构搜索方法、装置及存储介质 |
CN115600653A (zh) * | 2022-12-07 | 2023-01-13 | 荣耀终端有限公司(Cn) | 神经网络模型的部署方法及装置 |
CN116630632A (zh) * | 2023-07-25 | 2023-08-22 | 腾讯科技(深圳)有限公司 | 图像分割模型的量化方法、装置和设备及计算机存储介质 |
CN116630632B (zh) * | 2023-07-25 | 2023-11-03 | 腾讯科技(深圳)有限公司 | 图像分割模型的量化方法、装置和设备及计算机存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114330692A (zh) | 神经网络模型的部署方法、装置、设备及存储介质 | |
CN110163234B (zh) | 一种模型训练方法、装置和存储介质 | |
EP3711000B1 (en) | Regularized neural network architecture search | |
CN109948478B (zh) | 基于神经网络的大规模非均衡数据的人脸识别方法、系统 | |
EP3882820A1 (en) | Node classification method, model training method, device, apparatus, and storage medium | |
US11675795B2 (en) | Method and system for ranking search content | |
CN106530305A (zh) | 语义分割模型训练和图像分割方法及装置、计算设备 | |
CN108701210A (zh) | 用于cnn网络适配和对象在线追踪的方法和系统 | |
CN108334910B (zh) | 一种事件检测模型训练方法以及事件检测方法 | |
CN111047563B (zh) | 一种应用于医学超声图像的神经网络构建方法 | |
CN110096617B (zh) | 视频分类方法、装置、电子设备及计算机可读存储介质 | |
CN114821605B (zh) | 一种文本的处理方法、装置、设备和介质 | |
CN109829162A (zh) | 一种文本分词方法及装置 | |
CN106100922B (zh) | 列车通信网络的网络流量的预测方法和装置 | |
CN112199600A (zh) | 目标对象识别方法和装置 | |
CN113011471A (zh) | 一种社交群体的划分方法、划分系统及相关装置 | |
CN113936298A (zh) | 一种特征识别方法及装置、计算机可读存储介质 | |
CN114492601A (zh) | 资源分类模型的训练方法、装置、电子设备及存储介质 | |
CN114373092A (zh) | 一种基于拼图排列学习的渐进式训练细粒度视觉分类方法 | |
CN110135428A (zh) | 图像分割处理方法和装置 | |
CN108596120A (zh) | 一种基于深度学习的目标检测方法和装置 | |
CN113591892A (zh) | 一种训练数据的处理方法及装置 | |
KR20120079630A (ko) | 멀티 모달리티 데이터 색인 및 검색 방법, 그 시스템 | |
CN116822927A (zh) | 一种业务流程优化方法、装置及存储介质 | |
CN112214677A (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 |