一种基于任务复杂度的高能效目标检测任务动态调度方法

文档序号:26003926发布日期:2021-07-23 21:21阅读:115来源:国知局
一种基于任务复杂度的高能效目标检测任务动态调度方法

本发明属于计算机技术领域,特别涉及一种基于任务复杂度的高能效目标检测任务动态调度方法。



背景技术:

大多数基于cnn的目标检测模型仅适用于推荐系统。例如,通过慢速精确模型执行通过城市摄像机搜索空闲停车位的过程,而汽车碰撞警告则与快速不精确模型有关。提高实时目标检测模型的准确性,不仅可以将它们用于提示生成推荐系统,还可以用于独立的流程管理和减少人工输入。常规图形处理单元(gpu)上的实时对象检测器操作允许它们以可承受的价格进行大量使用。最精确的现代神经网络不能实时运行,并且需要大量的gpu来进行大批量的训练。更进一步的精度需求催生了更大更深的目标检测模型。然而在移动端部署大规模的目标检测模型不仅在时间上的开销很大,而且在能耗上的开销很大。近些年来有很多针对深度目标检测模型的改进被提出,然而这些模型相比于计算能力弱小的移动设备依然是庞然大物。

近年来,针对移动端设计的轻量级神经网络越来越受欢迎,设计深度神经网络架构以在精度和效率之间取得最佳折衷一直是一个活跃的研究领域。新颖的手工结构和算法神经体系结构搜索在推进该领域方面都发挥了重要作用。通过这些设计技术,一些针对移动平台所设计的轻量级的神经网络发挥了巨大的作用。然而相比于深度神经网络,这些轻量级的神经网络在精度上难以令人满意。此外,这些神经网络不能保证针对任何移动端的架构都能达到最优的结果。

因此需要一种在保持精度的同时即能够适用于任何移动平台,又能降低移动端的推理代价的方法。



技术实现要素:

为克服上述现有技术的不足,本发明的目的在于提供一种基于任务复杂度的高能效目标检测任务动态调度方法,具有能在维持精度的同时降低移动平台能耗的优点。

为实现上述目的,本发明提供了如下技术方案:

一种基于任务复杂度的高能效目标检测任务动态调度方法,当用户提交一个目标检测任务时,根据当前用户所处的状态以及任务的复杂度,选择出合适的任务卸载策略,其特征在于,包括以下步骤:

步骤s1,利用opencv库获取用户所提交的任务的复杂度cx,并通过任务的复杂度,给出所支持的第i个目标检测模型对用户所提交的任务的预测能力ci,利用预测能力与任务的复杂度,获取出模型对任务的预计分数si;

步骤s2,利用当前移动端的网络状况,通过对网络状态进行建模,分别计算出将任务卸载到不同的服务器端cloudi所产生的通信时长以及通信能耗

步骤s3,计算在不同的平台上运行不同模型所需要的计算能耗ei以及计算时间ti,并根据用户的不同需求产生不同的权重,产生最终在不同平台上不同模型对任务的加权得分其中α,β,γ是根据用户设置调整的权重数值,f是relu函数,f是sigmoid函数,g是以自然常数为底的对数函数,预计分数si通过步骤s1得出,通信时长与通信能耗通过步骤s2得出,计算能耗ei与时长ti通过本步骤计算出,最终选择加权得分最大的策略作为最终策略。

所述步骤s1又包括以下步骤:

步骤s11,在本地平台利用opencv库分别获取用户所提交的任务的统计特征fi,并且利用所获取得到的不同的统计特征,使用神经网络对这些统计特征进行建模,计算出所提交任务的复杂度cx;

步骤s12,在本地获取云端平台所支持的所有模型的预测能力,利用构建好的神经网络模型计算出某个模型对用户提交任务的预测能力ci;

步骤s13,通过计算模型的复杂度等基本属性与预测能力的加权值,获取模型对任务的预计分数si。

所述步骤s11中,默认情况下,使用多层全连接神经网络进行建模。

所述步骤s2又包括以下步骤:

步骤s21,通过使用c/c++语言读取手机端的设备信息文件,获取手机当前与传输有关的一些硬件信息;

步骤s22,利用事先获取到的一些固定点的传输时间与传输能耗,对步骤s21中获取到的信息进行线性预测,计算出所产生的通信时长以及通信能耗

所述步骤s21中,默认情况下,一些硬件信息包括当前的电压状态、当前的网速、手机的最大带宽。

所述步骤s3包括以下步骤:

步骤s31,根据用户不同的设置策略,选择一组固定的权重组合α,β,γ,在用户偏向某种需求,则增大这种需求对应的权重;

步骤s32,计算在不同的平台上运行不同模型所需要的能耗ei以及时间ti,并且根据步骤s13、步骤s22以及本步骤的数据,生成加权得分;

步骤s33,对步骤s32产生的所有加权得分进行排序,选择加权分最大的成为最终的选择策略。

所述步骤s31中,默认情况下,权重组合需要满足α+β+γ=1。

所述步骤s32中,默认情况下通过以自然常数为底的指数函数产生加权得分。

本发明的有益效果是:

本发明提供的一种基于任务复杂度的高能效目标检测任务动态调度方法,针对在移动端计算能力不足的场合下,用户可能提出的目标检测需求会对自身移动平台造成大量的计算与能耗压力的背景下,设计了一种利用云端对深度神经网络的计算任务进行卸载的调度方式。

本发明提出的调度策略通过对用户需求、任务复杂度、当前移动端所处的状态等多方面的因素进行综合考虑,可以在用户具有目标检测任务需求时,尽可能降低对移动平台带来的计算压力,从而大幅提升用户体验。同时在降低移动平台的计算压力的同时,也能在最大程度上降低移动端的能耗。

附图说明

图1为本发明的使用情景示意图。

图2为本发明的工作流程示意图。

具体实施方式

下面结合附图对本发明的作进一步的详细说明,但是本发明不局限于以下实施例。

实施例1

如图1所示的本发明的使用情景示意图,本发明提供的一种基于任务复杂度的高能效目标检测任务动态调度方法,针对在移动端计算能力不足的场合下,用户可能提出的目标检测需求会对自身移动平台造成大量的计算与能耗压力的背景下,设计了一种利用云端对深度神经网络的计算任务进行卸载的调度方式。通过对用户需求、任务复杂度、当前移动端所处的状态等多方面的因素进行综合考虑,可以在用户具有目标检测任务需求时,尽可能降低对移动平台带来的计算压力,从而在大幅提升用户体验的同时降低计算带来的能耗。

如图2所示的本发明的工作流程示意图,用户提交任务后,首先获取用户的移动平台的一些硬件信息,例如网速、电量等;接下来获取一些用户设定的配置信息,例如最低等待时间等;最后通过这些信息来对应该部署的硬件平台以及模型进行选择,并给出最佳的选择策略。

参照图1、图2,一种基于任务复杂度的高能效目标检测任务动态调度方法,当用户提交一个目标检测任务时,根据当前用户所处的状态以及任务的复杂度,选择出合适的任务卸载策略,具体包括以下步骤:

步骤s1,利用opencv库获取用户所提交的任务的复杂度cx,并通过任务的复杂度,给出所支持的第i个目标检测模型对用户所提交的任务的预测能力ci,利用预测能力与任务的复杂度,获取出模型对任务的预计分数si。

步骤s2,利用当前移动端的网络状况,通过对网络状态进行建模,分别计算出将任务卸载到不同的服务器端cloudi所产生的通信时长以及通信能耗

步骤s3,计算在不同的平台上运行不同模型所需要的计算能耗ei以及计算时间ti,并根据用户的不同需求产生不同的权重,产生最终在不同平台上不同模型对任务的加权得分其中α,β,γ是根据用户设置调整的权重数值,f是relu函数,f是sigmoid函数,g是以自然常数为底的对数函数,预计分数si通过步骤s1得出,通信时长与通信能耗通过步骤s2得出,计算能耗ei与时长ti通过本步骤计算出,最终选择加权得分最大的策略作为最终策略。

所述步骤s1包括以下步骤:

步骤s11,在本地平台利用opencv库分别获取用户所提交的任务的统计特征fi,并且利用所获取得到的不同的统计特征,使用神经网络对这些统计特征进行建模,计算出所提交任务的复杂度cx;

默认情况下,使用多层全连接神经网络进行建模;

步骤s12,在本地获取云端平台所支持的所有模型的预测能力,利用构建好的神经网络模型计算出某个模型对用户提交任务的预测能力ci;

步骤s13,通过计算模型的复杂度等基本属性与预测能力的加权值,获取模型对任务的预计分数si。

所述步骤s2包括以下步骤:

步骤s21,通过读取手机端的设备文件,获取手机当前的一些硬件信息;

默认情况下,硬件信息包括当前的电压状态、当前的网速、手机的最大带宽;

步骤s22,利用事先获取到的一些固定点的传输时间与传输能耗,对步骤s21中获取到的信息进行线性预测,计算出所产生的通信时长以及通信能耗

所述步骤s3包括以下步骤:

步骤s31,根据用户的设置策略,选择一组固定的权重组合α,β,γ;

默认情况下,权重组合需要满足α+β+γ=1。

步骤s32,计算在不同的平台上运行不同模型所需要的能耗ei以及时间ti,并且根据步骤s13,s22以及本步骤的数据,生成加权得分;

默认情况下,以自然常数为底的指数函数产生加权得分;

步骤s33,对步骤s32产生的所有加权得分进行排序,选择加权分最大的成为最终的选择策略。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1