本技术涉及人工智能领域,并且更具体地,涉及一种算法调度方法及电子设备。
背景技术:
1、电子设备在采集图像的过程中,通常会采用多个算法同时对图像进行图像处理。例如,用户打开相机应用程序(application,app)开始采集人像图像,相机app的显示界面中可能会显示针对人脸的对焦框。在这种情况下,电子设备会调用图像检测算法来检测图像中的人脸,同时调用图像优化算法来处理图像提高显示图像的清晰度。
2、现阶段,当电子设备同时调用多个算法,为了避免多个算法同时占用相同的计算单元而导致的资源冲突问题,电子设备中通常会预存算法调度表,电子设备按照算法调度表中指示的时刻运行多个算法,避免不同算法占用同一计算单元导致的资源冲突。
3、然而,电子设备在使用过程中,电子设备的状态会动态地变化,从而导致电子设备按照预存算法调度表调度多个算法存在调度不准确的问题。
4、有鉴于此,如何提高调度多个算法的准确度成为一个亟需解决的问题。
技术实现思路
1、本技术提供了一种算法调度方法及电子设备,能够提高调度多个算法的准确度。
2、第一方面,提供一种算法调度方法,包括:该方法应用于电子设备,该电子设备包括算法调度模块和至少两个计算单元,该方法包括:获取预存的算法基础信息和电子设备实时的性能状态信息;将预存的算法基础信息和电子设备实时的性能状态信息输入算法调度模块,得到算法调度表,其中,算法调度表指示的各个算法在同一帧中占用的计算单元不同;根据算法调度表对电子设备中运行的至少两个算法进行调度,得到至少两个算法的输出数据。
3、本技术实施例提供的算法调度方法,获取预存的算法基础信息和电子设备实时的性能状态信息,将预存的算法基础信息和电子设备实时的性能状态信息输入算法调度模块进行处理,得到算法调度表,根据算法调度表处于运行状态的算法进行调度,其中,用于进行算法调度的算法调度表是根据预存的算法基础信息和电子设备实时的性能状态信息动态生成的,进而使得生成的算法调度表能够更加符合电子设备实时的性能状态,避免了通过预存的算法调度表与电子设备实时的性能状态不匹配而导致的算法调度不准备的问题,提高了调度多个算法的准确度。
4、应理解,预存的算法基础信息可以存储在如图3中所示的算法模块,电子设备可以在出厂前,获取电子设备中运行的各个算法的占用的计算单元、运行算法的最低帧率、不同计算单元的耗时、算法功耗以及算法峰值内存。
5、还应理解,电子设备的性能状态信息可以是当前时刻电子设备的剩余电量、工作温度、电子设备中的各个计算单元的负载信息。算法调度模块可以通过电子设备中电源管理模块141的获取电子设备的剩余电量,读取温度传感器180j中的温度数据得到电子设备的工作温度,读取电子设备中各个计算单元的负载信息,得到电子设备的性能状态信息。
6、结合第一方面,在第一方面的某些实施例中,算法调度模块包括决策子模块,将预存的算法基础信息和电子设备实时的性能状态信息输入算法调度模块,得到算法调度表,包括:将预存的算法基础信息和电子设备实时的性能状态信息输入决策子模块,得到算法调度表。
7、应理解,算法调度模块可以如图5所示,包括决策子模块和信息解码器。其中,信息解码器可以将输入算法基础信息和实时性能状态信息进行解码,转换为特征向量。决策子模块可以基于转换得到的特征向量进行处理,得到算法调度表。
8、结合第一方面,在第一方面的某些实施例中,该方法还包括:根据样本算法调度表和对应的样本算法基础信息、样本实时性能状态信息对初始的决策子模块进行训练,得到训练后的决策子模块:将预存的算法基础信息和电子设备实时的性能状态信息输入训练后的决策子模块,得到算法调度表。
9、应理解,电子设备可以将样本算法基础信息和样本实时性能状态信息输入初始的决策子模块,得到目标算法调度表,然后将目标算法调度表与样本算法调度表之间进行对比,基于对比结果调整算法调度模块中的损失函数,直至目标算法调度表与样本算法调度表之间的差值小于预设阈值,完成对初始的算法调度模块的训练,得到训练后的算法调度模块。
10、结合第一方面,在第一方面的某些实施例中,上述根据样本算法调度表和对应的样本算法基础信息、样本实时性能状态信息对初始的决策子模块进行训练,得到训练后的决策子模块,包括:在第一时段根据样本算法调度表和对应的样本算法基础信息、样本实时性能状态信息对初始的决策子模块进行训练,得到训练后的决策子模块;在第二时段将预存的算法基础信息和电子设备实时的性能状态信息输入训练后的决策子模块,得到算法调度表;其中,第一时段和第二时段为不同的时段,并且,第一时段在第二时段之前。
11、应理解,第一时段可以是指电子设备出厂之前的时段,第二时段可以是指电子设备出厂之后,用户使用电子设备的时段。
12、例如,电子设备在出厂前可以开启预训练开关,并采用样本算法调度表和对应的样本算法基础信息、样本实时性能状态信息对初始的算法调度模块进行训练,得到训练后的算法调度模块。然后,电子设备可以关闭预训练开关,这样在电子设备出厂后被用户使用的过程中,不会频繁地占用计算单元对算法调度模块进行训练。
13、结合第一方面,在第一方面的某些实施例中,上述根据样本算法调度表和对应的样本算法基础信息、样本实时性能状态信息对初始的决策子模块进行训练,得到训练后的决策子模块,包括:按照预设的时间间隔,周期性的根据样本算法调度表和对应的样本算法基础信息、样本实时性能状态信息对初始的决策子模块进行训练,得到训练后的决策子模块。
14、应理解,随着电子设备的使用时限增加,电子设备的硬件性能也会随之下降,因此,按照预设的时间间隔周期性地对初始的算法调度模块进行训练,得到训练后的算法调度模块,能够使得训练后的算法调度模块更加匹配电子设备的硬件性能,进而提高训练后的算法调度模块的准确性。
15、结合第一方面,在第一方面的某些实施例中,上述根据样本算法调度表和对应的样本算法基础信息、样本实时性能状态信息对初始的决策子模块进行训练,得到训练后的决策子模块,包括:在电子设备接收到系统版本更新时,根据样本算法调度表和对应的样本算法基础信息、样本实时性能状态信息对初始的决策子模块进行训练,得到训练后的决策子模块。
16、应理解,由于系统版本更新可能会影响电子设备的性能,在每次推送系统版本时,对初始的算法调度模块进行训练,得到训练后的算法调度模块,能够使得训练后的算法调度模块更加匹配电子设备的系统版本,进而提高了训练后的算法调度模块的准确性。
17、结合第一方面,在第一方面的某些实施例中,上述算法调度模块还包括补偿子模块,该方法还包括:获取第一算法的第一数据,第一算法为电子设备中运行的至少两个算法中跳帧的算法,第一数据是指第一算法在跳帧前一帧的输出数据;将第一数据输入补偿子模块,得到第二数据,第二数据为模拟第一算法在跳帧时运行得到的输出数据;根据第二数据得到第一算法的输出数据。
18、应理解,同时运行的至少两个算法均需要占用同一计算单元,此时,电子设备可以通过跳帧来避免上述计算单元冲突的问题。例如,若同时运行的算法a和算法b均在第3帧需要占用cpu,则为了避免计算单元冲突的问题,可以在第3帧时在cpu中运行算法a,不运行算法b,也即是算法b在第3帧时跳帧。然而,由于算法b在第3帧跳帧,缺少了一帧处理,可能存在算法b的准确度下降的问题。
19、例如,用于确定图像中人脸区域的图像检测算法在第3帧时跳帧,由于图像检测算法通常是以上一帧作为当前帧的输入进行处理的,因此,若缺失了第3帧的输出数据,在第4帧时运行图像检测算法时,由于没有第3帧的输出数据,图像检测算法可能会采用第2帧的输出数据进行处理,得到第4帧的输出数据。这样可能会导致第4帧运行的图像检测算法的输出不准确,进而导致所确定的图像中的人脸区域不准确。
20、补偿子模块也可以是一个神经网络模型,例如,补偿子模块是一个轻量化的transformer模型。
21、在一些可能的情况下,补偿子模块可以运行在eai中,由于eai不是电子设备中的计算单元,这样能够避免补偿子模块占用计算单元,而导致的计算单元冲突的问题。
22、本技术实施例提供的算法调度方法,根据算法调度表存在跳帧的第一算法的情况下,可以通过补偿子模块对第一算法的跳帧进行模拟,得到第一算法跳帧的输出数据,进而根据模拟得到的跳帧后第一算法的输出数据得到第一算法的输出数据,使得根据算法调度表运行,并且存在跳帧的第一算法的输出数据,更加接近第一算法满帧运行得到的输出数据,提高了第一算法的准确度。
23、结合第一方面,在第一方面的某些实施例中,电子设备还包括算法模块,上述获取第一算法的第一数据,包括:若决策子模块确定第一算法的跳帧,决策子模块向算法模块发送第一获取请求,第一获取请求用于向算法模块请求获取第一数据;算法模块响应于第一获取请求,向决策子模块发送第一数据;决策子模块向补偿子模块发送第一数据。
24、结合第一方面,在第一方面的某些实施例中,电子设备还包括算法模块,上述获取第一算法的第一数据,包括:若决策子模块确定第一算法的跳帧,决策子模块向补偿子模块发送第一指示信息,第一指示信息用于指示第一算法的跳帧;补偿子模块基于第一指示信息向算法模块发送第二获取请求,第二获取请求用于向算法模块请求获取第一数据;算法模块响应于第二获取请求,向补偿子模块发送第一数据。
25、结合第一方面,在第一方面的某些实施例中,该方法还包括:根据样本满帧算法数据和对应的样本第一数据对初始的补偿子模块进行训练,得到训练后的补偿子模块;将第一数据输入训练后的补偿子模块,得到第二数据。
26、应理解,补偿子模块为神经网络模型,因此电子设备可以先对初始的补偿子模块进行训练,得到训练后的补偿子模块,再通过训练后的补偿子模块得到第二数据。
27、满帧算法数据可以是指第一算法在每一帧都进行运算的情况下,每一帧的输入数据和输出数据。样本满帧算法数据可以是电子设备模拟运行第一算法,并且无跳帧的情况下得到的数据。
28、结合第一方面,在第一方面的某些实施例中,上述根据样本满帧算法数据和对应的样本第一数据对初始的补偿子模块进行训练,得到训练后的补偿子模块,包括:在第三时段根据样本满帧算法数据和对应的样本第一数据对初始的补偿子模块进行训练,得到训练后的补偿子模块;在第四时段将第一数据输入补偿子模块,得到第二数据;其中,第三时段和第四时段为不同的时段,并且,第三时段在第四时段之前。
29、第三时段可以是指电子设备出厂之前的时段,第四时段可以指示电子设备出厂之后,被用户使用的时段。
30、应理解,第三时段可以是与第一时段相同的时段,也可以是与第一时段不同的时段,本技术实施例对此不做限制。
31、若第三时段是与第一时段相同的时段,则是指决策子模块和补偿子模块的训练时段相同。由于决策子模块的中间数据可以作为补偿子模块的输入数据,因此同时训练决策子模块和补偿子模块可以提高对决策子模块和补偿子模块的训练精度,提高决策子模块和补偿子模块的准确性。
32、若第三时段与第一时段是不同的两个时段,则可以是指决策子模块和补偿子模块分开训练,这样可以提高对决策子模块和补偿子模块的训练的灵活性。
33、应理解,第四时段可以是与第二时段相同的时段,也可以是与第二时段不同的时段,本技术实施例对此不做限制。
34、示例性的,电子设备在出厂前可以开启补偿子模块的预训练开关,并采用样本满帧算法数据和对应的样本第一数据对初始的补偿子模块进行训练,得到训练后的补偿子模块。然后,电子设备可以关闭预训练开关,这样在电子设备出厂后被用户使用的过程中,不会频繁地占用计算单元对补偿子模块进行训练。
35、结合第一方面,在第一方面的某些实施例中,上述根据样本满帧算法数据和对应的样本第一数据对初始的补偿子模块进行训练,得到训练后的补偿子模块,包括:按照预设的时间间隔,周期性地根据样本满帧算法数据和对应的样本第一数据对初始的补偿子模块进行训练,得到训练后的补偿子模块。
36、应理解,随着电子设备的使用时限增加,电子设备的硬件性能也会随之下降,因此,定时对初始的补偿子模块进行训练,得到训练后的补偿子模块,能够使得训练后的补偿子模块更加匹配电子设备的硬件性能,进而提高训练后的补偿子模块的准确性。
37、结合第一方面,在第一方面的某些实施例中,上述根据样本满帧算法数据和对应的样本第一数据对初始的补偿子模块进行训练,得到训练后的补偿子模块,包括:在电子设备接收到系统版本更新时,根据样本满帧算法数据和对应的样本第一数据对初始的补偿子模块进行训练,得到训练后的补偿子模块。
38、应理解,由于系统版本更新可能会影响电子设备的性能,在每次推送系统版本时,对初始的补偿子模块进行训练,得到训练后的补偿子模块,能够使得训练后的补偿子模块更加匹配电子设备的系统版本,进而提高了训练后的补偿子模块的准确性。
39、第二方面,提供了一种电子设备,该电子设备包括算法调度模块,用于执行如上述第一方面中所示的任一项的方法。
40、结合第二方面,在第二方面的某些实施例中,电子设备包括算法调度模块和算法模块,算法调度模块用于基于算法模块中的预存的算法基础信息和电子设备实时的性能状态信息得到算法调度表,其中,算法调度表指示的各个算法在同一帧中占用的计算单元不同。
41、结合第二方面,在第二方面的某些实施例中,算法调度模块包括决策子模块,决策子模块用于基于算法模块中的预存的算法基础信息和电子设备实时的性能状态信息得到算法调度表。
42、结合第二方面,在第二方面的某些实施例中,算法调度模块还包括补偿子模块,补偿子模块用于基于第一算法的第一数据,得到第二数据,其中,第一算法为电子设备中运行的至少两个算法中跳帧的算法,第一数据是指第一算法在跳帧前一帧的输出数据,第二数据为模拟第一算法在跳帧时运行得到的输出数据。
43、第三方面,提供了一种算法调度装置,包括用于执行第一方面中任一种方法的单元。该装置可以是终端设备,也可以是终端设备内的芯片。该装置可以包括输入单元和处理单元。
44、当该装置是终端设备时,该处理单元可以是处理器,该输入单元可以是通信接口;该终端设备还可以包括存储器,该存储器用于存储计算机程序代码,当该处理器执行该存储器所存储的计算机程序代码时,使得该终端设备执行第一方面中的任一种方法。
45、当该装置是终端设备内的芯片时,该处理单元可以是芯片内部的处理单元,该输入单元可以是输出接口、管脚或电路等;该芯片还可以包括存储器,该存储器可以是该芯片内的存储器(例如,寄存器、缓存等),也可以是位于该芯片外部的存储器(例如,只读存储器、随机存取存储器等);该存储器用于存储计算机程序代码,当该处理器执行该存储器所存储的计算机程序代码时,使得该芯片执行第一方面中的任一种方法。
46、在一种可能的实现方式中,存储器用于存储计算机程序代码;处理器,处理器执行该存储器所存储的计算机程序代码,当该存储器存储的计算机程序代码被执行时,该处理器用于执行:获取预存的算法基础信息和电子设备实时的性能状态信息;将预存的算法基础信息和电子设备实时的性能状态信息输入算法调度模块,得到算法调度表,其中,算法调度表指示的各个算法在同一帧中占用的计算单元不同;根据算法调度表对电子设备中运行的至少两个算法进行调度,得到至少两个算法的输出数据。
47、第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序代码,当所述计算机程序代码被算法调度装置运行时,使得该算法调度装置执行第一方面中的任一种算法调度方法。
48、第五方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码被算法调度装置运行时,使得该算法调度装置执行第一方面中的任一种算法调度方法。
49、本技术实施例提供的算法调度方法和电子设备,通过获取预存的算法基础信息和电子设备实时的性能状态信息,然后将预存的算法基础信息和电子设备实时的性能状态信息输入算法调度模块进行处理,得到算法调度表,进而根据算法调度表处于运行状态的算法进行调度,其中,用于进行算法调度的算法调度表是根据预存的算法基础信息和电子设备实时的性能状态信息动态生成的,进而使得生成的算法调度表能够更加符合电子设备实时的性能状态,避免了通过预存的算法调度表与电子设备实时的性能状态不匹配而导致的算法调度不准备的问题,提高了调度多个算法的准确度。
1.一种算法调度方法,其特征在于,所述方法应用于电子设备,所述电子设备包括算法调度模块和至少两个计算单元,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述算法调度模块包括决策子模块,所述将所述预存的算法基础信息和所述电子设备实时的性能状态信息输入所述算法调度模块,得到算法调度表,包括:
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
4.根据权利要求3所述的方法,其特征在于,所述根据样本算法调度表和对应的样本算法基础信息、样本实时性能状态信息对初始的决策子模块进行训练,得到训练后的决策子模块,包括:
5.根据权利要求3所述的方法,其特征在于,所述根据样本算法调度表和对应的样本算法基础信息、样本实时性能状态信息对初始的决策子模块进行训练,得到训练后的决策子模块,包括:
6.根据权利要求3所述的方法,其特征在于,所述根据样本算法调度表和对应的样本算法基础信息、样本实时性能状态信息对初始的决策子模块进行训练,得到训练后的决策子模块,包括:
7.根据权利要求2至6任一项所述的方法,其特征在于,所述算法调度模块还包括补偿子模块,所述方法还包括:
8.根据权利要求7所述的方法,其特征在于,所述电子设备还包括算法模块,所述获取第一算法的第一数据,包括:
9.根据权利要求7所述的方法,其特征在于,所述电子设备还包括算法模块,所述获取第一算法的第一数据,包括:
10.根据权利要求7所述的方法,其特征在于,所述方法还包括:
11.根据权利要求10所述的方法,其特征在于,所述根据样本满帧算法数据和对应的样本第一数据对初始的补偿子模块进行训练,得到训练后的补偿子模块,包括:
12.根据权利要求10所述的方法,其特征在于,所述根据样本满帧算法数据和对应的样本第一数据对初始的补偿子模块进行训练,得到训练后的补偿子模块,包括:
13.根据权利要求10所述的方法,其特征在于,所述根据样本满帧算法数据和对应的样本第一数据对初始的补偿子模块进行训练,得到训练后的补偿子模块,包括:
14.一种电子设备,其特征在于,所述电子设备包括算法调度模块用于执行如权利要求1至13中任一项所述的方法。
15.根据权利要求14所述的电子设备,其特征在于,所述电子设备包括算法调度模块和算法模块,所述算法调度模块用于基于算法模块中的预存的算法基础信息和所述电子设备实时的性能状态信息得到算法调度表,其中,所述算法调度表指示的各个算法在同一帧中占用的计算单元不同。
16.根据权利要求15所述的电子设备,其特征在于,所述算法调度模块包括决策子模块,所述决策子模块用于基于所述算法模块中的预存的算法基础信息和所述电子设备实时的性能状态信息得到算法调度表。
17.根据权利要求15所述的电子设备,其特征在于,所述算法调度模块还包括补偿子模块,所述补偿子模块用于基于第一算法的第一数据,得到第二数据,其中,所述第一算法为所述电子设备中运行的至少两个算法中跳帧的算法,所述第一数据是指所述第一算法在跳帧前一帧的输出数据,所述第二数据为模拟所述第一算法在跳帧时运行得到的输出数据。
18.一种算法调度装置,其特征在于,所述算法调度装置包括处理器和存储器,所述存储器用于存储计算机程序,所述处理器用于从所述存储器中调用并运行所述计算机程序,使得所述算法调度装置执行权利要求1至13中任一项所述的算法调度方法。
19.一种芯片,其特征在于,包括处理器,当所述处理器执行指令时,所述处理器执行如权利要求1至13中任一项所述的算法调度方法。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储了计算机程序,当所述计算机程序被处理器执行时,使得处理器执行权利要求1至13中任一项所述的算法调度方法。
