CN118211613A - 一种模型处理方法及相关装置 - Google Patents

一种模型处理方法及相关装置 Download PDF

Info

Publication number
CN118211613A
CN118211613A CN202211620575.4A CN202211620575A CN118211613A CN 118211613 A CN118211613 A CN 118211613A CN 202211620575 A CN202211620575 A CN 202211620575A CN 118211613 A CN118211613 A CN 118211613A
Authority
CN
China
Prior art keywords
model
candidate
optimized
models
target
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
Application number
CN202211620575.4A
Other languages
English (en)
Inventor
刘飞
孙依然
罗谌持
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202211620575.4A priority Critical patent/CN118211613A/zh
Publication of CN118211613A publication Critical patent/CN118211613A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

一种模型处理方法,应用于人工智能技术领域。在该方法中,通过对待优化模型的结构和/或权重参数进行不同的调整,得到多个不同的候选模型,并且测试现场设备在运行各个候选模型时的性能指标,最终再基于现场设备在运行模型过程中的性能指标来选择将满足现场运行要求的模型部署至现场设备,进而提高模型在实际部署现场的使用效果,保证模型在不同部署场景下的适应性。

Description

一种模型处理方法及相关装置
技术领域
本申请涉及人工智能技术领域,尤其涉及一种模型处理方法及相关装置。
背景技术
在交通安全、智能安防、智慧城市等场景中,智能摄像机往往需要在拍摄得到交通、小区、电梯等现场场景的图像后,对拍摄得到的图像进行分析处理,例如检测图像中特定类别的目标或者是识别图像中各个物体的类型等。一般地,智能摄像机是通过运行预先所部署的模型来对图像进行分析处理。
目前,智能摄像机中所部署的模型通常是由云服务器预先通过大量的训练数据对模型进行训练得到的。在云服务器训练得到模型后,云服务器再将训练得到的模型部署于智能摄像机中。
由于模型的训练环境和实际部署环境是割裂的,因此在模型部署至现场的智能摄像机之后,往往会出现模型的使用效果较差的现象,导致模型的适应性较差。
发明内容
本申请提供了一种模型处理方法,能够提高模型在实际部署现场的使用效果,保证模型在不同部署场景下的适应性。
本申请第一方面提供一种模型处理方法,该方法应用于目标设备,或者是应用于与目标设备连接的云服务器上。该方法具体包括:获取待优化模型,该待优化模型例如可以是与现场环境的目标设备上已部署的模型相同。
然后,基于待优化模型得到多个候选模型,该多个候选模型是对待优化模型的结构和/或权重参数进行调整得到的。具体地,在每次对待优化模型执行调整的过程中,可以是仅对待优化模型的结构进行调整,也可以是仅对待优化模型的权重参数进行调整,还可以是同时对待优化模型的结构和权重参数进行调整。即,在对待优化模型所执行的多次调整中,每次调整均可以是对待优化模型的结构和/或权重参数进行调整。
其次,分别获取目标设备运行多个候选模型中的每个候选模型时的性能指标。该性能指标包括以下指标中的一个或多个:推理耗时、处理资源占用量以及存储资源占用量。其中,目标设备并非是特指某一个设备,而是可以泛指具有相同的处理资源和存储资源的一类设备。例如,目标设备可以是指由某一厂商生产的某一款式中特定型号的一个或多个设备,该一个或多个设备具有相同的处理芯片以及存储空间(即处理资源和存储资源相同)。因此,属于目标设备的这一类设备在运行同一个模型时的性能指标实际上是相同的。
最后,根据目标设备运行每个候选模型时的性能指标,从多个候选模型中确定目标模型,该目标模型用于部署至目标设备。
本方案中,通过对待优化模型的结构和/或权重参数进行不同的调整,得到多个不同的候选模型,并且测试现场设备在运行各个候选模型时的性能指标,最终再基于现场设备在运行模型过程中的性能指标来选择将满足现场运行要求的模型部署至现场设备,进而提高模型在实际部署现场的使用效果,保证模型在不同部署场景下的适应性。简单来说,本方案中通过考虑不同的候选模型在目标设备上运行时的性能指标,来选择目标模型,实际上是将模型实际所运行的硬件环境(即目标设备的硬件设备)纳入了模型优化的流程中,进而保证了模型在硬件环境不同的各种部署场景下均能够具有较好的适应性。
在一种可能的实现方式中,多个候选模型是基于相同的训练数据集训练得到的,训练数据集包括目标设备所采集的图像。
本方案中,通过采用目标设备所采集的工作环境的图像来作为训练数据集,能够有针对性地对候选模型进行训练,提高候选模型对目标设备的工作环境的适应性(即提高候选模型对特定工作场景的适应性),保证候选模型部署至现场环境下的目标设备时能够具有较高的预测精度。具体而言,本方案中在将模型实际所运行的硬件环境纳入模型优化的流程的基础上,还进一步考虑了模型实际落地部署时的工作环境,进而提高了模型对特定工作环境的适应性。
在一种可能的实现方式中,在根据目标设备运行每个候选模型时的性能指标,从多个候选模型中确定目标模型的过程中,具体可以包括:根据目标设备运行每个候选模型时的性能指标,从多个候选模型中确定性能指标满足预设条件的多个待选择模型,并在显示界面上展示多个待选择模型;然后,接收用户下发的第一指令,第一指令用于指示在多个待选择模型中选择目标模型;最后,响应于第一指令,在多个待选择模型中确定目标模型。
其中,预设条件可以是指用户预先定义好的条件。当多个候选模型中的任意一个候选模型满足预设条件时,云服务器则可以将该候选模型展示在显示界面上,以供用户选择。例如,在用户对模型的预测精度有一定要求的情况下,预设条件具体可以为:候选模型的预测精度大于或等于预设精度(例如90%)。又例如,在用户对模型的推理耗时有一定要求的情况下,预设条件具体可以为:候选模型的推理耗时小于或等于预设耗时(例如0.6秒)。
具体地,在显示界面上展示多个待选择模型时,可以是同时显示该多个待选择模型中每个模型的预测精度及对应的性能指标,以便于用户根据每个模型的预测精度及对应的性能指标来选择满足需求的模型。
本方案中,通过将生成的候选模型展示于显示界面上,能够由用户来选择满足实际部署要求的模型,提高模型在实际部署环境中的应用效果。
在一种可能的实现方式中,候选模型所对应的性能指标可以包括多个指标。根据目标设备运行每个候选模型时的性能指标,从多个候选模型中确定目标模型,具体包括:对目标设备运行每个候选模型时的多个指标进行加权求和,得到每个候选模型对应的求和结果,其中多个指标中每个指标所对应的权重是基于每个指标的优先级确定的;基于每个候选模型对应的求和结果,从多个候选模型中确定求和结果最小的目标模型。也就是说,目标模型是多个候选模型中求和结果最小的一个模型。
也就是说,性能指标的优先级越高,则该性能指标所对应的权重也越大。其中,各个性能指标的优先级可以是由根据实际需求预先定义的。并且,对于推理耗时、处理资源占用量以及内存占用量等性能指标而言,这些性能指标的值越小,则代表模型在目标设备上的应用效果越好,因此可以选择求和结果最小的模型作为目标模型。
本方案中,通过对目标设备运行候选模型时的各个性能指标进行加权求和,并基于求和结果在多个候选模型中选择目标模型,能够综合考虑多个性能指标来选出满足实际部署需求的目标模型,提高模型在实际部署场景下的使用效果。
在一种可能的实现方式中,该方法还包括:获取多个候选模型中每个候选模型的预测精度;然后,根据每个候选模型的预测精度以及目标设备运行每个候选模型时的性能指标,从多个候选模型中确定目标模型。
也就是说,在多个候选模型中选择目标模型时,可以将候选模型的预测精度以及候选模型所对应的设备运行性能指标同时作为选择目标模型的参考条件,进而同时兼顾到模型的预测精度以及设备的运行性能,提高目标模型在现场环境部署时的性能表现,满足用户的多样性需求。
在一种可能的实现方式中,待优化模型为预训练好的模型。其中,获取多个候选模型中每个候选模型的预测精度,具体包括:将测试数据集分别输入待优化模型和多个候选模型,得到待优化模型对应的预测结果以及每个候选模型对应的预测结果;通过对比每个候选模型对应的预测结果与待优化模型对应的预测结果,得到每个候选模型的预测精度。
也就是说,在实际应用中,可以是以待优化模型为参考模型,以待优化模型的预测结果为参考结果来确定候选模型的预测精度。针对于同一输入数据,如果候选模型的预测结果与待优化模型的预测结果相同,则可以认为候选模型的预测结果是正确的;如果候选模型的预测结果与待优化模型的预测结果不相同,则可以认为候选模型的预测结果是不正确的。这样一来,通过对比待优化模型针对于测试数据集的各个预测结果以及候选模型针对于测试数据的各个预测结果,即可得到候选模型的预测精度。
本方案中,在难以获取到训练数据的标签时,通过以待优化模型为参考模型,对比待优化模型的预测结果与候选模型的预测结果之间的差异来实现确定各个候选模型的预测精度,能够在训练环境受限的情况下,在实现目标模型运行所需的性能与目标设备的性能匹配的前提下,仍能够保证目标模型的预测精度。
在一种可能的实现方式中,基于待优化模型得到多个候选模型,具体包括:获取待优化模型的结构调整范围,该结构调整范围用于指示待优化模型的结构能够调整的范围;在结构调整范围内,分别对待优化模型的结构进行多次随机调整,得到多个第一候选模型;基于目标设备运行多个第一候选模型中的每个第一候选模型时的性能指标,确定待优化模型的结构调整方向;基于结构调整方向,对待优化模型的结构进行多次调整,得到多个第二候选模型。其中,多个候选模型包括多个第一候选模型和多个第二候选模型。
其中,多个第一候选模型与多个第二候选模型实际上都是对待优化模型的结构进行调整得到的,区别仅在于多个第一候选模型的生成时间与多个第二候选模型的生成时间不同。具体来说,多个第一候选模型是随机对待优化模型的结构进行调整后得到的,属于迭代过程中初始阶段所产生的模型;多个第二候选模型则是基于结构调整方向对待优化模型的结构进行调整后得到的,属于迭代过程中正常阶段所产生的模型。
本方案中,通过分多个阶段来生成候选模型,能够有效地确定待优化模型的结构调整方向,进而有针对性生成候选模型,即朝着模型对应的性能指标变优的方向来生成候选模型,避免生成过多的候选模型,降低资源开销。
在一种可能的实现方式中,获取待优化模型的结构调整范围,具体包括:获取目标设备运行待优化模型中的网络层时的性能指标;根据目标设备运行网络层时的性能指标,确定待优化模型中的网络层的结构调整范围。一般地,待优化模型通常会包括多个网络层,通过在目标设备上运行待优化模型,可以获取到目标设备运行待优化模型中的每一个网络层时的性能指标。
本方案中,在待优化模型的原有基础上,基于目标设备运行待优化模型中的网络层时的性能指标合理地界定待优化模型的结构调整范围,能够有效地减少所生成的候选模型,进而提高搜索目标模型的效率。
在一种可能的实现方式中,待优化模型中的网络层的结构调整范围与目标设备运行网络层时的性能指标具有正相关关系。
具体来说,如果目标设备运行某一个网络层时的性能指标较低,代表该网络层的结构较好,因此可以确定该网络层的结构调整范围较小,即在小范围内调整该网络层的结构。如果目标设备运行某一个网络层时的性能指标较高,代表该网络层的结构较差,因此可以确定该网络层的结构调整范围较大,即在大范围内调整该网络层的结构。
本申请第二方面提供一种模型处理装置,包括:获取模块,用于获取待优化模型;处理模块,用于基于待优化模型得到多个候选模型,多个候选模型是对待优化模型的结构和/或权重参数进行调整得到的;获取模块,还用于分别获取目标设备运行多个候选模型中的每个候选模型时的性能指标;处理模块,还用于根据目标设备运行每个候选模型时的性能指标,从多个候选模型中确定目标模型,目标模型用于部署至目标设备。
在一种可能的实现方式中,多个候选模型是基于相同的训练数据集训练得到的,训练数据集包括目标设备所采集的图像。
在一种可能的实现方式中,该装置应用于目标设备;
或者,该装置应用于与目标设备连接的云服务器。
在一种可能的实现方式中,性能指标包括以下指标中的一个或多个:推理耗时、处理资源占用量以及存储资源占用量。
在一种可能的实现方式中,处理模块,还用于根据目标设备运行每个候选模型时的性能指标,从多个候选模型中确定性能指标满足预设条件的多个待选择模型,并在显示界面上展示多个待选择模型;获取模块,还用于接收用户下发的第一指令,第一指令用于指示在多个待选择模型中选择目标模型;处理模块,还用于响应于第一指令,在多个待选择模型中确定目标模型。
在一种可能的实现方式中,性能指标包括多个指标;处理模块,还用于:
对目标设备运行每个候选模型时的多个指标进行加权求和,得到每个候选模型对应的求和结果,其中多个指标中每个指标所对应的权重是基于每个指标的优先级确定的;
基于每个候选模型对应的求和结果,从多个候选模型中确定求和结果最小的目标模型。
在一种可能的实现方式中,获取模块,还用于获取多个候选模型中每个候选模型的预测精度;处理模块,还用于根据每个候选模型的预测精度以及目标设备运行每个候选模型时的性能指标,从多个候选模型中确定目标模型。
在一种可能的实现方式中,待优化模型为预训练好的模型;处理模块,还用于:
将测试数据集分别输入待优化模型和多个候选模型,得到待优化模型对应的预测结果以及每个候选模型对应的预测结果;
通过对比每个候选模型对应的预测结果与待优化模型对应的预测结果,得到每个候选模型的预测精度。
在一种可能的实现方式中,获取模块,还用于获取待优化模型的结构调整范围,结构调整范围用于指示待优化模型的结构能够调整的范围;处理模块,还用于:在结构调整范围内,分别对待优化模型的结构进行多次随机调整,得到多个第一候选模型;基于目标设备运行多个第一候选模型中的每个第一候选模型时的性能指标,确定待优化模型的结构调整方向;基于结构调整方向,对待优化模型的结构进行多次调整,得到多个第二候选模型;其中,多个候选模型包括多个第一候选模型和多个第二候选模型。
在一种可能的实现方式中,获取模块,具体用于:获取目标设备运行待优化模型中的网络层时的性能指标;根据目标设备运行网络层时的性能指标,确定待优化模型中的网络层的结构调整范围。
在一种可能的实现方式中,待优化模型中的网络层的结构调整范围与目标设备运行网络层时的性能指标具有正相关关系。
本申请第三方面提供一种模型处理装置,包括:处理器和存储器;该存储器用于存储计算机指令,当该处理器执行该指令时,以使该模型处理装置执行上述第一方面任一实现方式的方法。
本申请第四方面提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当指令在计算机上运行时,使得计算机可以执行上述第一方面任一实现方式的方法。
本申请第五方面提供一种包含指令的计算机程序产品,当指令在计算机上运行时,使得计算机可以执行上述第一方面任一实现方式的方法。
本申请第六方面提供一种芯片,该芯片包括处理器和通信接口,该通信接口用于与所示芯片之外的模块通信,该处理器用于运行计算机程序或指令,使得安装该芯片的装置可以执行上述第一方面任一实现方式的方法。
其中,第三方面至第六方面中任一种设计方式所带来的技术效果可参见上述第一方面中不同实现方式所带来的技术效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种卷积神经网络的结构示意图;
图2为本申请实施例提供的一种模型处理方法的应用场景的示意图;
图3为本申请实施例提供的一种模型处理方法的流程示意图;
图4为本申请实施例提供的一种在显示界面上展示多个待选择模型的示意图;
图5为本申请实施例提供的一种基于用户指令选择部署模型的示意图;
图6为本申请实施例提供的一种基于待优化模型生成多个候选模型的流程示意图;
图7为本申请实施例提供的一种模型处理方法所应用的系统架构的示意图;
图8为本申请实施例提供的一种迭代生成候选模型的流程示意图;
图9为本申请实施例提供的一种获取候选模型对应的性能指标的示意图;
图10为本申请实施例提供的一种NSGA-III算法中的参考点筛选方法的示意图;
图11为本申请实施例提供的一种模型处理方法所应用的另一系统架构的示意图;
图12为本申请实施例提供的一种模型处理装置的结构示意图;
图13为本申请实施例提供的执行设备的一种结构示意图;
图14为本申请实施例提供的芯片的一种结构示意图;
图15为本申请实施例提供的一种计算机可读存储介质的结构示意图。
具体实施方式
下面结合附图,对本申请的实施例进行描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。
此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块。在本申请中出现的对步骤进行的命名或者编号,并不意味着必须按照命名或者编号所指示的时间/逻辑先后顺序执行方法流程中的步骤,已经命名或者编号的流程步骤可以根据要实现的技术目的变更执行次序,只要能达到相同或者相类似的技术效果即可。
为便于理解,以下将介绍本申请实施例所涉及的技术术语。
(1)神经网络
神经网络可以是由神经单元组成的,神经单元可以是指以输入数据xs为输入的运算单元,该运算单元的输出可以为:
其中,s=1、2、……n,n为大于1的自然数,Ws为xs的权重,b为神经单元的偏置。f为神经单元的激活函数(activation functions),用于将非线性特性引入神经网络中,来将神经单元中的输入信号转换为输出信号。该激活函数的输出信号可以作为下一层卷积层的输入,激活函数可以是sigmoid函数。
总的来说,神经网络是将多个上述单一的神经单元联结在一起形成的网络,即一个神经单元的输出可以是另一个神经单元的输入。每个神经单元的输入可以与前一层的局部接受域相连,来提取局部接受域的特征,局部接受域可以是由若干个神经单元组成的区域。
(2)卷积神经网络(Convosutionas Neuras Network,CNN)
卷积神经网络是一种带有卷积结构的神经网络。卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器。该特征抽取器可以看作是滤波器,卷积过程可以看作是使用一个可训练的滤波器与一个输入的图像或者卷积特征平面(feature map)做卷积。卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层。在卷积神经网络的卷积层中,一个神经元可以只与部分邻层神经元连接。一个卷积层中,通常包含若干个特征平面,每个特征平面可以由一些矩形排列的神经单元组成。同一特征平面的神经单元共享权重,这里共享的权重就是卷积核。共享权重可以理解为提取图像信息的方式与位置无关。这其中隐含的原理是:图像的某一部分的统计信息与其他部分是一样的。即,意味着在某一部分学习的图像信息也能用在另一部分上。所以对于图像上的所有位置,都能使用同样的学习得到的图像信息。在同一卷积层中,可以使用多个卷积核来提取不同的图像信息,一般地,卷积核数量越多,卷积操作反映的图像信息越丰富。
卷积核可以是以随机大小的矩阵的形式初始化,在卷积神经网络的训练过程中卷积核可以通过学习得到合理的权重。另外,共享权重带来的直接好处是减少卷积神经网络各层之间的连接,同时又降低了过拟合的风险。
具体的,如图1所示,卷积神经网络100可以包括输入层110,卷积层/池化层120,以及神经网络层130。其中,池化层为可选的。
其中,输入层110和卷积层/池化层120连接,卷积层/池化层120与神经网络层130连接,神经网络层130的输出可以输入至激活层(图中未示出),激活层可以对神经网络层130的输出进行非线性化处理。
如图1所示,卷积层/池化层120可以包括如示例121-126层,在一种实现中,121层为卷积层,122层为池化层,123层为卷积层,124层为池化层,125为卷积层,126为池化层;在另一种实现方式中,121、122为卷积层,123为池化层,124、125为卷积层,126为池化层。即卷积层的输出可以作为随后的池化层的输入,也可以作为另一个卷积层的输入以继续进行卷积操作。
以卷积层121为例,卷积层121可以包括很多个卷积核,其在图像处理中的作用相当于一个从输入图像矩阵中提取特定信息的过滤器。卷积核本质上可以是一个权重矩阵,这个权重矩阵通常被预先定义,在对图像进行卷积操作的过程中,权重矩阵通常在输入图像上沿着水平方向一个像素接着一个像素(或两个像素接着两个像素)地进行处理,从而完成从图像中提取特定特征的工作。该权重矩阵的大小应该与图像的大小相关,需要注意的是,权重矩阵的纵深维度和输入图像的纵深维度是相同的,在进行卷积运算的过程中,权重矩阵会延伸到输入图像的整个深度。因此,和一个单一的权重矩阵进行卷积会产生一个单一纵深维度的卷积化输出,但是大多数情况下不使用单一权重矩阵,而是应用维度相同的多个权重矩阵。每个权重矩阵的输出被堆叠起来形成卷积图像的纵深维度。不同的权重矩阵可以用来提取图像中不同的特征,例如一个权重矩阵用来提取图像边缘信息,另一个权重矩阵用来提取图像的特定颜色,又一个权重矩阵用来对图像中不需要的噪点进行模糊化……该多个权重矩阵维度相同,经过该多个维度相同的权重矩阵提取后的特征图维度也相同,再将提取到的多个维度相同的特征图合并形成卷积运算的输出。
这些权重矩阵中的权重值在实际应用中需要经过大量的训练得到,通过训练得到的权重值形成的各个权重矩阵可以从输入图像中提取信息,从而帮助卷积神经网络100进行正确的预测。
当卷积神经网络100有多个卷积层的时候,初始的卷积层(例如121)往往提取较多的一般特征,该一般特征也可以称之为低级别的特征;随着卷积神经网络100深度的加深,越往后的卷积层(例如126)提取到的特征越来越复杂,比如高级别的语义之类的特征,语义越高的特征越适用于待解决的问题。
此外,由于常常需要减少训练参数的数量,因此卷积层之后常常需要周期性的引入池化层,即如图1中所示例的121-126各层,可以是一层卷积层后面跟一层池化层,也可以是多层卷积层后面接一层或多层池化层。
进一步地,在经过卷积层/池化层120的处理后,卷积神经网络100还不足以输出所需要的输出信息。因为如前,卷积层/池化层120只会提取特征,并减少输入图像带来的参数。然而为了生成最终的输出信息(所需要的类信息或别的相关信息),卷积神经网络100需要利用神经网络层130来生成一个或者一组所需要的类的数量的输出。因此,在神经网络层130中可以包括多层隐含层(如图1所示的131、132至13n)以及输出层140,该多层隐含层中所包含的参数可以根据具体的任务类型的相关训练数据进行预先训练得到,例如该任务类型可以包括图像识别,图像分类,图像超分辨率重建等等。
可选的,神经网络层130中的多层隐含层可以为全连接层。其中,全连接层中的每一个节点都与上一层的所有节点相连,用于将前边提取到的特征综合起来。
在神经网络层130中的多层隐含层之后,也就是整个卷积神经网络100的最后层为输出层140,该输出层140具有类似分类交叉熵的损失函数,具体用于计算预测误差,一旦整个卷积神经网络100的前向传播(如图1由110至140的传播为前向传播)完成,反向传播(如图1由140至110的传播为反向传播)就会开始更新前面提到的各层的权重值以及偏差,以减少卷积神经网络100的损失及卷积神经网络100通过输出层输出的结果和理想结果之间的误差。
需要说明的是,如图1所示的卷积神经网络100仅作为一种卷积神经网络的示例,在具体的应用中,卷积神经网络还可以是以其他网络模型的形式存在,例如,在一种可能的示例中,卷积神经网络中的多个卷积层/池化层并行,且并行的多个卷积层/池化层分别将提取的特征输入给神经网络层进行处理。
(3)通道
通道一般是指每个神经网络层中的卷积核。
(4)损失函数(Loss Function)
损失函数也称为代价函数(Cost Function),用于度量预测值与实际值之间的差异,以作为模型性能参考。损失函数的值越小,代表模型的预测输出和期望输出(也称为实际值)之间的差值就越小,也就说明模型的性能越好。学习的过程,就是不断通过训练数据进行预测,不断调整预测输出与期望输出之间的差异,使得损失函数的值不断变小的过程。
(5)归一化
归一化是一种无量纲处理手段,使物理系统数值的绝对值变成某种相对值关系。具体来说,归一化能够将处于一定分布范围内的数据变成(0,1)之间的小数。
(6)帕累托(pareto)排序
帕累托排序是排序论领域中的一个重要研究方向,用于综合考虑多个性能指标,并在这些性能指标之间进行有效折衷。具体来说,帕累托排序旨在枚举所有的帕累托最优点,并为每个帕累托最优点找到一个对应的帕累托最优排序。
(7)非支配排序遗传算法(Non-dominated Sorting Genetic Algorithms,NSGA)
第三代非支配遗传算法(NSGA-III)是针对高维多目标优化计算代价大,难以挑选Pareto解的情况而开发的,基本流程与NSGA-II相似,但选择个体的方法加入了基于参考点的方法,能够有效降低计算代价。具体来说,NSGA-III首先定义一组参考点;然后随机生成含有N个个体的初始种群,其中N是种群大小。接下来,NSGA-III进行迭代直至终止条件满足。在第t代,NSGA-III在当前种群Pt的基础上,通过交叉和变异产生子代种群Qt。Pt和Qt的大小均为N。因此,两个种群Pt和Qt合并会形成种群大小为2N的新的种群Rt=Pt∪Qt。
(8)多目标协方差矩阵自适应遗传搜索算法(Multi-Objective CovarianceMatrix Adaptativation Evolution Strategy,MOCMAES)
MOCMAES主要用于解决多目标情况下的连续优化问题。具体来说,MOCMAES主要作为求解参数优化问题的方法,模仿生物进化原理,假设不论基因发生何种变化,产生的结果(性状)总遵循着零均值,某一方差的高斯分布。
目前,智能摄像机中所部署的模型通常是由云服务器预先通过大量的训练数据对模型进行训练得到的。并且,在云服务器训练模型的过程中,云服务器的训练目标通常仅仅是提高模型的预测精度。在云服务器训练得到模型后,云服务器再将训练得到的模型部署于智能摄像机中。
经申请人研究发现,由于云服务器中具有充足的处理资源和内存资源,因此目前在云服务器上训练模型时,往往并不会考虑模型在云服务器上运行时所产生的资源开销。然而,在模型实际所部署的智能摄像机中,处理资源和内存资源往往是有限的。因此,在将云服务器训练得到的模型部署至现场的智能摄像机之后,往往会出现由于智能摄像机的处理资源和内存资源有限,而导致模型的使用效果较差的现象。具体来说,在智能摄像机的处理资源和内存资源有限的情况下,如果模型在推理阶段需要占用大量的处理资源和内存资源,模型的推理耗时可能会延长,导致智能摄像机处理图像的效率较低。又例如,在智能摄像机需要同时处理其他任务时,如果模型在推理阶段需要占用大量的处理资源和内存资源,将会影响智能摄像机执行其他的任务,导致智能摄像机的响应效率较低。
简单来说,由于模型的训练环境和实际部署环境是割裂的,因此在将模型部署至现场的智能摄像机之后,往往会出现模型的使用效果较差的现象,导致模型的适应性较差。
有鉴于此,本申请实施例提供了一种模型处理方法,通过对待优化模型的结构和/或权重参数进行不同的调整,得到多个不同的候选模型,并且测试现场设备在运行各个候选模型时的性能指标,最终再基于现场设备在运行模型过程中的性能指标来选择将满足现场运行要求的模型部署至现场设备,进而提高模型在实际部署现场的使用效果,保证模型在不同部署场景下的适应性。
请参阅图2,图2为本申请实施例提供的一种模型处理方法的应用场景的示意图。如图2所示,云服务器基于待优化模型生成多个候选模型,然后云服务器将所生成的多个候选模型部署至目标设备上,由目标设备分别运行该多个候选模型。并且,云服务器获取目标设备运行多个候选模型中的各个候选模型时的性能指标,例如推理耗时、处理资源占用量以及内存资源占用量等指标。最后,云服务器根据各个候选模型被目标设备运行时所对应的性能指标,从多个候选模型中确定一个目标模型,该目标模型则用于实际部署在目标设备上。
需要说明的是,在图2所示的应用场景中,该模型处理方法是应用于云服务器上,即模型处理方法的执行主体为云服务器。在另一种应用场景下,该模型处理方法也可以是应用于目标设备上,即该模型处理方法的执行主体为目标设备,并不涉及目标设备与其他设备之间的交互。
具体地,本申请实施例中的目标设备例如可以为智能摄像机、智能手机、平板电脑、机器人、自动驾驶车辆中的电子设备等设备。
在一种可能的应用场景中,目标设备例如可以为交通安全、智能安防、智慧城市等场景下所部署的智能摄像机,用于拍摄得到交通道路、小区、电梯等现场场景的图像,并对拍摄得到的图像进行分析处理,以执行相应场景下的图像处理任务。例如,智能摄像机可以通过模型来预测图像中的场景的类型。
在另一种可能的应用场景中,目标设备例如可以为智能手机,用于拍摄得到用户在日常生活中的各种图像,并对拍摄得到的图像进行分析处理,以满足用户的图像处理需求。例如,智能手机通过模型来预测各个图像所属的类型,以实现对用户所拍摄得到的各个图像进行分类。
在另一种可能的应用场景中,目标设备例如可以为机器人,用于在机器人在移动过程中拍摄得到移动路径中的各种图像,并对拍摄得到的图像进行分析处理,以满足机器人避障的需求。例如,机器人通过模型来预测各个图像中的物体是否为障碍物,以使得机器人确认是否需要避开障碍物。
在另一种可能的应用场景中,目标设备例如可以为自动驾驶车辆中的电子设备,用于处理自动驾驶车辆在行驶过程中所拍摄得到的各种图像,以满足自动驾驶车辆的行驶需求。例如,自动驾驶车辆中的电子设备通过模型来预测拍摄得到的各个图像中的物体是否为障碍物、行人或车辆,以使得自动驾驶车辆及时调整行驶策略(例如减速、变向行驶)。
以上举例介绍了多种可能的应用场景,在实际应用中,本申请实施例提供的模型处理方法也可以是应用于模型训练环境与模型实际部署环境具有差异的其他应用场景,本实施例对此并不做具体限定。
以上介绍了本申请实施例提供的模型处理方法所应用的场景和设备,以下将详细介绍本申请实施例提供的模型处理方法。
请参阅图3,图3为本申请实施例提供的一种模型处理方法的流程示意图。如图3所示,该模型处理方法包括以下的步骤301-304。
步骤301,获取待优化模型。
本实施例中,模型处理方法可以是应用于目标设备上,即实际需要部署模型的一类设备。该模型处理方法也可以是应用于云服务器上,该云服务器专门负责模型的处理,而不实际部署模型。
其中,待优化模型可以是预先训练好的神经网络模型,例如卷积神经网络模型或残差网络模型等模型,本实施例并不对待优化模型的类型进行具体限定。
具体来说,当该模型处理方法应用于目标设备上时,待优化模型例如可以为目标设备上已部署的模型,即目标设备对已部署的待优化模型进行进一步的优化。例如,目标设备在工作过程中,通过执行本实施例的模型处理方法,来对已部署的模型进行优化,进而实现本地已部署模型的升级。
当该模型处理方法应用于云服务器上时,待优化模型可以为云服务器基于模型需处理的任务所训练得到的模型,且云服务器需要针对该待优化模型实际需部署的目标设备来进行进一步的优化,以便于提高模型在目标设备上运行时的性能表现。
步骤302,基于待优化模型得到多个候选模型,多个候选模型是对待优化模型的结构和/或权重参数进行调整得到的。
本实施例中,在获取到待优化模型之后,可以分别对待优化模型执行多次不同的调整,从而得到多个不同的候选模型。具体地,在每次对待优化模型执行调整的过程中,可以是仅对待优化模型的结构进行调整,也可以是仅对待优化模型的权重参数进行调整,还可以是同时对待优化模型的结构和权重参数进行调整。即,在对待优化模型所执行的多次调整中,每次调整均可以是对待优化模型的结构和/或权重参数进行调整。
其中,待优化模型中可被调整的结构例如可以包括待优化模型中的神经网络层的层数(即待优化模型的深度)、待优化模型中每个神经网络层的大小(即神经网络层的通道数量)、待优化模型中每个神经网络层所使用的算子类型以及待优化模型中不同的神经网络层之间的连接方式等结构。
待优化模型中的权重参数则可以是指各个神经网络层中的神经单元的权重系数。
可选的,该多个候选模型可以是基于相同的训练数据集训练得到的,该训练数据集包括已部署于现场环境的目标设备所采集的图像。也就是说,在调整待优化模型的结构之后,可以得到多个结构调整后的模型;然后基于相同的训练数据集对这多个结构调整后的模型进行训练,即可得到上述的多个候选模型。或者,在不调整待优化模型的结构的情况下,可以是基于训练数据集重新对待优化模型进行训练,以调整待优化模型中的权重参数,进而得到候选模型。
其中,训练数据集中的图像是目标设备在工作过程中所采集的图像,即图像中的内容具体是目标设备的工作环境。例如,部署于现场环境的目标设备可以周期性地采集工作环境中的图像,进而基于采集到的图像得到训练数据集。
此外,为了保证训练数据集的多样性,现场环境的目标设备也可以是根据设定的规则来采集图像作为训练数据集。例如,现场环境的目标设备可以是在各种天气条件(例如晴天、阴天、雨天、雾天等天气)以及各种时段(例如早上、中午、下午、傍晚、晚上等时段)下触发采集图像来生成训练数据集。
通过采用目标设备所采集的工作环境的图像来作为训练数据集,能够有针对性地对候选模型进行训练,提高候选模型对目标设备的工作环境的适应性(即提高候选模型对特定工作场景的适应性),保证候选模型部署至现场环境下的目标设备时能够具有较高的预测精度。
步骤303,分别获取目标设备运行多个候选模型中的每个候选模型时的性能指标。
需要说明的是,在本实施例中,目标设备并非是特指某一个设备,而是可以泛指具有相同的处理资源和存储资源的一类设备。例如,目标设备可以是指由某一厂商生产的某一款式中特定型号的一个或多个设备,该一个或多个设备具有相同的处理芯片以及存储空间(即处理资源和存储资源相同)。因此,属于目标设备的这一类设备在运行同一个模型时的性能指标实际上是相同的。
这样一来,在本实施例提供的方法应用于云服务器的情况下,云服务器可以是将多个候选模型发送给已部署在现场环境的一个或多个设备,以获取该一个或多个设备在运行每个候选模型时的性能指标,其中已部署在现场环境的一个或多个设备均为属于目标设备的一类设备。
此外,云服务器也可以是将多个候选模型发送给部署于云端的测试设备,以获取测试设备在运行每个候选模型时的性能指标。其中,部署于云端的测试设备与部署于现场环境的待部署模型的设备均为属于目标设备的一类设备。简单来说,当云服务器需要对待优化模型进行优化并将优化后的模型部署至现场环境的设备A时,云服务器可以是利用云端上与设备A同属于目标设备的测试设备B来获取每个候选模型对应的性能指标。由于现场环境的设备A与云端上的测试设备B均为属于目标设备的一类设备,因此两者的处理资源和内存资源是相同的,设备A与测试设备B在运行同一个候选模型时的性能指标也是相同的,因此,云服务器可以采用测试设备B来代替设备A运行多个候选模型,以避免影响设备A的正常工作。
在本实施例提供的方法应用于已部署于现场环境的目标设备的情况下,现场环境中属于目标设备的任意一个设备可以是逐个地运行候选模型,从而获得运行每个候选模型时的性能指标。或者,现场环境中属于目标设备的多个设备可以是联合起来运行多个候选模型。即,每个设备负责运行多个候选模型中的一部分候选模型,最终将每个设备运行候选模型时的性能指标进行汇总,得到目标设备运行多个候选模型中每个候选模型的性能指标。
可选的,目标设备运行候选模型时的性能指标可以是包括以下指标中的一个或多个:推理耗时、处理资源占用量以及存储资源占用量。其中,推理耗时是指目标设备将待处理数据输入候选模型,并通过运行候选模型得到处理结果所需的时间。处理资源占用量是指目标设备在运行候选模型时所需占用的处理资源,例如可以是通过中央处理器(centralprocessing unit,CPU)占用率来表示。存储资源占用量是指目标设备在运行候选模型时所需占用的内存资源,例如可以是通过内存占用率来表示;或者,存储资源占用量还可以是指候选模型部署于目标设备上时所需占用的存储资源,即候选模型对应的模型文件的大小。
步骤304,根据目标设备运行每个候选模型时的性能指标,从多个候选模型中确定目标模型,目标模型用于部署至目标设备。
在获取到目标设备运行每个候选模型时的性能指标之后,即可获知每个候选模型在实际现场环境运行时性能表现,进而可以在多个候选模型中选择满足现场环境运行需求的目标模型。最后,从多个候选模型中所选择的目标模型可以是部署至现场环境中的目标设备。
例如,在本实施例方法应用于云服务器的情况下,云服务器在确定目标模型后,可以将目标模型发送给现场环境中的目标设备,以实现更新目标设备中已部署的模型。又例如,在本实施例方法应用于目标设备的情况下,目标设备可以是在确定目标模型后,采用目标模型代替目标设备中原先所部署的模型,从而实现模型的本地更新。
本方案中,通过对待优化模型的结构和/或权重参数进行不同的调整,得到多个不同的候选模型,并且测试现场设备在运行各个候选模型时的性能指标,最终再基于现场设备在运行模型过程中的性能指标来选择将满足现场运行要求的模型部署至现场设备,进而提高模型在实际部署现场的使用效果,保证模型在不同部署场景下的适应性。
简单来说,本方案中通过考虑不同的候选模型在目标设备上运行时的性能指标,来选择目标模型,实际上是将模型实际所运行的硬件环境(即目标设备的硬件设备)纳入了模型优化的流程中,进而保证了模型在硬件环境不同的各种部署场景下均能够具有较好的适应性。
可选的,在步骤304中,还可以是同时考虑候选模型的预测精度以及候选模型对应的性能指标,来实现目标模型的选择。
示例性地,在得到多个候选模型后,可以是先获取多个候选模型中每个候选模型的预测精度,然后再根据每个候选模型的预测精度以及目标设备运行每个候选模型时的性能指标,从多个候选模型中确定目标模型。
也就是说,在多个候选模型中选择目标模型时,可以将候选模型的预测精度以及候选模型所对应的设备运行性能指标同时作为选择目标模型的参考条件,进而同时兼顾到模型的预测精度以及设备的运行性能,提高目标模型在现场环境部署时的性能表现,满足用户的多样性需求。
在本实施例方法应用于云服务器的情况下,由于云服务器上所获取到的训练数据集中的每个训练数据通常都是具有标签的(其中标签可以是人为标注的),因此云服务器可以通过对比候选模型所输出的预测结果与训练数据的标签之间的差异,来获取各个候选模型的预测精度。例如,假设训练数据集中包括1万个图像,且该1万个图像分别具有对应的标签(其中,标签用于指示图像对应的场景),在云服务器运行的候选模型过程中,云服务器将该1万个图像依次输入至候选模型中,得到候选模型所预测的图像场景。如果,在1万个图像中,候选模型所预测的图像场景与图像对应的标签相同的图像共有9000个,则可以确定该候选模型的预测精度为90%。
在本实施例方法应用于目标设备的情况下,由于目标设备的存储资源有限,目标设备往往难以获取到大量具有标签的训练数据作为训练数据集,因此目标设备可以是将实时采集的图像作为训练数据来对候选模型进行训练。在这种情况下,目标设备实时采集的图像并没有对应的标签,因此目标设备无法通过对比候选模型的预测结果与图像的标签,来获得各个候选模型的预测精度。
基于此,在本实施例中,可以是以目标设备原先所部署的待优化模型作为参考模型,通过对比待优化模型的预测结果与候选模型的预测结果,来确定各个候选模型的预测精度。
示例性地,在待优化模型为预训练好的模型的情况下,可以将测试数据集分别输入待优化模型和多个候选模型,得到待优化模型对应的预测结果以及每个候选模型对应的预测结果。然后,通过对比每个候选模型对应的预测结果与待优化模型对应的预测结果,得到每个候选模型的预测精度。其中,测试数据集中所包括的数据可以是与训练数据集中的数据具有相同的类型,且该测试数据集是专门用于测试候选模型对应的预测结果。例如,该测试数据集中的测试数据可以是目标设备在工作环境中实时采集的图像。
也就是说,本实施例是以待优化模型为参考模型,以待优化模型的预测结果为参考结果来确定候选模型的预测精度。针对于同一输入数据,如果候选模型的预测结果与待优化模型的预测结果相同,则可以认为候选模型的预测结果是正确的;如果候选模型的预测结果与待优化模型的预测结果不相同,则可以认为候选模型的预测结果是不正确的。这样一来,通过对比待优化模型针对于测试数据集的各个预测结果以及候选模型针对于测试数据的各个预测结果,即可得到候选模型的预测精度。
本方案中,在难以获取到训练数据的标签时,通过以待优化模型为参考模型,对比待优化模型的预测结果与候选模型的预测结果之间的差异来实现确定各个候选模型的预测精度,能够在训练环境受限的情况下,在实现目标模型运行所需的性能与目标设备的性能匹配的前提下,仍能够保证目标模型的预测精度。
需要说明的是,由于待优化模型本身的预测精度往往不会是100%,在以待优化模型为参考模型来得到各个候选模型的预测精度时,各个候选模型的预测精度往往会具有一定的误差,即难以获得各个候选模型实际的预测精度。但是,相较于待优化模型,候选模型所对应的性能指标可能会得到优化,且候选模型所对应的性能指标往往是准确无误的,因此在目标设备的性能指标的重要性高于模型预测精度的重要性的场景下,采用本方案的方式来更新目标设备中的待优化模型往往也能够使得模型具有良好的使用效果(即在牺牲模型一定的预测精度的情况下尽可能提高目标设备运行模型时的性能指标),提高模型的场景适应性。
以上实施例介绍了如何获取用于选择目标模型的参考信息(即候选模型的预测精度以及对应的性能指标),以下将详细介绍基于参考信息从多个候选模型中确定目标模型的具体方式。
可选的,在本实施例中,从多个候选模型中确定目标模型的方式可以有多种。
实现方式1,根据用户的指令来选择目标模型。
示例性地,云服务器可以根据每个候选模型的预测精度以及目标设备运行每个候选模型时的性能指标,从多个候选模型中确定预测精度和性能指标满足预设条件的多个待选择模型,并在显示界面上展示多个待选择模型。具体地,在显示界面上展示多个待选择模型时,可以是同时显示该多个待选择模型中每个模型的预测精度及对应的性能指标,以便于用户根据每个模型的预测精度及对应的性能指标来选择满足需求的模型。
在显示界面上展示多个待选择模型后,用户可以根据实际需求在显示界面上选择实际需要部署的模型,从而触发向云服务器下发第一指令。这样,云服务器可以接收到用户下发的第一指令,该第一指令用于指示在多个待选择模型中选择目标模型。然后,响应于第一指令,云服务器在多个待选择模型中确定目标模型。
其中,预设条件可以是指用户预先定义好的条件。当多个候选模型中的任意一个候选模型满足预设条件时,云服务器则可以将该候选模型展示在显示界面上,以供用户选择。例如,在用户对模型的预测精度有一定要求的情况下,预设条件具体可以为:候选模型的预测精度大于或等于预设精度(例如90%)。又例如,在用户对模型的推理耗时有一定要求的情况下,预设条件具体可以为:候选模型的推理耗时小于或等于预设耗时(例如0.6秒)。再例如,在用户对模型的处理资源和内存资源的占用量有一定要求的情况下,预设条件具体可以为:候选模型的CPU占用率和内存占用率小于或等于预设占用率。再例如,在用户对模型的预测精度、推理耗时、处理资源和内存资源的占用量均有一定要求的情况下,预设条件具体可以为:候选模型的预测精度大于或等于预设精度、推理耗时小于或等于预设耗时、且候选模型的CPU占用率和内存占用率小于或等于预设占用率。总的来说,预设条件可以是根据用户对于模型的实际需求来定,本实施例并不限定预设条件的具体内容。
示例性地,请参阅图4,图4为本申请实施例提供的一种在显示界面上展示多个待选择模型的示意图。如图4所示,云服务器在多个候选模型中确定满足预设条件的多个待选择模型后,可以将该多个待选择模型展示在显示界面上,并通过文字“请选择部署于智能摄像机上的模型”来提示用户选择目标模型。具体地,在显示界面上,显示了每个待选择模型对应的预测精度、推理耗时、CPU占用率以及内存占用率。例如,模型1的预测精度为97.5%,推理耗时为0.5秒,CPU占用率为80%,内存占用率为90%。
请参阅图5,图5为本申请实施例提供的一种基于用户指令选择部署模型的示意图。如图5所示,当用户在云服务器的显示界面上选择了模型2为部署于智能摄像机上的模型时,云服务器根据用户所下发的指令,将模型2的模型文件发送至已部署于现场环境的智能摄像机。这样,智能摄像机通过解析模型2的模型文件,实现模型2的部署,从而由模型2代替智能摄像机中原先所部署的模型。
此外,在显示界面上,云服务器可以是显示经过排序后的多个待选择模型,以便于用户更关心的部分模型能够排在前面。具体地,多个待选择模型的排序方式可以是与预设条件相关。例如,在预设条件为候选模型的预测精度大于或等于预设精度的情况下,多个待选择模型的排序方式则可以是按照预测精度从大到小的方式进行排序,以便于用户能够更便捷地在显示界面上关注到预测精度较高的模型。此外,云服务器也可以是基于其他的方式来对多个待选择模型进行排序,在此不做具体限定。
实现方式2,根据预先设定的规则来选择目标模型。
具体而言,用户可以根据实际需部署模型的工作场景的需求,预先设定选择目标模型的规则。这样,在获取到多个候选模型后,则可以根据用户预先设定的规则来选择目标模型。例如,在用户重点关注模型的预测精度或模型对应的某一个性能指标时,预先设定的规则具体可以为:在其他性能指标满足要求的情况下,选择预测精度或目标性能指标最优的候选模型作为目标模型。
比如,用户预先设定的规则具体可以为:在推理耗时小于0.4秒、CPU占用率小于70%且内存占用率低于80%的模型中,选择预测精度最高的模型。这样,云服务器或目标设备可以先在多个候选模型中确定推理耗时小于0.4秒、CPU占用率小于70%且内存占用率低于80%的一部分模型,然后再在这部分模型中选择预测精度最高的模型为目标模型。
又例如,在用户同时关注模型的预测精度以及模型对应的所有性能指标时,需要在模型的预测精度以及所有性能指标之间的矛盾中取平衡值。因此,预先设定的规则具体可以为:对模型的预测精度及所有性能指标进行加权求和,以选择求和结果最大的模型作为目标模型。
示例性地,在确定目标模型的过程中,可以是对目标设备运行每个候选模型时的多个性能指标以及模型的预测精度进行加权求和,得到每个候选模型对应的求和结果。其中,多个性能指标中每个性能指标所对应的权重是基于每个性能指标的优先级确定的,模型的预测精度所对应的权重也是基于预测精度的优先级确定的。
也就是说,性能指标的优先级越高,则该性能指标所对应的权重也越大;类似地,预测精度的优先级越高,则预测精度所对应的权重也越大。其中,各个性能指标和预测精度的优先级可以是由用户根据实际需求预先定义的;性能指标和预测精度的优先级与权重之间的对应关系也可以是由用户预先定义的,本实施例对此并不做具体限定。例如,在用户定义推理耗时的优先级最高,处理资源占用量和存储资源占用量的优先级中等,预测精度的优先级最低的情况下,推理耗时所对应的权重可以为0.5,处理资源占用量所对应的权重可以为0.2,存储资源占用量所对应的权重也可以为0.2,预测精度所对应的权重可以为0.1。
然后,基于每个候选模型对应的求和结果,从多个候选模型中确定求和结果最小的目标模型。也就是说,目标模型是多个候选模型中求和结果最小的一个模型。
具体地,对于推理耗时、处理资源占用量以及内存占用量等性能指标而言,这些性能指标的值越小,则代表模型在目标设备上的应用效果越好;对于模型的预测精度而言,预测精度越高,则代表模型在目标设备上的应用效果越好。因此,在对目标设备运行每个候选模型时的多个性能指标以及模型的预测精度进行加权求和的过程中,可以是先求取模型的预测精度的倒数,然后将该多个性能指标与预测精度的倒数来进行加权求和。这样,最终得到的求和结果与性能指标及预测精度之间的关系为:性能指标越小,或预测精度越大,则求和结果越小,代表模型的应用效果越好。
此外,对于各个性能指标的值以及预测精度的倒数值而言,这些数值的分布范围并不一致。因此,为了便于计算求和结果,可以是对各个性能指标的值以及预测精度的倒数值执行归一化操作,即将各个性能指标的值以及预测精度的倒数值归一化至(0,1)的范围内,然后再对归一化后的数值执行加权求和,得到求和结果。
本方案中,通过对目标设备运行候选模型时的各个性能指标进行加权求和,并基于求和结果在多个候选模型中选择目标模型,能够综合考虑多个性能指标来选出满足实际部署需求的目标模型,提高模型在实际部署场景下的使用效果。
可以理解的是,针对于同一个待优化模型,通过采用不同的结构和/或权重参数调整方式,可以得到大量不同的候选模型。候选模型的数量越多,那么求取各个候选模型所对应的性能指标的过程越复杂。因此,本实施例中可以是有针对性生成候选模型,即朝着模型对应的性能指标变优的方向来生成候选模型,从而避免生成过多的候选模型,降低执行本实施例方法的资源开销。
示例性地,可以参阅图6,图6为本申请实施例提供的一种基于待优化模型生成多个候选模型的流程示意图。如图6所示,在上述的步骤302中,基于待优化模型得到多个候选模型的具体过程包括以下的步骤3021-3024。
步骤3021,获取待优化模型的结构调整范围,该结构调整范围用于指示待优化模型的结构能够调整的范围。
可以理解的是,在对待优化模型进行结构调整时,如果待优化模型的结构调整范围越大,那么用于生成候选模型的结构空间也就越大,则代表搜索目标模型的范围越大,因此搜索得到目标模型的耗时也会越大。因此,为了提高搜索目标模型的效率,在待优化模型的原有基础上,合理地界定待优化模型的结构调整范围,能够有效地减少所生成的候选模型,进而提高搜索目标模型的效率。
其中,待优化模型的结构调整范围例如可以是包括:待优化模型中的神经网络层的层数的调整范围、待优化模型中每个神经网络层的通道数量的调整范围、待优化模型中每个神经网络层所使用的算子类型的调整范围以及待优化模型中不同的神经网络层之间的连接方式的调整范围。
由于本实施例中的模型优化目标是目标设备运行模型时的性能指标,因此本实施例中可以是基于目标设备运行待优化模型时的性能指标来确定待优化模型的结构调整范围。
示例性地,对于待优化模型,可以是先获取目标设备运行待优化模型中的网络层时的性能指标。一般地,待优化模型通常会包括多个网络层,通过在目标设备上运行待优化模型,可以获取到目标设备运行待优化模型中的每一个网络层时的性能指标。
然后,根据目标设备运行网络层时的性能指标,确定待优化模型中的每个网络层的结构调整范围。
其中,待优化模型中的网络层的结构调整范围与目标设备运行该网络层时的性能指标具有正相关关系。具体来说,如果目标设备运行某一个网络层时的性能指标较低,代表该网络层的结构较好,因此可以确定该网络层的结构调整范围较小,即在小范围内调整该网络层的结构。如果目标设备运行某一个网络层时的性能指标较高,代表该网络层的结构较差,因此可以确定该网络层的结构调整范围较大,即在大范围内调整该网络层的结构。
例如,在调整待优化模型的结构时,将待优化模型的每一个网络层的通道数量作为通道数量搜索的上限值U。然后,计算每个网络层的耗时与整个待优化模型的耗时之间的比例,以及计算每个网络层的资源占用量(即处理资源占用量和内存资源占用量)与整个待优化模型的资源占用量之间的比例。对于耗时占比及资源占用量占比均超过40%的网络层,该网络层的通道数量搜索范围下限定义为0.2U,即通道数量的取值范围可以为[0.2U,U];对于耗时占比及资源占用量占比均低于10%的网络层,该网络层的通道数量搜索范围下限定义为0.5U,即通道数量的取值范围可以为[0.5U,U];对于耗时占比及资源占用量占比处于10%-40%的网络层,该网络层的通道数量搜索范围具体为[0.5U,U]且算子类型搜索范围包括普通卷积、深度分离卷积、组卷积等算子类型。其中,在最后一种情况中加入算法类型搜索的主要目的是提高对这一类网络层优化的自由度,通过对算子类型进行调整,来探索进一步降低耗时和资源占用量的可能性。
步骤3022,在结构调整范围内,分别对待优化模型的结构进行多次随机调整,得到多个第一候选模型。
具体地,在确定待优化模型中每一个网络层的结构调整范围之后,针对于每个网络层,可以在该网络层的结构调整范围内随机对该网络层进行调整,从而实现对待优化模型的结构的随机调整。这样,通过分别对待优化模型的结构进行多次随机调整,能够得到多个第一候选模型,且每个第一候选模型所执行的调整都是不同的。
步骤3023,基于目标设备运行多个第一候选模型中的每个第一候选模型时的性能指标,确定待优化模型的结构调整方向。
具体来说,由于该多个第一候选模型中的每个第一候选模型均是对待优化模型的结构进行随机调整后得到的,因此通过确定目标设备运行每个第一候选模型时的性能指标,能够确定每个第一候选模型在结构调整后的性能表现。这样,通过在多个第一候选模型中选择性能指标变低的部分第一候选模型,则可以确定这部分第一候选模型的结构调整方式即为待优化模型的结构调整方向。
步骤3024,基于结构调整方向,对待优化模型的结构进行多次调整,得到多个第二候选模型。
在确定待优化模型的结构调整方向后,可以在该结构调整方向上,对待优化模型的结构进行多次调整,得到多个第二候选模型。
具体地,在步骤3024中,基于多个第一候选模型所确定的结构调整方向可以为待优化模型的初步调整方向,因此可以是基于该结构调整方向对待优化模型的结构进行多次调整,先生成一部分的第二候选模型;然后,再基于目标设备运行这部分第二候选模型时的性能指标,确定待优化模型进一步的结构调整方向,从而基于进一步的结构调整方向对待优化模型进行结构调整,生成另一部分第二候选模型。以此类推,每生成一部分新的第二候选模型之后,都针对新生成的一部分第二候选模型来确定新的结构调整方向,并基于新的结构调整方向来调整待优化模型,得到最新的一部分第二候选模型。这样一来,通过迭代执行上述的过程,则能够多个部分的第二候选模型(即上述的多个第二候选模型)。
其中,多个第一候选模型与多个第二候选模型实际上都是对待优化模型的结构进行调整得到的,区别仅在于多个第一候选模型的生成时间与多个第二候选模型的生成时间不同。具体来说,多个第一候选模型是随机对待优化模型的结构进行调整后得到的,属于迭代过程中初始阶段所产生的模型;多个第二候选模型则是基于结构调整方向对待优化模型的结构进行调整后得到的,属于迭代过程中正常阶段所产生的模型。
此外,由于随机产生的第一候选模型的性能指标也可能优于第二候选模型,因此用于确定目标模型的多个候选模型可以是包括多个第一候选模型和多个第二候选模型,以便于能够选择到性能表现最符合需求的模型作为目标模型。
本方案中,通过分多个阶段来生成候选模型,能够有效地确定待优化模型的结构调整方向,进而有针对性生成候选模型,即朝着模型对应的性能指标变优的方向来生成候选模型,避免生成过多的候选模型,降低资源开销。
以上介绍了本申请实施例所提供的模型处理方法,为便于理解,以下将结合具体例子详细介绍该模型处理方法在实际应用过程中的执行过程。
以模型处理方法应用于云服务器上,且基于该模型处理方法所得到的目标模型部署于智能摄像机上为例,该模型处理方法所应用的系统架构可以参见图7。图7为本申请实施例提供的一种模型处理方法所应用的系统架构的示意图。
如图7所示,在该系统架构中,包括云服务器、智能摄像机和数据库。其中,云服务器包括性能指标反馈单元、模型调整范围生成单元、模型结构搜索单元和显示界面。在该系统架构中,云服务器中的各部分单元与智能摄像机以及数据库之间通过交互来实现本申请实施例提供的模型处理方法,其中具体的交互流程包括以下的步骤701-706。
步骤701,用户在显示界面上指定模型需优化的性能指标。
具体来说,在将智能摄像机部署至现场环境之后,用户可以在云服务器的显示界面上指定智能摄像机上部署的模型所对应的需优化的性能指标。其中,该性能指标为模型在智能摄像机上运行时的性能指标,例如可以包括推理耗时、处理资源占用量、存储资源占用量以及预测精度。
步骤702,智能摄像机采集现场环境的图像,并将图像上传至数据库。
其中,数据库可以是部署于云服务器上,或者数据库可以是部署于与该云服务器连接的其他设备上。
在智能摄像机部署至现场环境之后,管理人员可以是预先设定智能摄像机采集图像的规则,以便于智能摄像机能够采集到各种场景下的图像,提高图像的多样性。
示例性地,智能摄像机可以是在识别到场景的光照条件达到一定的阈值、系统时间进入特定的时间范围或者是识别到当前场景为指定的天气条件时,则调用智能摄像机中的自动抓取功能,周期性地采集现场工作环境的图像,并将采集到的图像通过网络上传至数据库中。
对于上传到数据库的图像,可以根据业务要求的精度和任务的紧急程度,选择组织人力来标注图像(即生成图像的标签),或者使用高性能的大数据模型对图像进行分析,生成接近于真实标注的伪标签。通过这种方式,云服务器可以获得针对具体现场场景的训练数据集和测试数据集。
步骤703,云服务器上的模型调整范围生成单元向模型结构搜索单元反馈模型的调整范围。
具体来说,云服务器上的性能指标反馈单元可以测试智能摄像机上所部署的待优化模型的性能指标,即测试待优化模型中的每个网络层在智能摄像机上运行时的性能指标。然后,模型调整范围生成单元可以根据待优化模型中的每个网络层在智能摄像机上运行时的性能指标,确定待优化模型中每个网络层的结构调整范围。其中,模型调整范围生成单元确定待优化模型中每个网络层的结构调整范围的具体方式可以参考上文实施例的介绍,在此不再赘述。
在云服务器上的模型调整范围生成单元确定待优化模型中每个网络层的结构调整范围后,则可以向模型结构搜索单元反馈待优化模型中每个网络层的结构调整范围,以便于模型结构搜索单元在相应的结构调整范围内调整网络层的结构。
步骤704,针对于智能摄像机上已部署的待优化模型,云服务器上的模型结构搜索单元在模型调整范围内对该待优化模型进行结构调整,生成多个候选模型并向性能指标反馈单元提供该多个候选模型。
步骤705,云服务器上的性能指标反馈单元测试该多个候选模型在智能摄像机上运行时的性能指标,并向模型结构搜索单元反馈该多个候选模型对应的性能指标。
具体地,云服务器可以是循环地执行步骤704-705,从而迭代地生成多批候选模型。
在迭代的初始阶段,云服务器上的模型结构搜索单元基于模型调整范围随机生成一批初始的候选模型后,则向性能指标反馈单元提供所生成的一批初始的候选模型;性能指标反馈单元测试这一批初始的候选模型在智能摄像机上运行时的性能指标,并向模型结构搜索单元反馈各个候选模型所对应的性能指标。
在迭代的正常阶段,云服务器上的模型结构搜索单元根据性能指标反馈单元所反馈的各个候选模型所对应的性能指标,确定模型的结构搜索方向,进而基于模型的结构搜索方向生成一批候选模型,并向性能指标反馈单元提供所生成的一批候选模型。性能指标反馈单元继续测试这一批候选模型在智能摄像机上运行时的性能指标,并向模型结构搜索单元反馈各个候选模型所对应的性能指标。
最终,在达到迭代结束条件后,云服务器上的模型结构搜索单元则停止生成新的候选模型。其中,迭代结束条件例如可以为迭代次数达到预设次数,或者是模型结构搜索单元最后所生成的候选模型的性能指标达到预设要求。
步骤706,云服务器上的模型结构搜索单元从搜索得到的候选模型中选出部分模型作为待选择模型,并将待选择模型展示于显示界面上,以供用户选择目标模型。
具体地,模型结构搜索单元可以从搜索得到的候选模型中选出满足预设条件的部分模型作为待选择模型。其中,预设条件可以是指用户预先定义好的条件。例如,在用户对模型的预测精度有一定要求的情况下,预设条件具体可以为:候选模型的预测精度大于或等于预设精度(例如90%)。又例如,在用户对模型的推理耗时有一定要求的情况下,预设条件具体可以为:候选模型的推理耗时小于或等于预设耗时(例如0.6秒)。再例如,在用户对模型的处理资源和内存资源的占用量有一定要求的情况下,预设条件具体可以为:候选模型的CPU占用率和内存占用率小于或等于预设占用率。总的来说,预设条件可以是根据用户对于模型的实际需求来定,本实施例并不限定预设条件的具体内容。
此外,模型结构搜索单元也可以是对搜索得到的候选模型进行pareto排序,并将第一层pareto排序结果作为待选择模型。其中,在pareto排序中,候选模型x优于候选模型x′的定义如公式1所示。
第一层pareto排序结果集合的定义如公式2所示。
其中,M为性能指标的个数;m为性能指标的序号;表示任意一个m;fm表示候选模型x对应的第m个性能指标;fm(x′)表示候选模型x′对应的第m个性能指标;/>表示存在一个m;f(x)表示候选模型x所对应的所有性能指标;/>表示不存在。
因此,基于公式1可知,候选模型x优于候选模型x′的定义为:候选模型x对应的任意一个性能指标均优于或等于候选模型x′对应的同一个性能指标;以及,候选模型x存在有对应的一个性能指标优于候选模型x′对应的同一个性能指标。
步骤707,云服务器根据用户在显示界面上所选择的目标模型,将目标模型部署至现场环境的智能摄像机。
最后,用户在显示界面上选择好目标模型后,云服务器则可以生成该目标模型对应的模型文件,并将模型文件发送给现场环境的智能摄像机,从而实现更新现场环境的智能摄像机上所部署的模型。
为便于理解,以下继续结合附图详细介绍上述的步骤704-705中,模型结构搜索单元和性能指标反馈单元迭代地生成候选模型的流程。
示例性地,请参阅图8,图8为本申请实施例提供的一种迭代生成候选模型的流程示意图。
如图8所示,云服务器上的模型结构搜索单元和性能指标反馈单元迭代地生成候选模型的流程包括以下的步骤801-806。
步骤801,随机生成一批候选模型。
在迭代的初始阶段,模型结构搜索单元基于待优化模型的结构调整范围,对待优化模型进行多次随机调整,得到一批候选模型。其中,随机生成的一批候选模型的数量为N,N为种群数量。在本实施例中,在一次迭代中同时进行训练和模型结构评估的一批候选模型称为一个种群,种群数量N例如可以为8或16。
步骤802,获取候选模型对应的性能指标。
针对于模型结构搜索单元所生成的任意一批候选模型,性能指标反馈单元可以获得这一批候选模型对应的性能指标。
示例性地,请参阅图9,图9为本申请实施例提供的一种获取候选模型对应的性能指标的示意图。如图9所示,假设一批候选模型中包括候选模型1-候选模型N,可以通过图形处理器(graphics processing unit,GPU)1-GPU N基于相同的训练数据集来分别对候选模型1-候选模型N进行训练,并且通过相同的测试数据集来测试训练后的候选模型1-候选模型N的预测精度。
然后,将训练后的候选模型1-候选模型N传递至自动化部署平台,进而生成训练后的候选模型1-候选模型N所对应的模型文件1-模型文件N。其次,在专门用于测试性能指标的智能摄像机上部署模型文件1-模型文件N,进而获得智能摄像机部署候选模型1-候选模型N时的推理耗时、CPU占用率以及内存占用率等性能指标。其中,用于测试性能指标的智能摄像机的数量可以为N个,每个智能摄像机运行一个候选模型,进而提高获取各个候选模型的性能指标的效率。
步骤803,判断迭代是否达到终止条件。
如果迭代达到终止条件,则结束迭代,得到所生成的所有候选模型。如果迭代未达到终止条件,则继续转至执行步骤804。
其中,终止条件例如可以为迭代次数大于或等于预设次数;或者,最新生成的一批候选模型中存在性能指标满足用户需求的至少一个候选模型。
步骤804,基于候选模型对应的性能指标,通过NSGA-III算法筛选搜索方向。
步骤805,通过MOCMAES算法进一步确定搜索方向。
本实施例中,MOCMAES算法是经过改进优化的遗传搜索算法,该MOCMAES算法通过一个种群迭代地探索搜索空间,一个种群由若干个体参数组组成。通过使用高斯分布建模每个个体的局部搜索空间特性,并使用一个平滑更新的协方差矩阵建模搜索空间中所有待优化参数之间的相关性。具体地,本实施例中改进了MOCMAES算法的算法状态更新方式,通过pareto排序和NSGA-III算法中的参考点筛选方法,确定进入下一次迭代的种群个体,从而保证了种群向着优化方向快速演进。
总的来说,在步骤804中,是基于NSGA-III算法中的参考点筛选方法来评估各个搜索方向的优劣程度,进而基于所选定的参考点来获取多个大致的搜索方向。具体而言,NSGA-III参考点筛选方法通过将整个性能指标值的域空间均匀分成等距离网格,并在每个单元网格中最优选择一个网络结构。相比于MOCMAES原有的筛选方式而言,NSGA-III算法的参考点筛选方法可以控制待筛选网格的范围,从而实现对某个优化目标的定向调优。示例性地,可以参阅图10,图10为本申请实施例提供的一种NSGA-III算法中的参考点筛选方法的示意图。如图10所示,在具有多个优化目标的情况下,基于NSGA-III算法中的参考点筛选方法,可以获取到多个参考点作为大致的搜索方向。
然后,在步骤805中,进一步计算各个搜索方向的搜索项与评估值之间的高斯分布,然后使用高斯分布来建模搜索空间,综合历史评估结果的迭代趋势来确定最终的搜索方向。其中,搜索方向是指为提高模型的性能指标,模型的结构调整范围中每个参数应调整的方向。
步骤806,基于搜索方向生成一批候选模型。
在确定搜索方向后,可以在搜索方向上采样生成一批新的候选模型,并继续转至执行步骤802,以便于获取新生成的候选模型对应的性能指标,完成一次迭代。
以模型处理方法应用于已部署于现场环境的智能摄像机上为例,该模型处理方法所应用的系统架构可以参见图11。图11为本申请实施例提供的一种模型处理方法所应用的另一系统架构的示意图。
如图11所示,在该系统架构中,智能摄像机包括图像采集单元、性能指标反馈单元、模型调整范围生成单元和模型结构搜索单元。在该系统架构中,智能摄像机中的各部分单元之间通过交互来实现本申请实施例提供的模型处理方法,其中具体的交互流程包括以下的步骤1101-1106。
步骤1101,用户指定模型需优化的性能指标。
具体来说,在将智能摄像机部署至现场环境之后,用户可以在云服务器的显示界面上指定智能摄像机上部署的模型所对应的需优化的性能指标,并由云服务器向智能摄像机下发相应的指令,以便于智能摄像机能够获取到模型需优化的性能指标。其中,该性能指标为模型在智能摄像机上运行时的性能指标,例如可以包括推理耗时、处理资源占用量、存储资源占用量以及预测精度。
步骤1102,智能摄像机的图像采集单元实时采集现场环境的图像,并将该图像用于训练基于待优化模型所生成的候选模型。
在本实施例中,由于智能摄像机中的存储资源通常比较有限,因此本实施例中并不包括一个专门用于存储训练数据集的数据库,而是由智能摄像机实时采集现场环境的图像,并将采集到的图像用于训练基于待优化模型所生成的候选模型。
步骤1103,智能摄像机上的模型调整范围生成单元向模型结构搜索单元反馈模型的调整范围。
步骤1104,针对于智能摄像机上已部署的待优化模型,智能摄像机上的模型结构搜索单元在模型调整范围内对该待优化模型进行结构调整,生成多个候选模型并向性能指标反馈单元提供该多个候选模型。
步骤1105,智能摄像机上的性能指标反馈单元测试该多个候选模型在智能摄像机上运行时的性能指标,并向模型结构搜索单元反馈该多个候选模型对应的性能指标。
具体地,智能摄像机可以是循环地执行步骤704-705,从而迭代地生成多批候选模型。
本实施例中,步骤1103-1105与上述的步骤703-705类似,区别在于本实施例中是以智能摄像机中原有的待优化模型作为教师模型,候选模型作为学生模型,通过知识蒸馏的方式来实现候选模型的训练。并且,通过对比教师模型的预测结果以及候选模型预测结果来确定候选模型的预测精度。
这样,本实施例可以保持优化后的模型的预测精度尽可能与原有模型一致的前提下,最大程度地优化模型的资源消耗量,改善模型的运行效率。
步骤1106,智能摄像机上的模型结构搜索单元根据预设规则,从搜索得到的候选模型中选择目标模型,并将目标模型部署于智能摄像机上。
具体来说,在确定目标模型的过程中,智能摄像机可以是根据各个性能指标对应的优先级,对每个候选模型的性能指标进行加权求和,得到每个候选模型对应的求和结果。然后,智能摄像机选择求和结果最小的候选模型作为目标模型。
其中,在对每个候选模型的性能指标进行加权求和之前,对于各个性能指标值,可以按照公式3来进行归一化操作,然后再基于公式4的权重值来执行加权求和,得到求和结果。
在对每个候选模型的性能指标进行加权求和时,各个性能指标的权重值的定义如公式4所示。
其中,fm(x)为归一化后的性能指标值;为多个候选模型中最小的性能指标值;/>为多个候选模型中最大的性能指标值;Wm为权重值;M为性能指标的个数;m为性能指标的序号。
以上详细介绍了本申请实施例提供的模型处理方法,接下来将介绍本申请实施例提供的用于执行上述方法的设备。
请参阅图12,图12为本申请实施例提供的一种模型处理装置的结构示意图。如图12所示,本申请实施例提供的一种模型处理装置1200,包括:获取模块1201,用于获取待优化模型;处理模块1202,用于基于待优化模型得到多个候选模型,多个候选模型是对待优化模型的结构和/或权重参数进行调整得到的;获取模块1201,还用于分别获取目标设备运行多个候选模型中的每个候选模型时的性能指标;处理模块1202,还用于根据目标设备运行每个候选模型时的性能指标,从多个候选模型中确定目标模型,目标模型用于部署至目标设备。
在一种可能的实现方式中,多个候选模型是基于相同的训练数据集训练得到的,训练数据集包括目标设备所采集的图像。
在一种可能的实现方式中,该装置1200应用于目标设备;
或者,该装置1200应用于与目标设备连接的云服务器。
在一种可能的实现方式中,性能指标包括以下指标中的一个或多个:推理耗时、处理资源占用量以及存储资源占用量。
在一种可能的实现方式中,处理模块1202,还用于根据目标设备运行每个候选模型时的性能指标,从多个候选模型中确定性能指标满足预设条件的多个待选择模型,并在显示界面上展示多个待选择模型;获取模块1201,还用于接收用户下发的第一指令,第一指令用于指示在多个待选择模型中选择目标模型;处理模块1202,还用于响应于第一指令,在多个待选择模型中确定目标模型。
在一种可能的实现方式中,性能指标包括多个指标;处理模块1202,还用于:
对目标设备运行每个候选模型时的多个指标进行加权求和,得到每个候选模型对应的求和结果,其中多个指标中每个指标所对应的权重是基于每个指标的优先级确定的;
基于每个候选模型对应的求和结果,从多个候选模型中确定求和结果最小的目标模型。
在一种可能的实现方式中,获取模块1201,还用于获取多个候选模型中每个候选模型的预测精度;处理模块1202,还用于根据每个候选模型的预测精度以及目标设备运行每个候选模型时的性能指标,从多个候选模型中确定目标模型。
在一种可能的实现方式中,待优化模型为预训练好的模型;处理模块1202,还用于:
将测试数据集分别输入待优化模型和多个候选模型,得到待优化模型对应的预测结果以及每个候选模型对应的预测结果;
通过对比每个候选模型对应的预测结果与待优化模型对应的预测结果,得到每个候选模型的预测精度。
在一种可能的实现方式中,获取模块1201,还用于获取待优化模型的结构调整范围,结构调整范围用于指示待优化模型的结构能够调整的范围;处理模块1202,还用于:在结构调整范围内,分别对待优化模型的结构进行多次随机调整,得到多个第一候选模型;基于目标设备运行多个第一候选模型中的每个第一候选模型时的性能指标,确定待优化模型的结构调整方向;基于结构调整方向,对待优化模型的结构进行多次调整,得到多个第二候选模型;其中,多个候选模型包括多个第一候选模型和多个第二候选模型。
在一种可能的实现方式中,获取模块1201,具体用于:获取目标设备运行待优化模型中的网络层时的性能指标;根据目标设备运行网络层时的性能指标,确定待优化模型中的网络层的结构调整范围。
在一种可能的实现方式中,待优化模型中的网络层的结构调整范围与目标设备运行网络层时的性能指标具有正相关关系。
请参阅图13,图13为本申请实施例提供的执行设备的一种结构示意图,执行设备1300具体可以表现为智能摄像机、智能手机、平板电脑、笔记本电脑、智能穿戴设备、服务器等,此处不做限定。具体的,具体的,执行设备1300包括:收发器1301、处理器1302和存储器1303(其中执行设备1300中的处理器1302的数量可以一个或多个,图13中以一个处理器为例),其中,处理器1302可以包括应用处理器13021和通信处理器13022。在本申请的一些实施例中,收发器1301、处理器1302和存储器1303可通过总线或其它方式连接。
存储器1303可以包括只读存储器和随机存取存储器,并向处理器1302提供指令和数据。存储器1303的一部分还可以包括非易失性随机存取存储器(non-volatile randomaccess memory,NVRAM)。存储器1303存储有处理器和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各种操作。
处理器1302控制执行设备的操作。具体的应用中,执行设备的各个组件通过总线系统耦合在一起,其中总线系统除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都称为总线系统。
上述本申请实施例揭示的方法可以应用于处理器1302中,或者由处理器1302实现。处理器1302可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1302中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1302可以是通用处理器、数字信号处理器(digital signal processing,DSP)、微处理器或微控制器,还可进一步包括专用集成电路(application specific integratedcircuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。该处理器1302可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1303,处理器1302读取存储器1303中的信息,结合其硬件完成上述方法的步骤。
收发器1301(例如网卡)可用于接收输入的数字或字符信息,以及产生与执行设备的相关设置以及功能控制有关的信号输入。收发器1301还可以用于通过第一接口输出数字或字符信息;以及通过第一接口向磁盘组发送指令,以修改磁盘组中的数据。收发器1301还可以包括显示屏等显示设备。
本申请实施例提供的电子设备具体可以为芯片,芯片包括:处理单元和通信单元,处理单元例如可以是处理器,通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行存储单元存储的计算机执行指令,以使执行设备内的芯片执行上述实施例描述的模型超参数的选择方法,或者,以使训练设备内的芯片执行上述实施例描述的模型超参数的选择方法。可选地,存储单元为芯片内的存储单元,如寄存器、缓存等,存储单元还可以是无线接入设备端内的位于芯片外部的存储单元,如只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random accessmemory,RAM)等。
具体的,请参阅图14,图14为本申请实施例提供的芯片的一种结构示意图,芯片可以表现为神经网络处理器NPU 1400,NPU 1400作为协处理器挂载到主CPU(Host CPU)上,由Host CPU分配任务。NPU的核心部分为运算电路1403,通过控制器1404控制运算电路1403提取存储器中的矩阵数据并进行乘法运算。
在一些实现中,运算电路1403内部包括多个处理单元(Process Engine,PE)。在一些实现中,运算电路1403是二维脉动阵列。运算电路1403还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路1403是通用的矩阵处理器。
举例来说,假设有输入矩阵A,权重矩阵B,输出矩阵C。运算电路从权重存储器1402中取矩阵B相应的数据,并缓存在运算电路中每一个PE上。运算电路从输入存储器1401中取矩阵A数据与矩阵B进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)1408中。
统一存储器1406用于存放输入数据以及输出数据。权重数据直接通过存储单元访问控制器(Direct Memory Access Controller,DMAC)1405,DMAC被搬运到权重存储器1402中。输入数据也通过DMAC被搬运到统一存储器1406中。
BIU为Bus Interface Unit即,总线接口单元1414,用于AXI总线与DMAC和取指存储器(Instruction Fetch Buffer,IFB)1409的交互。
总线接口单元1414(Bus Interface Unit,简称BIU),用于取指存储器1409从外部存储器获取指令,还用于存储单元访问控制器1405从外部存储器获取输入矩阵A或者权重矩阵B的原数据。
DMAC主要用于将外部存储器DDR中的输入数据搬运到统一存储器1406或将权重数据搬运到权重存储器1402中或将输入数据数据搬运到输入存储器1401中。
向量计算单元1407包括多个运算处理单元,在需要的情况下,对运算电路1403的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。主要用于神经网络中非卷积/全连接层网络计算,如批量归一化,像素级求和,对特征平面进行上采样等。
在一些实现中,向量计算单元1407能将经处理的输出的向量存储到统一存储器1406。例如,向量计算单元1407可以将线性函数;或,非线性函数应用到运算电路1403的输出,例如对卷积层提取的特征平面进行线性插值,再例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元1407生成归一化的值、像素级求和的值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路1403的激活输入,例如用于在神经网络中的后续层中的使用。
控制器1404连接的取指存储器(instruction fetch buffer)1409,用于存储控制器1404使用的指令;
统一存储器1406,输入存储器1401,权重存储器1402以及取指存储器1409均为On-Chip存储器。外部存储器私有于该NPU硬件架构。
其中,上述任一处提到的处理器,可以是一个通用中央处理器,微处理器,ASIC,或一个或多个用于控制上述程序执行的集成电路。
可以参阅图15,图15为本申请实施例提供的一种计算机可读存储介质的结构示意图。本申请还提供了一种计算机可读存储介质,在一些实施例中,上述图3所公开的方法可以实施为以机器可读格式被编码在计算机可读存储介质上或者被编码在其它非瞬时性介质或者制品上的计算机程序指令。
图15示意性地示出根据这里展示的至少一些实施例而布置的示例计算机可读存储介质的概念性局部视图,示例计算机可读存储介质包括用于在计算设备上执行计算机进程的计算机程序。
在一个实施例中,计算机可读存储介质1500是使用信号承载介质1501来提供的。信号承载介质1501可以包括一个或多个程序指令1502,其当被一个或多个处理器运行时可以提供以上针对图3描述的功能或者部分功能。
在一些示例中,信号承载介质1501可以包含计算机可读介质1503,诸如但不限于,硬盘驱动器、紧密盘(CD)、数字视频光盘(DVD)、数字磁带、存储器、ROM或RAM等等。
在一些实施方式中,信号承载介质1501可以包含计算机可记录介质1504,诸如但不限于,存储器、读/写(R/W)CD、R/W DVD、等等。在一些实施方式中,信号承载介质1501可以包含通信介质1505,诸如但不限于,数字和/或模拟通信介质(例如,光纤电缆、波导、有线通信链路、无线通信链路、等等)。因此,例如,信号承载介质1501可以由无线形式的通信介质1505(例如,遵守IEEE 802.11标准或者其它传输协议的无线通信介质)来传达。
一个或多个程序指令1502可以是,例如,计算机可执行指令或者逻辑实施指令。在一些示例中,计算设备的计算设备可以被配置为,响应于通过计算机可读介质1503、计算机可记录介质1504、和/或通信介质1505中的一个或多个传达到计算设备的程序指令1502,提供各种操作、功能、或者动作。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、ROM、RAM、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,训练设备,或者网络设备等)执行本申请各个实施例的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、训练设备或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、训练设备或数据中心进行传输。计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的训练设备、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(SolidState Disk,SSD))等。

Claims (25)

1.一种模型处理方法,其特征在于,包括:
获取待优化模型;
基于所述待优化模型得到多个候选模型,所述多个候选模型是对所述待优化模型的结构和/或权重参数进行调整得到的;
分别获取目标设备运行所述多个候选模型中的每个候选模型时的性能指标;
根据所述目标设备运行所述每个候选模型时的性能指标,从所述多个候选模型中确定目标模型,所述目标模型用于部署至所述目标设备。
2.根据权利要求1所述的方法,其特征在于,所述多个候选模型是基于相同的训练数据集训练得到的,所述训练数据集包括所述目标设备所采集的图像。
3.根据权利要求1或2所述的方法,其特征在于,所述方法应用于所述目标设备;
或者,所述方法应用于与所述目标设备连接的云服务器。
4.根据权利要求1-3任意一项所述的方法,其特征在于,所述性能指标包括以下指标中的一个或多个:推理耗时、处理资源占用量以及存储资源占用量。
5.根据权利要求1-4任意一项所述的方法,其特征在于,所述根据所述目标设备运行所述每个候选模型时的性能指标,从所述多个候选模型中确定目标模型,包括:
根据所述目标设备运行所述每个候选模型时的性能指标,从所述多个候选模型中确定性能指标满足预设条件的多个待选择模型,并在显示界面上展示所述多个待选择模型;
接收用户下发的第一指令,所述第一指令用于指示在所述多个待选择模型中选择所述目标模型;
响应于所述第一指令,在所述多个待选择模型中确定所述目标模型。
6.根据权利要求1-4任意一项所述的方法,其特征在于,所述性能指标包括多个指标;
所述根据所述目标设备运行所述每个候选模型时的性能指标,从所述多个候选模型中确定目标模型,包括:
对所述目标设备运行所述每个候选模型时的所述多个性能指标进行加权求和,得到所述每个候选模型对应的求和结果,其中所述多个性能指标中每个性能指标所对应的权重是基于所述每个性能指标的优先级确定的;
基于所述每个候选模型对应的求和结果,从所述多个候选模型中确定求和结果最小的所述目标模型。
7.根据权利要求1-6任意一项所述的方法,其特征在于,所述方法还包括:
获取所述多个候选模型中每个候选模型的预测精度;
所述根据所述目标设备运行每个候选模型时的性能指标,从所述多个候选模型中确定目标模型,具体包括:
根据所述每个候选模型的预测精度以及所述目标设备运行所述每个候选模型时的性能指标,从所述多个候选模型中确定目标模型。
8.根据权利要求7所述的方法,其特征在于,所述待优化模型为预训练好的模型;
所述获取所述多个候选模型中每个候选模型的预测精度,包括:
将测试数据集分别输入所述待优化模型和所述多个候选模型,得到所述待优化模型对应的预测结果以及所述每个候选模型对应的预测结果;
通过对比所述每个候选模型对应的预测结果与所述待优化模型对应的预测结果,得到所述每个候选模型的预测精度。
9.根据权利要求1-8任意一项所述的方法,其特征在于,所述基于所述待优化模型得到所述多个候选模型,包括:
获取所述待优化模型的结构调整范围,所述结构调整范围用于指示所述待优化模型的结构能够调整的范围;
在所述结构调整范围内,分别对所述待优化模型的结构进行多次随机调整,得到多个第一候选模型;
基于所述目标设备运行所述多个第一候选模型中的每个第一候选模型时的性能指标,确定所述待优化模型的结构调整方向;
基于所述结构调整方向,对所述待优化模型的结构进行多次调整,得到多个第二候选模型;
其中,所述多个候选模型包括多个第一候选模型和所述多个第二候选模型。
10.根据权利要求9所述的方法,其特征在于,所述获取所述待优化模型的结构调整范围,具体包括:
获取所述目标设备运行所述待优化模型中的网络层时的性能指标;
根据所述目标设备运行所述网络层时的性能指标,确定所述待优化模型中的所述网络层的结构调整范围。
11.根据权利要求10所述的方法,其特征在于,所述待优化模型中的所述网络层的结构调整范围与所述目标设备运行所述网络层时的性能指标具有正相关关系。
12.一种模型处理装置,其特征在于,包括:
获取模块,用于获取待优化模型;
处理模块,用于基于所述待优化模型得到多个候选模型,所述多个候选模型是对所述待优化模型的结构和/或权重参数进行调整得到的;
所述获取模块,还用于分别获取目标设备运行所述多个候选模型中的每个候选模型时的性能指标;
所述处理模块,还用于根据所述目标设备运行所述每个候选模型时的性能指标,从所述多个候选模型中确定目标模型,所述目标模型用于部署至所述目标设备。
13.根据权利要求12所述的装置,其特征在于,所述多个候选模型是基于相同的训练数据集训练得到的,所述训练数据集包括所述目标设备所采集的图像。
14.根据权利要求12或13所述的装置,其特征在于,所述装置应用于所述目标设备;
或者,所述装置应用于与所述目标设备连接的云服务器。
15.根据权利要求12-14任意一项所述的装置,其特征在于,所述性能指标包括以下指标中的一个或多个:推理耗时、处理资源占用量以及存储资源占用量。
16.根据权利要求12-15任意一项所述的装置,其特征在于,
所述处理模块,还用于根据所述目标设备运行所述每个候选模型时的性能指标,从所述多个候选模型中确定性能指标满足预设条件的多个待选择模型,并在显示界面上展示所述多个待选择模型;
所述获取模块,还用于接收用户下发的第一指令,所述第一指令用于指示在所述多个待选择模型中选择所述目标模型;
所述处理模块,还用于响应于所述第一指令,在所述多个待选择模型中确定所述目标模型。
17.根据权利要求12-15任意一项所述的装置,其特征在于,所述性能指标包括多个指标;
所述处理模块,还用于:
对所述目标设备运行所述每个候选模型时的所述多个指标进行加权求和,得到所述每个候选模型对应的求和结果,其中所述多个指标中每个指标所对应的权重是基于所述每个指标的优先级确定的;
基于所述每个候选模型对应的求和结果,从所述多个候选模型中确定求和结果最小的所述目标模型。
18.根据权利要求12-17任意一项所述的装置,其特征在于,
所述获取模块,还用于获取所述多个候选模型中每个候选模型的预测精度;
所述处理模块,还用于根据所述每个候选模型的预测精度以及所述目标设备运行所述每个候选模型时的性能指标,从所述多个候选模型中确定目标模型。
19.根据权利要求18所述的装置,其特征在于,所述待优化模型为预训练好的模型;
所述处理模块,还用于:
将测试数据集分别输入所述待优化模型和所述多个候选模型,得到所述待优化模型对应的预测结果以及所述每个候选模型对应的预测结果;
通过对比所述每个候选模型对应的预测结果与所述待优化模型对应的预测结果,得到所述每个候选模型的预测精度。
20.根据权利要求12-19任意一项所述的装置,其特征在于,
所述获取模块,还用于获取所述待优化模型的结构调整范围,所述结构调整范围用于指示所述待优化模型的结构能够调整的范围;
所述处理模块,还用于:
在所述结构调整范围内,分别对所述待优化模型的结构进行多次随机调整,得到多个第一候选模型;
基于所述目标设备运行所述多个第一候选模型中的每个第一候选模型时的性能指标,确定所述待优化模型的结构调整方向;
基于所述结构调整方向,对所述待优化模型的结构进行多次调整,得到多个第二候选模型;
其中,所述多个候选模型包括多个第一候选模型和所述多个第二候选模型。
21.根据权利要求20所述的装置,其特征在于,所述获取模块,具体用于:
获取所述目标设备运行所述待优化模型中的网络层时的性能指标;
根据所述目标设备运行所述网络层时的性能指标,确定所述待优化模型中的所述网络层的结构调整范围。
22.根据权利要求21所述的装置,其特征在于,所述待优化模型中的所述网络层的结构调整范围与所述目标设备运行所述网络层时的性能指标具有正相关关系。
23.一种模型处理装置,其特征在于,包括存储器和处理器;所述存储器存储有代码,所述处理器被配置为执行所述代码,当所述代码被执行时,所述电子设备执行如权利要求1至11任意一项所述的方法。
24.一种计算机存储介质,其特征在于,所述计算机存储介质存储有指令,所述指令在由计算机执行时使得所述计算机实施权利要求1至11任意一项所述的方法。
25.一种计算机程序产品,其特征在于,所述计算机程序产品存储有指令,所述指令在由计算机执行时使得所述计算机实施权利要求1至11任意一项所述的方法。
CN202211620575.4A 2022-12-15 2022-12-15 一种模型处理方法及相关装置 Pending CN118211613A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211620575.4A CN118211613A (zh) 2022-12-15 2022-12-15 一种模型处理方法及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211620575.4A CN118211613A (zh) 2022-12-15 2022-12-15 一种模型处理方法及相关装置

Publications (1)

Publication Number Publication Date
CN118211613A true CN118211613A (zh) 2024-06-18

Family

ID=91445249

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211620575.4A Pending CN118211613A (zh) 2022-12-15 2022-12-15 一种模型处理方法及相关装置

Country Status (1)

Country Link
CN (1) CN118211613A (zh)

Similar Documents

Publication Publication Date Title
WO2022083536A1 (zh) 一种神经网络构建方法以及装置
WO2021218517A1 (zh) 获取神经网络模型的方法、图像处理方法及装置
WO2022042713A1 (zh) 一种用于计算设备的深度学习训练方法和装置
CN112990211B (zh) 一种神经网络的训练方法、图像处理方法以及装置
JP7366274B2 (ja) ニューラル・ネットワークのための適応的探索方法および装置
WO2021238366A1 (zh) 一种神经网络构建方法以及装置
CN113807399B (zh) 一种神经网络训练方法、检测方法以及装置
CN110175671A (zh) 神经网络的构建方法、图像处理方法及装置
CN112163601B (zh) 图像分类方法、系统、计算机设备及存储介质
CN111783937A (zh) 一种神经网络构建方法以及系统
CN114997412A (zh) 一种推荐方法、训练方法以及装置
US20220156508A1 (en) Method For Automatically Designing Efficient Hardware-Aware Neural Networks For Visual Recognition Using Knowledge Distillation
CN111797992A (zh) 一种机器学习优化方法以及装置
WO2024198711A1 (zh) 一种联邦学习方法及相关装置
CN113326930A (zh) 数据处理方法、神经网络的训练方法及相关装置、设备
WO2020016337A1 (en) Neural networks having reduced number of parameters
CN113592060A (zh) 一种神经网络优化方法以及装置
JP7096431B2 (ja) ビデオ分析方法及びそれに関連するモデル訓練方法、機器、装置
WO2024212648A1 (zh) 一种分类模型的训练方法及相关装置
CN111931901A (zh) 一种神经网络构建方法以及装置
WO2021120177A1 (zh) 编译神经网络模型的方法和装置
CN117237756A (zh) 一种训练目标分割模型的方法、目标分割方法及相关装置
CN114462628A (zh) 数据增强方法、装置、计算设备以及计算机可读存储介质
CN114120045B (zh) 一种基于多门控混合专家模型的目标检测方法和装置
CN117688984A (zh) 神经网络结构搜索方法、装置及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication