CN114491913A - 一种模型的处理方法以及相关设备 - Google Patents

一种模型的处理方法以及相关设备 Download PDF

Info

Publication number
CN114491913A
CN114491913A CN202011273450.XA CN202011273450A CN114491913A CN 114491913 A CN114491913 A CN 114491913A CN 202011273450 A CN202011273450 A CN 202011273450A CN 114491913 A CN114491913 A CN 114491913A
Authority
CN
China
Prior art keywords
model
value
graph structure
independent variables
arguments
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
CN202011273450.XA
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 CN202011273450.XA priority Critical patent/CN114491913A/zh
Priority to PCT/CN2021/104960 priority patent/WO2022100118A1/zh
Publication of CN114491913A publication Critical patent/CN114491913A/zh
Priority to US18/315,844 priority patent/US20230281250A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Algebra (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Computing Systems (AREA)
  • Operations Research (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例公开一种模型的处理方法以及相关设备,用于模型求解领域中。方法可以包括:获取与第一模型对应的图结构,对图结构进行随机分割,以得到至少两个第一集合,每个第一集合包括至少一个第一自变量,采用列文伯格‑马夸尔特LM算法,对第一自变量的取值进行更新;重复执行随机分割和对第一自变量的取值进行更新的操作,直至满足第一模型的收敛条件,得到第一模型中多个第一自变量的解。将第一模型的求解问题进行了分割,在求解一个子问题的时候就无需占用过多的内存资源;采用随机分割的方式,保证了分割过程的效率;将第一模型的求解问题分割为包括较少自变量的模型的求解问题,有利于执行并行化求解,有利于提高求解过程的效率。

Description

一种模型的处理方法以及相关设备
技术领域
本申请涉及计算机软件领域,尤其涉及一种模型的处理方法以及相关设备。
背景技术
目前,许多计算机视觉、图形学或其他领域的问题都可以通过建模的方式来解决,例如在解决视觉定位、图像融合、三维重建、光流计算或曲线拟合等应用场景中的问题时,都可以通过建立模型,并求解该模型的方式来解决。
但由于随着时代的发展,模型中自变量的数量不断增加,在目前的求解方式中,是将整个待求解的模型作为输入,容易产生内存资源无法支持求解的问题。
发明内容
本申请实施例提供了一种模型的处理方法以及相关设备,将包括大量自变量的第一模型的求解问题进行了分割,在求解一个子问题的时候就无需占用过多的内存资源;此外,采用随机分割的方式对图结构进行分割,实现方式简单,从而保证了分割过程的效率;此外,将包括大量自变量的第一模型的求解问题分割为几个包括较少自变量的子模型的求解问题,有利于执行并行化求解,有利于提高求解过程的效率。
为解决上述技术问题,本申请实施例提供以下技术方案:
第一方面,本申请实施例提供一种模型的处理方法,可用于模型求解领域中,用于执行该方法的模型的处理装置可以为服务器集群,也可以为独立的服务器中,还可以为终端设备中。方法包括:模型的处理装置获取与第一模型对应的图结构,其中,第一模型包括多个第一函数,与第一模型对应有多个第一自变量,图结构包括节点和多个节点之间的边,图结构中的节点与第一自变量一一对应,也即图结构中的一个节点指向第一模型中的一个第一自变量;图结构中多个节点之间的边为根据多个第一函数确定的;进一步地,若两个自变量包括于同一函数中,则指向两个自变量的节点之间具有连接关系;更进一步地,以第一模型包括的多个第一自变量中存在一个第二自变量和一个第三自变量,第二自变量和第三自变量同时存在于第一模型的第二个函数和第三个函数中,则指向第二自变量的节点与指向第三自变量的节点之间存在两条边。模型的处理装置对图结构进行随机分割,也即对前述节点指向的多个第一自变量进行分割,以得到至少两个第一集合,每个第一集合包括至少一个第一自变量。模型的处理装置采用列文伯格-马夸尔特LM算法,对每个第一集合中的第一自变量的取值进行更新;模型的处理装置重复执行随机分割的操作和对每个第一集合中的第一自变量的取值进行更新的操作,直至满足第一模型的收敛条件,得到第一模型中多个第一自变量的解。
本实现方式中,在获取到与第一模型对应的图结构数据之后,对该图结构数据指示的图结构进行随机分割,得到至少两个第一集合,每个第一集合包括至少一个第一自变量,也即将第一模型中所涉及到的所有第一自变量划分为多个第一集合;进而采用列文伯格-马夸尔特LM算法,对每个第一集合中的第一自变量的取值进行更新,也即在每次迭代过程中,均会将第一模型中所涉及到的所有第一自变量划分为多个第一集合,从而将包括大量自变量的第一模型的求解问题进行了分割,由于内存中需要同时存储待求解模型中的所有自变量,一个子模型中包括的自变量的数量较少,则在求解子模型时,需要内存资源存储较少的自变量,也即在求解一个子问题的时候就无需占用过多的内存资源;此外,采用随机分割的方式对图结构进行分割,实现方式简单,从而保证了分割过程的效率;此外,将包括大量自变量的第一模型的求解问题分割为几个包括较少自变量的子模型的求解问题,有利于执行并行化求解,有利于提高求解过程的效率。
在第一方面的一种可能实现方式中,图结构中的每个边均对应两个节点,一个节点代表第一模型中的一个第一自变量。模型的处理装置对图结构进行随机分割,以得到至少两个第一集合,包括:模型的处理装置对图结构的多个边进行随机排序,得到按照第一顺序排列的多个边,并按照第一顺序从多个边中获取第一边,第一边为图结构的多个边中的一个边。模型的处理装置判断与第一边对应的两个第一自变量是否已经和其他节点配对,在与第一边对应的两个第一自变量均未配对的情况下,将与第一边对应的两个第一自变量配对以得到一个第一子集合。模型的处理装置对图结构中每个边均执行前述操作,则获取到与图结构对应的多个第一子集合;其中,可以利用表格、矩阵、不相交森林等数据结构来存储与图结构对应的多个第一子集合。对与图结构对应的多个第一子集合执行合并操作,以得到至少两个第一集合。
本申请实施例中,提供了对图结构进行随机分割的一种具体实现方式,且与同一条边对应的两个节点会存在于同一集合中,以提高同一集合内部的多个自变量的关联度,有利于提高整个第一模型求解的速度。
在第一方面的一种可能实现方式中,在与第一边对应的两个第一自变量中存在一个已配对的自变量的情况下,模型的处理装置可以跳过与第一边对应的两个第一自变量中尚未配对的自变量,进而按照第一顺序从图结构包括的多条边中获取下一条边,或者,直接将与第一边对应的两个第一自变量中尚未配对的自变量确定为一个第一子集合。
在第一方面的一种可能实现方式中,模型的处理装置对与图结构对应的多个第一子集合进行合并操作,包括:模型的处理装置根据图结构中多个节点之间的边,获取与多个第一子集合对应的关联度信息,其中,关联度信息指示多个第一子集合中各个第一子集合之间的关联度,关联度信息包括第二子集合和第三子集合之间的第一关联度,第二子集合和第三子集合均为多个第一子集合中任意两个不同的子集合,第一关联度为基于第二子集合中的自变量与第三子集合中的自变量之间的关联度确定的,两个节点之间的边越多,则节点指向的自变量之间的关联度越高。模型的处理装置根据与多个第一子集合对应的关联度信息,对与图结构对应的多个第一子集合进行合并操作,两个第一子集合之间的关联度越高,两个第一子集合进行合并的概率越大。
本申请实施例中,关联度越高的两个第一子集合之间的关联度越高,两个第一子集合进行合并的概率越大,也即保证关联度高的自变量大概率会分入同一第一集合,从而提高了同一第一集合包括的多个第一自变量之间的关联度,降低了不同的第一集合包括的第一自变量之间的关联度,由于主服务器是将第一模型的所有第一自变量分割成了多个第一集合,分别对每个第一集合包括的至少一个自变量进行求解,两个第一集合中包括的第一自变量之间的关联度越小,则对两个第一集合中的第一自变量进行求解的过程的冲突越小,从而能够使得整个第一模型的求解过程可以更高效的收敛,也有利于提高最后得到的整个第一模型中自变量的求解精度。
在第一方面的一种可能实现方式中,模型的处理装置采用循环的方式来执行合并操作。在多次循环的一次循环中,模型的处理装置在得到用于指示任意两个第一子集合之间关联度的关联度信息之后,可以选取关联度最高的至少一组第一子集合,或者,也可以选取关联度高于第一关联度阈值的至少一组第一子集合。针对至少一组第一子集合中的任一组第一子集合,模型的处理装置将一组第一子集合中每个第一子集合包括的自变量进行合并,得到合并后的第一子集合。模型的处理装置判断合并后的第一子集合包括的自变量的总数是否大于或等于第一阈值,若合并后的第一子集合包括的自变量的总数大于或等于第一阈值,则将该合并后的第一子集合确定为一个第一集合,并将该合并后的第一子集合移除出第一子集合的队列;若合并后的第一子集合包括的自变量的总数小于第一阈值,则该合并后的第一子集合依旧处于第一子集合的队列。模型的处理装置在执行完前述操作,进入下一个循环,重新执行计算用于指示任意两个第一子集合之间关联度的关联度信息,并基于该关联度信息重新执行合并操作。
在第一方面的一种可能实现方式中,第一阈值的取值大小选取依据包括:用于求解的设备所配置的内存资源所能承受的自变量的数量上限、用于求解的设备的数量或其他因素。
在第一方面的一种可能实现方式中,模型的处理装置对与图结构对应的多个第一子集合执行合并操作,以得到至少两个第一集合之后,方法还包括:模型的处理装置获取与第二边对应的两个第一自变量,判断与第二边对应的两个第一自变量(也即由第二边连接的两个节点所指向的两个第一自变量)是否存在于两个不同的第一集合中,若与第二边对应的两个第一自变量存在于两个不同的第一集合中,从两个不同的第一集合中去除与第二边对应的两个第一自变量,并将与第二边对应的两个第一自变量分别确定为两个孤立的第一自变量,第二边为图结构的多个边中的任意一个边。模型的处理装置对图结构中的每条边均执行前述操作。对应的,模型的处理装置采用列文伯格-马夸尔特LM算法,对每个第一集合中的第一自变量的取值进行更新,包括:模型的处理装置采用列文伯格-马夸尔特LM算法,对每个第一集合中的第一自变量以及孤立的第一自变量的取值进行更新。模型的处理装置重复执行随机分割的操作和对每个第一集合中的第一自变量的取值进行更新的操作,包括:模型的处理装置重复执行随机分割的操作和对每个第一集合中的第一自变量以及孤立的第一自变量的取值进行更新的操作。
本申请实施例中,通过上述方式,能够保证不同的第一集合均不包括与同一条边对应的自变量,大大降低不同的第一集合包括的第一自变量之间的关联度,彻底消除两个第一集合中的第一自变量进行求解的过程的冲突越小,进一步提高整个第一模型的求解过程可以更高效的收敛,也有利于提高最后得到的整个第一模型中自变量的求解精度。
在第一方面的一种可能实现方式中,模型的处理装置采用列文伯格-马夸尔特LM算法,对每个第一集合中的第一自变量的取值进行迭代更新,包括:模型的处理装置获取与第一集合中的第一自变量对应的第二模型,第二模型包括至少一个第二函数,至少一个第二函数为基于第一模型包括的多个第一函数确定的。具体的,第一模型中包括多个第一函数,模型的处理装置可以逐个判断每个第一函数中是否存在第一集合中的任一个第一自变量,若存在,则获取该第一函数,并根据每个第一自变量的第一值,将该第一函数中除第一集合中包括的自变量之外的自变量转换为常数,从而得到一个第二函数。作为示例,例如目标第一集合包括的第一自变量有x1,x2和x3,第一模型中涉及x1,x2和x3的三个第一函数分别为x1-x2、x2-x3和x3-x4,x4的第一取值为7,则与x1,x2和x3对应的三个第二函数为x1-x2、x2-x3和x3-7,此处举例仅为说明第二函数和第一函数的区别。模型的处理装置根据列文伯格-马夸尔特LM算法,根据第一集合中的每个第一自变量的第一取值和至少一个第二函数,得到至少一个第二函数中每个第二函数的函数值,第一取值为第一自变量更新前的取值,第一自变量的第一取值可以为第一自变量的初始取值或第一自变量在上一次迭代中生成的值。模型的处理装置根据列文伯格-马夸尔特LM算法,计算与第二函数对应的雅克比矩阵,雅克比矩阵中的非零项包括第一标量对第二自变量的导数;其中,第一标量为与第一集合中的第一自变量对应的所有第二函数的取值的和,第二自变量为组成至少一个第二函数的自变量,不同的第二自变量在所述第二函数中的位置不同,不同的第一自变量的标识不同;或者说,第二自变量为第一自变量按照第二函数的接收顺序重组的结果。作为示例,例如第二模型为minimizex(x3-x7)2+(x1-x7)2+(x2-x6)2+(x3-x5)2+(x1-x4)2,与第二模型中多个第二函数对应有10个第二自变量,分别为y1,1=x3、y1,2=x7、y2,1=x1、y2,2=x7、y3,1=x2、y3,2=x6、y4,1=x3、y4,2=x5、y5,1=x1和y5,2=x4,其中,y1,1为位于式(3)示出的模型第一个函数的第一项的自变量,y1,2为位于式(3)示出的模型第一个函数的第二项的自变量,由此可以看出,多个第二函数中不同位置上的自变量均为不同的第二自变量,而与第二模型中多个第二函数对应有7个第一自变量,分别为x1至x7,其中,x1和x2为不同的标识,x2和x3为不同的标识,也即不同的第一自变量的标识不同,此处举例仅为方便理解第一自变量和第二自变量之间的区别。模型的处理装置根据列文伯格-马夸尔特LM算法,根据第一集合中的每个第一自变量的第一取值、第二函数的函数值和雅克比矩阵,生成第一集合中的第一自变量的第二取值,第二取值为更新后的取值。
本申请实施例中,由于AI处理器只提供了标量对于自变量的自动求导的功能。与第二函数对应的雅克比矩阵是向量函数对于第一自变量的求导,因此不可以采用AI处理器直接完成,但本实现方式中对第一自变量进行分割,从而可以将第二函数对应的雅克比矩阵中的非零项表达为第一标量对于第二自变量的导数,从而可以直接利用AI处理器来对第一自变量的取值进行更新,也即本实现方式中提供的计算雅克比矩阵的方式能够兼容AI处理器,有利于提高对第一自变量的取值进行更新过程的效率,从而提高整个求解过程的效率。
在第一方面的一种可能实现方式中,第一模型的收敛条件为第一模型的取值小于第一阈值,或者,第二取值与第一取值之间的差值小于第二阈值。本申请实施例中,提供了第一模型的收敛条件的两种表现形式,提高了本方案的实现灵活性。
在第一方面的一种可能实现方式中,第一模型为最小二乘模型,第一模型用于以下多种中的任一种应用场景中:三维建模、图片融合、人脸重建网格变形。本申请实施例中,提供了本申请实施例的多种应用场景,提高了本方案的实现灵活性。
第二方面,本申请实施例提供了一种模型的处理方法,可用于模型求解领域中,方法可以包括:第一模型处理装置获取与第一模型对应的图结构,其中,第一模型包括多个第一函数,第一模型包括多个第一自变量,图结构包括多个节点和所述多个节点之间的边,图结构中的节点对应所述第一自变量,图结构中多个节点之间的边为根据多个第一函数确定的;第一模型处理装置对图结构进行随机分割,以得到至少两个第一集合,每个第一集合包括至少一个第一自变量,至少两个第一集合用于指示第二模型处理装置采用列文伯格-马夸尔特LM算法,对每个第一集合中的第一自变量的取值进行更新;第一模型处理装置接收第二模型处理装置发送的第一自变量的更新后的取值;第一模型处理装置重复执行随机分割的操作和接收第一自变量的更新后的取值的操作,直至满足第一模型的收敛条件,得到第一模型中多个第一自变量的解。
在第二方面的一种可能实现方式中,图结构中的每个边均对应两个节点,一个节点代表第一模型中的一个第一自变量;第一模型处理装置对图结构进行随机分割,以得到至少两个第一集合,包括:第一模型处理装置对图结构的多个边进行随机排序,得到按照第一顺序排列的多个边,并按照第一顺序从多个边中获取第一边,第一边为图结构的多个边中的一个边;在与第一边对应的两个第一自变量均未配对的情况下,将与第一边对应的两个第一自变量配对以得到一个第一子集合;对与图结构对应的多个第一子集合执行合并操作,以得到至少两个第一集合。
在第二方面的一种可能实现方式中,第一模型处理装置对与图结构对应的多个第一子集合进行合并操作,包括:第一模型处理装置根据图结构中多个节点之间的边,获取与多个第一子集合对应的关联度信息,其中,关联度信息指示多个第一子集合中各个第一子集合之间的关联度,关联度信息包括第二子集合和第三子集合之间的第一关联度,第二子集合和第三子集合均为多个第一子集合中任意两个不同的子集合,第一关联度为基于第二子集合中的自变量与第三子集合中的自变量之间的关联度确定的,两个节点之间的边越多,则节点指向的自变量之间的关联度越高;根据与多个第一子集合对应的关联度信息,对与图结构对应的多个第一子集合进行合并操作,两个第一子集合之间的关联度越高,两个第一子集合进行合并的概率越大。
在第二方面的一种可能实现方式中,第一模型处理装置对与图结构对应的多个第一子集合执行合并操作,以得到至少两个第一集合之后,方法还包括:第一模型处理装置若与第二边对应的两个第一自变量存在于两个不同的第一集合中,从两个不同的第一集合中去除与第二边对应的两个第一自变量,并将与第二边对应的两个第一自变量分别确定为两个孤立的第一自变量,第二边为图结构的多个边中的任意一个边,至少两个第一集合和孤立的第一自变量用于指示第二模型处理装置采用列文伯格-马夸尔特LM算法,对每个第一集合中的第一自变量和孤立的第一自变量的取值进行更新。
本申请第二方面中,第一模型的处理装置的组成模块还可以用于执行第一方面的各个可能实现方式中模型的处理装置执行的步骤,具体均可以参考第一方面以及第一方面中各种可能的实现方式中的描述,此处不再一一赘述。
第三方面,本申请实施例提供了一种模型的处理方法,可用于模型求解领域中,方法可以包括:第二模型处理装置获取与所述第一集合中的第一自变量对应的至少一个第二函数,所述至少一个第二函数为基于第一模型包括的多个第一函数确定的;第二模型处理装置根据列文伯格-马夸尔特LM算法,对第一集合中的第一自变量的第一自变量的取值进行更新,并向第一模型处理装置发送第一自变量的更新后的取值。
第三方面的一种可能的设计中,第二模型处理装置根据列文伯格-马夸尔特LM算法,对第一集合中的第一自变量的第一自变量的取值进行更新,包括:根据列文伯格-马夸尔特LM算法,根据第一集合中的每个第一自变量的第一取值和第二函数,计算得到第二函数的函数值,第一取值为第一自变量更新前的取值;根据列文伯格-马夸尔特LM算法,计算与第二函数对应的雅克比矩阵,雅克比矩阵包括第一标量对第二自变量的导数,第一标量为与第一集合中的第一自变量对应的所有第二函数的取值的和,第二自变量为组成第二函数的自变量,不同的第二自变量在第二函数中的位置不同,不同的第一自变量的标识不同;根据列文伯格-马夸尔特LM算法,根据第一集合中的每个第一自变量的第一取值、第二函数的函数值和雅克比矩阵,生成第一集合中的第一自变量的第二取值,第二取值为更新后的取值。
本申请第三方面中,第二模型的处理装置的组成模块还可以用于执行第一方面的各个可能实现方式中模型的处理装置执行的步骤,具体均可以参考第一方面以及第一方面中各种可能的实现方式中的描述,此处不再一一赘述。
第四方面,本申请实施例提供一种模型的处理装置,可用于模型求解领域中,装置可以包括:获取模块,用于获取与第一模型对应的图结构数据,其中,第一模型包括多个第一函数,第一模型包括多个第一自变量,图结构包括多个节点和所述多个节点之间的边,图结构中的节点对应所述第一自变量,图结构中多个节点之间的边为根据多个第一函数确定的;分割模块,用于对图结构进行随机分割,以得到至少两个第一集合,每个第一集合包括至少一个第一自变量;更新模块,用于采用列文伯格-马夸尔特LM算法,对每个第一集合中的第一自变量的取值进行更新;循环模块,用于重复执行随机分割的操作和对每个第一集合中的第一自变量的取值进行更新的操作,直至满足第一模型的收敛条件,得到第一模型中多个第一自变量的解。
本申请第四方面提供的模型的处理装置的组成模块还可以用于执行第一方面的各个可能实现方式中模型的处理装置执行的步骤,具体均可以参考第一方面以及第一方面中各种可能的实现方式中的描述,此处不再一一赘述。
第五方面,本申请实施例提供了一种模型的处理装置,包括处理器,处理器与存储器耦合;存储器,用于存储程序;处理器,用于执行存储器中的程序,使得执行设备执行第一方面或第二方面或第三方面的各个可能实现方式中的步骤。
第六方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,当计算机程序在计算机上运行时,使得计算机执行上述第一方面或第二方面或第三方面的模型的处理方法。
第七方面,本申请实施例提供了一种计算机程序,当计算机程序在计算机上运行时,使得计算机执行上述第一方面或第二方面或第三方面的模型的处理方法。
第八方面,本申请提供了一种芯片系统,该芯片系统包括处理器,用于支持终端设备或服务器实现上述方面中所涉及的功能,例如,发送或处理上述方法中所涉及的数据和/或信息。在一种可能的设计中,芯片系统还包括存储器,存储器,用于保存终端设备或通信设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
附图说明
图1a为本申请实施例提供的模型的处理系统的一种系统示意图;
图1b为本申请实施例提供的模型的处理系统的另一种系统示意图;
图2为本申请实施例提供的模型的处理方法的一种流程示意图;
图3为本申请实施例提供的模型的处理方法中图结构的一种示意图;
图4为本申请实施例提供的模型的处理方法中多个第一子集合的一种示意图;
图5为本申请实施例提供的模型的处理方法中采用列文伯格-马夸尔特LM算法对自变量的取值进行更新的一种流程示意图;
图6为本申请实施例提供的模型的处理方法中生成雅克比矩阵的一种示意图;
图7为本申请实施例提供的模型的处理方法的另一种流程示意图;
图8为本申请实施例提供的模型的处理方法的又一种流程示意图;
图9为本申请实施例提供的模型的处理装置的一种结构示意图;
图10为本申请实施例提供的终端设备的一种结构示意图;
图11是本申请实施例提供的服务器一种结构示意图。
具体实施方式
下面结合附图,对本申请的实施例进行描述。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
应理解,本申请实施例提供的第一模型的处理方法可以应用于各种通过建立第一模型并求解第一模型的方式来解决问题的各种应用场景中。其中,第一模型具体可以表现为神经网络或函数;进一步地,前述函数可以为最小二乘函数或其他类型的函数;更进一步地,前述函数可以为非线性函数或线性函数等,应理解,本申请实施例中仅以第一模型为非线性的最小二乘第一模型为例,当第一模型为其他类型的第一模型时,可参阅理解。作为示例,例如本申请实施例可以应用于三维建模、图片融合、人脸重建、网格变形、图像定位或其他应用场景等等,此处不对本申请实施例的应用场景进行穷举。
在前述种种场景中均可能会存在建立的模型中包括的自变量数量过多,导致内存资源无法支持的问题。为了解决前述问题,本申请实施例提供了一种模型处理的方法,接下来先结合图1a和图1b对本申请实施例提供的模型的处理系统进行描述,图1a和图1b分别为本申请实施例提供的模型的处理系统的两种系统示意图。图1a以该模型的处理系统具体表现为服务器集群为例,服务器集群包括主服务器101和子服务器102,主服务器101在获取与第一模型对应的图结构数据后,对图结构进行随机分割(也即对图结构中的多个节点进行随机分割),得到至少两个第一集合,每个第一集合中包括至少一个第一自变量,也即主服务器将第一模型分割成了几个小的第二模型,每个第二模型包括至少一个第二函数,第二模型包括的自变量的数量小于第一模型包括的自变量的数量。主服务器将多个第一集合分配给多个子服务器102,由多个子服务器102并行更新每个第一集合中的第一自变量的取值,并将更新后的取值发送给主服务器101,以通过主服务器101判断是否满足第一模型的收敛条件,若不满足,则由主服务器101重新执行随机分割操作,以及子服务器102重新执行更新每个第一集合中的第一自变量的取值的操作,直至满足第一模型的收敛条件,得到第一模型中每个第一自变量的解。虽然图1a中示出了一个主服务器101和两个子服务器102,但本申请实施例不限定主服务器101和子服务器102的数量,
在图1b中,模型的处理系统具体表现为一个终端设备20,该终端设备20中同时包括中央处理器(central processing unit,CPU)201和人工智能(artificialintelligence,AI)处理器202,具体的,可以由中央处理器201执行图1a中主服务器执行的步骤,AI处理器202执行图1a中子服务器执行的步骤。
由于将大的第一模型分割成了几个小的第二模型,在求解一个子问题的时候就无需占用过多的内存资源。需要说明的是,该模型的处理系统也可以表现为只有一个服务器,则由前述服务器完成随机分割的操作以及更新每个第一集合中的第一自变量的取值的操作。
下面开始对本申请实施例提供的模型的处理方法的具体实现流程进行描述。
本申请的一些实施例中,以模型处理的系统为图1a中示出的系统为例,请参阅图2,图2为本申请实施例提供的模型的处理方法的一种流程示意图,本申请实施例提供的模型的处理方法可以包括:
201、主服务器获取第一模型。
本申请实施例中,在一种情况下,主服务器可以直接接收客户端发送的第一模型;其中,第一模型用于解决具体应用场景中的问题,第一模型包括多个第一函数,每个第一函数中有多个第一自变量,不同的第一函数中可以存在相同的第一自变量。第一模型以及第一自变量的具体类型应结合实际应用场景以及实际解决的问题来确定。作为示例,例如第一模型用于进行图片融合的应用场景中,此处以将图片B融合到图片A的第一区域为例,则融合的目标为希望第一区域的边界颜色尽可能和图片A接近;且第一区域的内部颜色与第一区域周边之间的相对值,和,图片B与第一区域周边之间的相对值尽可能一致。则第一模型中的第一自变量可以包括第一区域边界处的像素点的颜色值、第一区域内部的像素点的颜色值或其他自变量等。作为另一示例,例如第一模型用于进行人脸重建,则可以通过第一模型来表达人脸本身,第一模型中的第一自变量可以包括人脸图像中的特征点的坐标等,应理解,此处举例仅为方便理解本申请实施例的应用场景,不用于限定本方案。
具体的,客户端发送的第一模型可以为基于函数模板、Lambda表达式或其他形式,主服务器在接收到客户端发送的第一模型之后,可以通过服务器可读的语言来描述第一模型,也即生成与第一模型对应的多个第一自变量、与每个第一函数中每一项自变量对应的变量索引以及每个第一函数的计算方式。作为示例,例如第一模型如下:
Figure BDA0002778391420000091
其中,式(1)代表对第一模型,(x1-x2)、(x2-x3)、(x3-x4)、…、(x7-x8)和(x8-x9)均代表第一函数,x1至x9代表与第一模型对应的9个第一自变量,服务器可以建立与每个第一函数中每一项对应的变量索引si,y,si,y代表第一模型中第i个函数中的第j项自变量的索引,例如s2,2代表第一模型中第二个函数中第2项自变量x3的索引,第i个第一函数为第一模型包括的多个第一函数中任一个函数,应理解,式(1)中的举例仅为方便理解本方案,不用于限定本方案。
在另一种情况下,主服务器可以接收客户端发送的与待解决问题对应的原始数据,进而基于待解决问题和原始数据生成第一模型。作为示例,例如客户端想要将图片B融合到图片A的第一区域,则主服务器可以接收客户端发送的图片融合请求,该图片融合请求中携带有图片B、图片A以及第一区域的位置信息(也即与待解决问题对应的原始数据),从而主服务器在接收到图片融合请求以及原始数据后,可以生成第一模型,并将第一模型转换为服务器可读的语言,应理解,此处举例仅为方便理解本方案,不用于限定本方案。
202、主服务器获取与第一模型对应的图结构。
本申请实施例中,主服务器在获取到第一模型之后,会生成与第一模型对应的图结构,图结构数据包括节点数据和边数据,主服务器可以采用邻接表的形式来存储图结构数据。其中,第一模型包括多个第一函数,第一模型包括多个第一自变量,图结构包括多个节点和所述多个节点之间的边,图结构中的节点对应所述第一自变量,图结构中多个节点之间的边为根据多个第一函数确定的;进一步地,若两个自变量包括于同一函数中,则指向两个自变量的节点之间具有连接关系;更进一步地,以第一模型包括的多个第一自变量中存在一个第二自变量和一个第三自变量,第二自变量和第三自变量同时存在于第一模型的第二个函数和第三个函数中,则指向第二自变量的节点与指向第三自变量的节点之间存在两条边。
为更直观地理解本方案,请参阅图3,图3为本申请实施例提供的模型的处理方法中图结构的一种示意图。图3中的示出的图结构为与式(1)对应的图结构,其中,图3中的9个节点分别指向第一模型中的9个第一自变量x1,x2,x3,x4,x5,x6,x7,x8,x9,图3中的8条边分别为e1,e2,e3,e4,e5,e6,e7,e8,由于x1和x2均包含于式(1)的第一项函数中,所以x1和x2之间存在边e1,x2和x3均包含于式(1)的第二项函数中,所以x2和x3之间存在边e2,此处不再对剩余的边一一进行介绍。
主服务器中生成与图3中的图结构对应的图数据中包括节点数据和边数据,与图结构对应的节点数据V={x1,x2,x3,x4,x5,x6,x7,x8,x9},与图结构对应的边数据E={e1,e2,e3,e4,e5,e6},进一步地,e1=<x1,x2>,e2=<x2,x3>,e3=<x3,x4>,e4=<x4,x5>,e5=<x5,x6>,e6=<x6,x7>,e7=<x7,x8>,e8=<x8,x9>。与第一模型的每个第一函数对应的索引变量为S={<1,2>,<2,3>,<3,4>,<4,5>,<5,6>,<6,7>,<7,8>,<8,9>},应理解,图3中的示例仅为方便理解本方案,不用于限定本方案。
203、主服务器对图结构进行随机分割,以得到至少两个第一集合。
本申请实施例中,主服务器在生成与第一模型对应的图结构数据之后,需要对图结构中的多个节点进行随机分割,也即对前述节点指向的多个第一自变量进行分割,以得到至少两个第一集合,每个第一集合包括至少一个第一自变量。
具体的,在一种实现方式中,主服务器对图结构的多个边进行随机排序,得到按照第一顺序排列的多个边,然后按照第一顺序依次对多个边进行遍历。对于任意一条被遍历的边(也即第一边),主服务器会判断与第一边对应的两个第一自变量是否已经和其他节点配对,在与第一边对应的两个第一自变量均未配对的情况下,将与第一边对应的两个第一自变量配对以得到一个第一子集合。服务器在按照第一顺序对图结构中的每个边均执行上述操作后,可以得到与图结构对应的多个第一子集合,其中,处理器可以利用表格、矩阵、不相交森林等数据结构来存储与图结构对应的多个第一子集合。进而主服务器对与图结构对应的多个第一子集合执行合并操作,以得到至少两个第一集合。本申请实施例中,提供了对图结构进行随机分割的一种具体实现方式,且与同一条边对应的两个节点会存在于同一集合中,以提高同一集合内部的多个自变量的关联度,有利于提高整个第一模型求解的速度。
进一步地,在与第一边对应的两个第一自变量中存在一个已配对的自变量的情况下,主服务器可以跳过与第一边对应的两个第一自变量中尚未配对的自变量,进而按照第一顺序从图结构包括的多条边中获取下一条边,也可以直接将与第一边对应的两个第一自变量中尚未配对的自变量确定为一个第一子集合。
为更直观地理解主服务器上述随机配对的过程,请参阅图4,图4为本申请实施例提供的模型的处理方法中多个第一子集合的一种示意图,图4为结合图3中的图结构进行举例。图4中通过实线连接的两个第一自变量代表配对成功的两个第一自变量(也即组成同一第一子集合的两个第一自变量),图4中通过虚线连接的两个第一自变量代表不具有配对关系。具体的,主服务器将与图3示出的图结构的多个边E={e1,e2,e3,e4,e5,e6,e7,e8}打乱,变成E={e3,e2,e1,e4,e6,e5,e8,e7}。主服务器依次遍历e3,e2,e1,e4,e6,e5,e8,e7(也即按照随机打乱后的第一顺序依次读取每条边)。主服务器首先获取e3,获取与e3对应的两个第一自变量分别为x3和x4,主服务器确定x3和x4均未配对,将x3和x4进行配对以得到一个第一子集合(对应图4中x3和x4之间是实线)。其次获取与e2对应的两个第一自变量分别为x2和x3,由于x3已与x4配对,则主服务器跳过第一自变量x2(对应图4中x2和x3之间是虚线)。主服务器获取与e1对应的两个第一自变量分别为x1和x2,主服务器确定x1和x2均未配对,将x1和x2进行配对以得到一个第一子集合(对应图4中x1和x2之间是实线)。类似的由于x4已被配对,主服务器不对e4做配对,并跳过第一自变量x5(对应图4中x4和x5之间是虚线)。类似的,对于e6,主服务器将与e6对应的两个第一自变量x6和x7进行配对,以得到一个第一子集合。对于e5、e8和e7的配对过程可参阅前述描述,此处不再详细赘述,应理解,图4中的示例仅为方便理解本方案,不用于限定本方案。
针对主服务器对与图结构对应的多个第一子集合执行合并操作的过程。在一种实现方式中,主服务器根据图结构中多个节点之间的边,获取与多个第一子集合对应的关联度信息。其中,关联度信息指示多个第一子集合中各个第一子集合之间的关联度。主服务器根据与多个第一子集合对应的关联度信息,对与图结构对应的多个第一子集合进行合并操作,以得到至少两个第一集合;其中,两个第一子集合之间的关联度越高,两个第一子集合进行合并的概率越大。本申请实施例中,在得到多个第一子集合之后,利用多个第一子集合之间的关联度执行合并操作,关联度越高的两个第一子集合之间的关联度越高,两个第一子集合进行合并的概率越大,也即保证关联度高的自变量大概率会分入同一第一集合,从而提高了同一第一集合包括的多个第一自变量之间的关联度,降低了不同的第一集合包括的第一自变量之间的关联度,由于主服务器是将第一模型的所有第一自变量分割成了多个第一集合,分别对每个第一集合包括的至少一个自变量进行求解,两个第一集合中包括的第一自变量之间的关联度越小,则对两个第一集合中的第一自变量进行求解的过程的冲突越小,从而能够使得整个第一模型的求解过程可以更高效的收敛,也有利于提高最后得到的整个第一模型中自变量的求解精度。
更具体的,关联度信息包括第二子集合和第三子集合之间的第一关联度,第二子集合和第三子集合均为多个第一子集合中任意两个不同的子集合,第一关联度为基于第二子集合中的自变量与第三子集合中的自变量之间的关联度确定的,两个节点之间的边越多,则节点指向的自变量之间的关联度越高。针对主服务器生成关联度信息的过程。主服务器获取与第一模型对应的图结构的边数据,前述边数据不仅指示图结构中任意两个节点之间是否连接,而且指示图结构中任意两个节点之间边的数量。主服务器获取第二子集合中包括的至少一个自变量,获取第三子集合中包括的至少一个自变量,计算第二子集合中每个自变量与第三子集合中每个自变量之间的关联度的和,从而得到第二子集合与第三子集合之间的关联度。其中,可以将两个自变量之间边的数量直接确定为两个自变量之间的关联度,也可以对两个自变量之间边的数量进行转换后得到两个自变量之间的关联度。主服务器对多个第一子集合中任意两个不同的第一子集合均执行前述操作,从而可以得到任意两个第一子集合之间的关联度,也即得到关联度信息。
结合上述图3和图4进行举例,此处以第二子集合包括x3和x4,第三子集合包括x1和x2,从图3中可以看出,x3与x2之间存在一条边,则x3与x2之间的关联度为1,x3与x1之间没有边,则x3与x1之间的关联度为0,x4与x2之间没有边,则x4与x2之间的关联度为0,x4与x1之间没有边,则x4与x1之间的关联度为0,从而第二子集合与第三子集合之间的关联度为1,应理解,此处举例仅为方便理解本方案,不用于限定本方案。进一步地,主服务器可以通过矩阵、表格或其他数据结构来存储关联度信息,为更直观地理解本方案,以下集合表1对关联度信息中包括的信息进行举例。
关联度 第一子集合1 第一子集合2 第一子集合3 第一子集合4
第一子集合1 Null 2 1 1
第一子集合2 2 Null 3 4
第一子集合3 1 3 Null 2
第一子集合4 1 4 2 Null
表1
其中,如上述表1示出的,第一集合1与第一集合2之间的关联度为2,第一集合1与第一集合3之间的关联度为1,第一集合1与第一集合4之间的关联度为1,以此类推,此处不再对表1中的剩余内容一一进行赘述。
针对主服务器利用关联度信息对多个第一子集合进行合并的过程。主服务器采用循环的方式来执行合并操作。在多次循环的一次循环中,也即主服务器在得到用于指示任意两个第一子集合之间关联度的关联度信息之后,可以选取关联度最高的至少一组第一子集合,或者,也可以选取关联度高于第一关联度阈值的至少一组第一子集合。针对至少一组第一子集合中的任一组第一子集合,主服务器将一组第一子集合中每个第一子集合包括的自变量进行合并,得到合并后的第一子集合。需要说明的是,若存在某个第一子集合与两个不同的第一子集合的关联度均相同,则可以从前述两个不同的第一子集合中随机选取一个第一子集合执行合并操作。作为示例,例如第一子集合1与第一子集合2的关联度为3,第一子集合1与第一子集合3的关联度为3,则可以从第一子集合2和第一子集合3中随机选取一个第一子集合与第一子集合1进行合并,应理解,此处举例仅为方便理解本方案,不用于限定本方案。
主服务器可以预先设定第一阈值,判断合并后的第一子集合包括的自变量的总数是否大于或等于第一阈值,若合并后的第一子集合包括的自变量的总数大于或等于第一阈值,则将该合并后的第一子集合确定为一个第一集合,并将该合并后的第一子集合移除出第一子集合的队列;若合并后的第一子集合包括的自变量的总数小于第一阈值,则该合并后的第一子集合依旧处于第一子集合的队列。在执行完前述操作,主服务器进入下一个循环,重新执行计算用于指示任意两个第一子集合之间关联度的关联度信息,并基于该关联度信息重新执行合并操作。
其中,第一阈值的取值大小选取依据包括:用于求解的设备所配置的内存资源所能承受的自变量的数量上限、用于求解的设备的数量或其他因素等,此处不做穷举。作为示例,例如用于求解的设备所配置的内存资源所能承受的自变量的数量上限为8个自变量,则第一阈值的取值小于或等于4;作为另一示例,例如用于求解的设备为3个,则第一集合的数量需要大于或等于3,进而通过影响第一集合的数量来影响第一阈值的取值等等。
为更直观地理解本方案,结合上述表1进行举例,此处以第一阈值取值为10,第一子集合3中包括4个自变量,第一子集合4中包括2个自变量为例,主服务器在生成表1所示出的关联度信息之后,选取出关联度最高的一组第一子集合为第一子集合4和第一子集合3,则将第一子集合4包括的自变量和第一子集合3包括的自变量进行合并,得到合并后的第一子集合,主服务器确定合并后的第一子集合中包括的自变量的数量小于10,则将合并后的第一子集合保留在第一子集合的队列中,从而完成了一次循环,应理解,此处举例仅为方便理解本方案,不用于限定本方案。
在另一种实现方式中,主服务器在得到与图结构对应的多个第一子集合之后,也可以采取循环的方式来执行合并操作,在每次循环中,主服务器从多个第一子集合中完全随机的选取两个第一子集合,将选取到的两个第一子集合进行合并,得到合并后的第一子集合。主服务器判断合并后的第一子集合包括的自变量的数量是否大于或等于第一阈值,则将该合并后的第一子集合确定为一个第一集合,并将该合并后的第一子集合移除出第一子集合的队列;若合并后的第一子集合包括的自变量的总数小于第一阈值,则该合并后的第一子集合依旧处于第一子集合的队列。在执行完前述操作,主服务器进入下一个循环,重新从多个第一子集合中随机选取两个第一子集合,并重新执行合并操作。
需要说明的是,主服务器还可以采用其他方式以实现对图结构的随机分割,此处不做穷举。
204、主服务器判断与第一模型对应的图结构包括的多个边中任意一条边对应的两个第一自变量是否存在于两个不同的第一集合中,若存在,则进入步骤205;若均不存在,则进入步骤206。
本申请的一些实施例中,主服务器在对与所述图结构对应的多个第一子集合执行合并操作,以得到所述至少两个第一集合之后,还会遍历与第一模型对应的图结构中的每条边(也即顺序从与图结构对应的多条边中获取每个边),以判断与图结构中的每条边对应的两个第一自变量是否存在于两个不同的第一集合中。具体的,第二边为图结构包括的多个边中的任意一条边,主服务器获取与第二边对应的两个第一自变量,判断与第二边对应的两个第一自变量(也即由第二边连接的两个节点所指向的两个第一自变量)是否存在于两个不同的第一集合中,若存在,则进入步骤205;若不存在,则进入步骤206。
结合图3和图4进行举例,例如第一集合1中包括x1,x2,x3和x4,第一集合2中包括x5,x6和x7,第一集合3中包括x8和x9,主服务器获取与边e1对应的两个第一自变量为x1和x2,x1和x2均存在于第一集合1中,主服务器再获取与边e2对应的两个第一变量x2和x3,x2和x3均存在于第一集合1中,主服务器再获取与边e3对应的两个第一变量x3和x4,x3和x4均存在于第一集合1中,主服务器再获取与边e4对应的两个第一变量x4和x5,x4和x5不存在于同一第一子集合中,则进入步骤205,对于e5,e6,e7和e8的实现方式可参阅上述描述,此处不一一进行赘述,应理解,此处举例仅为方便理解本方案,不用于限定本方案。
205、主服务器从两个不同的第一集合中去除与第二边对应的两个第一自变量,并将与第二边对应的两个第一自变量分别确定为两个孤立的第一自变量。
本申请的一些实施例中,主服务器在确定与第二边对应的两个第一自变量存在于两个不同的第一集合中的情况下,从两个不同的第一集合中去除与第二边对应的两个第一自变量,并将与第二边对应的两个第一自变量分别确定为两个孤立的第一自变量。
结合步骤204中的示例进行举例,由于与边e4对应的两个第一变量x4和x5分别位于第一集合1和第一集合2中,则将x4和x5分别从第一集合1和第一集合2中去除,也即第一集合1中包括的第一自变量变为x1,x2和x3,第一集合2中包括的第一自变量变为x6和x7,x4和x5分别被确定为两个孤立的第一自变量,应理解,此处举例仅为方便理解本方案,不用于限定本方案。
需要说明的是,主服务器在通过步骤204确定与第二边对应的两个第一自变量存在于两个不同的第一集合中之后,就会进入步骤205,在执行完步骤205之后,且遍历完每条边之前,会重新进入步骤204,以判断与下一条边对应的两个第一自变量是否存在于两个不同的第一集合中,直至遍历完图结构中的每条边。
进一步地,主服务器可以预先设定判断的第一次数阈值,第一次数阈值的取值为与第一模型对应的图结构的总数量。在主服务器执行步骤204的判断步骤的次数小于第一次数阈值的情况下,视为未遍历完图结构中的每条边;在主服务器执行步骤204的判断步骤的次数等于第一次数阈值的情况下,视为主服务器已经遍历完图结构中的每条边。
本申请实施例中,通过上述方式,能够保证不同的第一集合均不包括与同一条边对应的自变量,大大降低不同的第一集合包括的第一自变量之间的关联度,彻底消除两个第一集合中的第一自变量进行求解的过程的冲突越小,进一步提高整个第一模型的求解过程可以更高效的收敛,也有利于提高最后得到的整个第一模型中自变量的求解精度。
206、主服务器将多个第一集合分别发送至不同的子服务器中。
本申请实施例中,由于步骤204和205为可选步骤,若不执行步骤204和205,则主服务器在执行完步骤203之后,可以直接进入步骤206,则主服务器将通过步骤203得到的多个第一集合分别发送至不同的子服务器中,以通过多个不同的子服务器并行对第一自变量的取值进行更新。若执行步骤204和205,则主服务器将多个第一集合和至少一个孤立的第一自变量分别返送至不同的子服务器中,以通过多个不同的子服务器并行对第一自变量的取值进行更新。
具体的,在一种实现方式中,主服务器可以将第一模型、第一模型中每个第一自变量的第一取值和第一集合(或孤立的第一自变量)发送给子服务器,从而又子服务器根据第一模型、第一模型中每个第一自变量的第一取值和第一集合(或孤立的第一自变量),生成与第一集合中的第一自变量(或孤立的第一自变量)对应的第二模型,第二模型中包括至少一个第二函数,并由子服务器对第一集合中的第一自变量(或孤立的第一自变量)的取值进行更新,也即对至少一个第二函数中包括的至少一个第一自变量的取值进行更新。
其中,第一模型中每个第一自变量的第一取值指的可以为每个第一自变量的初始取值,也可以为上一次迭代时生成的每个第一自变量的取值。进一步地,每个第一自变量的初始取值的确定方法需要结合实际的应用场景来确定,作为示例,例如当第一模型应用于图像融合场景中,则每个第一自变量的初始值就是待融合的图片的像素的初始颜色值;作为另一示例,例如第一模型应用于三维重建的应用场景中,则每个第一自变量的初始值可以通过前序算法计算得到。
在另一种实现方式中,主服务器可以根据第一模型、第一模型中每个第一自变量的第一取值和第一集合,生成与第一集合中的第一自变量对应的第二模型,第二模型包括至少一个第二函数,并将与第一集合中的第一自变量对应的至少一个第二函数直接发送给子服务器。
具体的,针对与目标第一集合包括的至少一个第一自变量对应的至少一个第二函数的获取步骤。主服务器或子服务器获取目标第一集合包括的至少一个第一自变量,第一模型中包括多个第一函数,主服务器可以逐个判断每个第一函数中是否存在目标第一集合中的任一个第一自变量,若不存在,则继续对下一个第一函数执行前述操作;若存在,则获取该第一函数,并根据每个第一自变量的第一值,将该第一函数中除目标第一集合中包括的自变量之外的自变量转换为常数,从而得到一个第二函数。也即若某个第一函数中存在目标第一集合中没有的自变量,则将目标第一集合中没有的自变量视为标量,也即将与目标第一集合中没有的自变量对应的第一取值带入到第一函数中,以得到第二函数。主服务器对每个第一函数均执行前述操作,从而能得到与目标第一集合包括的第一自变量对应的第二函数。
作为示例,例如第一模型为上述式(1),目标第一集合包括的第一自变量有x1,x2和x3,x1,x2,x3,x4,x5,x6,x7,x8,x9的第一取值分别为2、3、6、7、4、2、1、5和3,则与x1,x2和x3对应的第二模型如下:
minimizex(x1-x2)2+(x2-x3)2+(x3-7)2;(2)
其中,式(2)代表了与目标第一集合包括的多个第一自变量对应的第二模型,第二模型中包括多个第二函数,可通过对比式(2)与式(1)来确定第二模型与第一模型之间的区别,以及第二函数与第一函数之间的区别,此处不做赘述。
207、子服务器采用列文伯格-马夸尔特LM算法,对第一自变量的取值进行更新,得到第一自变量的更新后的取值。
本申请实施例中,若单个子服务器被分到的是一个第一集合,则该子服务器采用LM算法,对前述一个第一集合中包括的所有第一自变量的取值进行更新,得到前述一个第一集合中包括的所有第一自变量的更新后的取值。若单个子服务器被分到的是一个孤立的第一自变量,则该子服务器采用LM算法,对前述一个孤立的第一自变量的取值进行更新,得到前述孤立的第一自变量的更新后的取值。
具体的,子服务器需要获取到与一个第一集合中包括的所有第一自变量(或孤立的第一自变量)对应的至少一个第二函数,并采用列文伯格-马夸尔特(levenberg-maquardt,LM)算法,对一个第一集合中包括的所有第一自变量(或孤立的第一自变量)的取值进行更新,得到一个第一集合中包括的所有第一自变量(或孤立的第一自变量)的更新后的取值。LM算法的公式如下:
x*=xk-(JTJ+λkI)-1JTf(xk)
其中,x*代表一个第一集合中包括的所有第一自变量的更新后的取值(也即第二取值),xk代表一个第一集合中包括的所有第一自变量的更新前的取值(也即第一取值),J代表f(xk)对xk的雅克比矩阵,JT代表对J的转置,λk在每次迭代过程中都是一个超参数,在不同的迭代次数中取值可以不同,用以控制迭代的步长,I是单位矩阵,-1代表取矩阵的逆。
为更直观地理解采用列文伯格-马夸尔特(levenberg-maquardt,LM)算法来对第一自变量进行更新的过程,请参阅图5,图5为本申请实施例提供的模型的处理方法中采用列文伯格-马夸尔特LM算法对自变量的取值进行更新的一种流程示意图。具体的,C1、计算与第一集合包括的至少一个第一自变量对应的第二模型(也即多个第二函数)的值,也即计算f(xk)的值;C2、计算第二函数对第一自变量的雅克比矩阵,也即计算f(xk)对xk的雅克比矩阵;C3、通过求解线性方程的方式,计算第一集合中每个第一自变量的第二取值和第一取值之间的差值;C4、根据第一集合中每个第一自变量的第一取值和第一集合中每个第一自变量的第二取值和第一取值之间的差值,生成第一集合中每个第一自变量的第二取值;C5、判断是否满足第二模型的收敛条件,其中,第二模型的收敛条件包括以下中的任一项:第二模型的取值小于第一阈值,或者,前述第一自变量的第二取值和第一取值之间的差值小于第二阈值,若满足第二模型的收敛条件,则获取第一集合中每个第一自变量的第二取值;若不满足第二模型的收敛条件,则重新进入步骤C1以对第二模型中包括的多个第一自变量的取值进行下一轮的更新,直至满足第二模型的收敛条件。
其中,子服务器可以通过两种方式来计算与第二函数对应的雅克比矩阵,在一种实现方式中,子服务器通过计算第一标量对第二自变量的导数,以得到雅克比矩阵中的非零项,进而得到与第二函数对应的雅克比矩阵。
具体的,子服务器获取与第一集合中的第一自变量(或孤立的第一自变量)对应的至少一个第二函数,前述至少一个第二函数为基于第一模型包括的多个第一函数确定的,具体至少一个第二函数的获取方式以及第二函数和第一函数之间的区别可参阅步骤206中的描述,此处不做赘述。子服务器根据LM算法,根据第一集合中的每个第一自变量(或孤立的第一自变量)的第一取值和第二函数,计算得到第二函数的函数值,得到第二函数的函数值(也即计算f(xk)的值),第一取值为第一自变量更新前的取值。
子服务器根据LM算法,计算与第二函数对应的雅克比矩阵,雅克比矩阵中的非零项包括第一标量对第二自变量的导数。其中,第一标量为与第一集合中的第一自变量对应的所有第二函数的取值的和,第二自变量为组成至少一个第二函数的自变量,不同的第二自变量在第二函数中的位置不同,不同的第一自变量的标识不同;或者说,第二自变量为第一自变量按照第二函数的接收顺序重组的结果。作为示例,例如第二模型如下:
minimizex(x3-x7)2+(x1-x7)2+(x2-x6)2+(x3-x5)2+(x1-x4)2;(3)
其中,式(3)代表第二模型,与第二模型中多个自变量对应的索引S1={<3,7>,<1,7>,<2,6>,<3,5>,<1,4>},与第二模型中多个第二函数对应有10个第二自变量,分别为y1,1=x3、y1,2=x7、y2,1=x1、y2,2=x7、y3,1=x2、y3,2=x6、y4,1=x3、y4,2=x5、y5,1=x1和y5,2=x4,其中,y1,1为位于式(3)示出的模型第一个函数的第一项的自变量,y1,2为位于式(3)示出的模型第一个函数的第二项的自变量,由此可以看出,多个第二函数中不同位置上的自变量均为不同的第二自变量,而与第二模型中多个第二函数对应有7个第一自变量,分别为x1至x7,其中,x1和x2为不同的标识,x2和x3为不同的标识,也即不同的第一自变量的标识不同,应理解,式(3)中的举例仅为方便理解第一自变量和第二自变量之间的区别,不用于限定本方案。
子服务器根据LM算法,第二函数的函数值和雅克比矩阵,通过求解线性方程的方式,计算第一集合中每个第一自变量的第二取值和第一取值之间的差值,并根据第一集合中每个第一自变量的第二取值和第一取值之间的差值和第一集合中的每个第一自变量的第一取值,生成第一集合中的第一自变量的第二取值,第二取值为更新后的取值。
本申请实施例中,由于AI处理器只提供了标量对于自变量的自动求导的功能。与第二函数对应的雅克比矩阵是向量函数对于第一自变量的求导,因此不可以采用AI处理器直接完成,但本实现方式中对第一自变量进行分割,从而可以将第二函数对应的雅克比矩阵中的非零项表达为第一标量对于第二自变量的导数,从而可以直接利用AI处理器来对第一自变量的取值进行更新,也即本实现方式中提供的计算雅克比矩阵的方式能够兼容AI处理器,有利于提高对第一自变量的取值进行更新过程的效率,从而提高整个求解过程的效率。
以下通过公式转换的方式,来介绍下与第二函数对应的雅克比矩阵中的非零项能够转换为第一标量对第二自变量的导数的推导原理:
Figure BDA0002778391420000171
其中,
Figure BDA0002778391420000176
代表与第二函数对应的雅克比矩阵中的第i行第j列(也即一个非零项)的取值,
Figure BDA0002778391420000172
代表第i个函数对位于第i个函数中的第j项的第一自变量的导数,也即雅克比矩阵中一个值的原始含义,
Figure BDA0002778391420000173
代表第i个函数对位于第i个函数中的第j项的第二自变量的导数,
Figure BDA0002778391420000174
代表第一标量对于第i个函数的导数,
Figure BDA0002778391420000175
代表第一标量对于位于第i个函数中的第j项的第二自变量的导数。
更具体的,针对生成雅克比矩阵的过程。当子服务器采用AI处理器来执行本操作的情况下,子服务器得到与第二模型(也即至少一个第二函数)对应的变量索引、多个第一自变量和第二模型包括的至少一个第二函数,子服务器将与第二模型(也即至少一个第二函数)对应的多个第一自变量打包成张量,并将与第二模型(也即至少一个第二函数)对应的变量索引和多个第一自变量输入AI处理器中的索引器中,以通过索引器按照第一自变量在多个第二函数中出现的顺序进行重索引,得到多个第二自变量的取值。子服务器根据第二模型包括的至少一个第二函数,以及多个第二自变量的取值,计算该至少一个第二函数的函数值,并将所有第二函数的函数值进行累加,得到第一标量的值。进而通过AI处理器计算第一标量对第二自变量的导数,以得到与第二函数对应的雅克比矩阵中非零项的取值。进而将生成的非零项放入雅克比矩阵的对应位置,以得到与第二函数对应的整个雅克比矩阵。
为更直观地理解本方案,请参阅图6,图6为本申请实施例提供的模型的处理方法中生成雅克比矩阵的一种示意图。D1、子服务器将与第二模型(也即至少一个第二函数)对应的变量索引(也即图6中的索引index S)和多个第一自变量(也即图6中的x1至x7)输入AI处理器中的索引器中,以通过索引器按照与第二模型(也即至少一个第二函数)对应的变量索引进行重索引,得到每个第二自变量(也即图6中的y1,1至y5,2)的取值。D2、子服务器根据每个第二自变量的取值计算每个第二函数(也即图6中示出的r1、r2、ri、rn和rn-1)的值,进而计算第一标量L的值(也即所有第二函数的函数值的总和);其中,图6示出的第二模型包括的多个第二函数分别为r1=y1,1-y1,2,r2=y2,1-y2,2,r3=y3,1-y3,2,r4=y4,1-y4,2和r5=y5,1-y5,2,第一标量L=r1+r2+r3+r4+r5。D3、子服务器通过AI处理器自动计算第一标量L对每个第二自变量的导数。结合图6进行描述,具体的,包括
Figure BDA0002778391420000181
。D4、子服务器利用与第二模型(也即至少一个第二函数)对应的变量索引(也即图6中的索引index S),将D3中计算到的值对应至与第二函数对应的雅克比矩阵中,以得到与第二函数对应的雅克比矩阵。其中,第一标量对于第二自变量yi,j(也即
Figure BDA0002778391420000185
)的导数为雅克比矩阵中第i行第j列的取值,具体为:
Figure BDA0002778391420000182
Figure BDA0002778391420000183
Figure BDA0002778391420000184
。应理解,图6中的示例仅为方便理解本方案,不用于限定本方案。
在另一种实现方式中,子服务器直接计算第二函数相对于第一自变量的导数,以得到雅克比矩阵。步骤207可以包括:子服务器获取与第一集合中的第一自变量(或孤立的第一自变量)对应的至少一个第二函数,根据LM算法,将第一集合中的每个第一自变量(或孤立的第一自变量)的第一取值带入第二函数,得到第二函数的函数值(也即计算f(xk)的值)。子服务器根据LM算法,直接计算与第二函数对应的雅克比矩阵,也即直接计算第二函数相对于第一自变量的导数。进而根据LM算法,第二函数的函数值和雅克比矩阵,通过求解线性方程的方式,计算第一集合中每个第一自变量的第二取值和第一取值之间的差值,并根据第一集合中每个第一自变量的第二取值和第一取值之间的差值和第一集合中的每个第一自变量的第一取值,生成第一集合中的第一自变量的第二取值,第二取值为更新后的取值。
208、主服务器接收子服务器发送的第一自变量的更新后的取值。
本申请实施例中,各个子服务器在生成第一自变量的更新后的取值(也即第二取值)后,会将第一自变量的更新后的取值发送给主服务器,对应的,主服务器接收各个子服务器发送的第一自变量的更新后的取值,并进行汇总。
209、主服务器判断是否满足第一模型的收敛条件,若不满足,则重新进入步骤203;若满足,则得到第一模型中多个第一自变量的解。
本申请实施例中,主服务器根据第一自变量的更新后的取值,判断是否满足第一模型的收敛条件,若不满足,则重新进入步骤203,以重复执行随机分割的操作和对所述每个第一集合中的第一自变量的取值进行更新的操作,直至满足第一模型的收敛条件;若满足,则得到第一模型中多个第一自变量的解,进而可以将第一模型中多个第一自变量的解发送给客户端。
其中,第一模型的收敛条件为所述第一模型的取值小于第一阈值,或者,所述第二取值与所述第一取值之间的差值小于第二阈值。本申请实施例中,提供了第一模型的收敛条件的两种表现形式,提高了本方案的实现灵活性。
需要说明的是,虽然图2对应实施例中均以模型的处理系统表现为服务器集群的形式,也即包括主服务器和多个子服务器,但实际情况中,模型的处理系统也可以表现为一个服务器,则上述由子服务器执行的步骤执行主体均需换成主服务器,且步骤206和208不需要出现。
为更直观地理解本方案,请参阅图7,图7为本申请实施例提供的模型的处理方法的一种流程示意图。其中,S1、主服务器获取与第一模型对应的图结构数据。S2、主服务器对与第一模型对应的图结构数据进行随机配对,得到与图结构对应的多个第一子集合。S3、主服务器对多个第一子集合执行合并操作,得到至少两个第一集合和至少两个孤立的第一自变量。S4、主服务器将至少两个第一集合和至少两个孤立的第一自变量分别部署与不同的子服务器中。S5、不同的子服务器采用列文伯格-马夸尔特LM算法,对第一自变量的第一取值进行更新,得到第一自变量的更新后的取值(也即第二取值)。主服务器根据第一自变量的第二取值,判断是否满足收敛条件,若满足收敛条件(也即图6中的收敛),则得到第一自变量的解;若不满足收敛条件(也即图6中的不收敛),则重新进入步骤S2。应理解,图6中的示例仅为方便理解本方案,不用于限定本方案。
本申请实施例中,在获取到与第一模型对应的图结构数据之后,对该图结构数据指示的图结构进行随机分割,得到至少两个第一集合,每个第一集合包括至少一个第一自变量,也即将第一模型中所涉及到的所有第一自变量划分为多个第一集合;进而采用列文伯格-马夸尔特LM算法,对每个第一集合中的第一自变量的取值进行更新,也即在每次迭代过程中,均会将第一模型中所涉及到的所有第一自变量划分为多个第一集合,从而将包括大量自变量的第一模型的求解问题进行了分割,由于内存中需要同时存储待求解模型中的所有自变量,一个子模型中包括的自变量的数量较少,则在求解子模型时,需要内存资源存储较少的自变量,也即在求解一个子问题的时候就无需占用过多的内存资源;此外,采用随机分割的方式对图结构进行分割,实现方式简单,从而保证了分割过程的效率;此外,将包括大量自变量的第一模型的求解问题分割为几个包括较少自变量的子模型的求解问题,有利于执行并行化求解,有利于提高求解过程的效率。
本申请的一些实施例中,以模型处理的系统为图1b中示出的终端设备为例,请参阅图8,图8为本申请实施例提供的模型的处理方法的一种流程示意图,本申请实施例提供的模型的处理方法可以包括:
801、处理器获取第一模型。
802、处理器获取与第一模型对应的图结构。
803、处理器对图结构进行随机分割,以得到至少两个第一集合。
804、处理器判断与第一模型对应的图结构包括的多个边中任意一条边对应的两个第一自变量是否存在于两个不同的第一集合中,若存在,则进入步骤805;若均不存在,则进入步骤806。
805、处理器从两个不同的第一集合中去除与第二边对应的两个第一自变量,并将与第二边对应的两个第一自变量分别确定为两个孤立的第一自变量。
本申请实施例中,步骤801至805的具体实现方式与步骤201至205的具体实现方式类似,区别在于步骤201至205的执行主体为主服务器,步骤801至805的执行主体为终端设备中的处理器。
作为示例,例如第一模型可以应用于对三维建模进行平差优化,具体的,为根据多张图片进行三维建模,平差优化指的是对相机参数的优化和特征像素点在三维模型中的坐标的优化。具体的,三维建模的过程包括:提取多个图片中每个图片的特征像素点,并找到不同图片中特征像素点的对应关系,根据每个特征像素点的二维坐标和前述对应关系计算相机三维姿势(包括相机在空间中的位置和朝向信息)和特征像素点在三维空间的坐标,进而利用本申请实施例提供的模型的处理方法求得对相机参数和特征像素点在三维模型中的坐标的最优解。则第一自变量包括相机的三维姿势参数、特征像素点投影至三维空间中的坐标,应理解,此处举例仅为方便理解本方案的应用场景,不用于限定本方案。
806、处理器采用列文伯格-马夸尔特LM算法,对第一自变量的取值进行更新,得到第一自变量的更新后的取值。
本申请实施例中,步骤806的具体实现方式与步骤207的具体实现方式类似,区别在于步骤207的执行主体为主服务器,步骤806的执行主体为终端设备中的处理器。需要说明的是,步骤806可以为处理器通过AI处理器执行,也可以通过图形处理器(graphicsprocessing unit,GPU)或其他类型的处理器来执行等,还可以通过多个芯片并行执行等,此处不做限定。
807、处理器判断是否满足第一模型的收敛条件,若不满足,则重新进入步骤803;若满足,则得到第一模型中多个第一自变量的解。
本申请实施例中,步骤807的具体实现方式与步骤209的具体实现方式类似,区别在于步骤209的执行主体为主服务器,步骤807的执行主体为终端设备中的处理器。
本申请实施例中,提供了当模型的处理系统表现为终端设备时的实现方案,扩展了本方案的应用场景,提高了本方案的实现灵活性。
为了更直观地理解本方案的有益效果,以下结合表2中的数据对本申请实施例带来的有益效果进行描述。表2中以第一模型用于三维建模进行平差优化的应用场景为例。
Figure BDA0002778391420000201
表2
其中,Ceres-CG代表谷歌提供的用于对模型求解的方法,LadyBug、Dubrovnik和Venice分别为三个公开的数据库。当选用数据库LadyBug时,采用Ceres-CG这一方法对模型进行求解时,所消耗的内存为0.52GB,使用的时间为46.7秒,误差为4.15E+05个像素;采用本申请实施例提供的方案对模型进行求解时所消耗的内存为0.24GB,使用的时间为5.87秒,误差为3.81E+055个像素,经对比可以明显看出,本方案不仅占用的内存更少,使用的时间更短,且误差更小。当选用数据库Dubrovnik和数据库Venice时,本申请实施例提供的方案也是占用内存更小、时间更短且误差更小。
在图1至图8所对应的实施例的基础上,为了更好的实施本申请实施例的上述方案,下面还提供用于实施上述方案的相关设备。具体参阅图9,图9为本申请实施例提供的模型的处理装置的一种结构示意图,模型的处理装置900包括:获取模块901、分割模块902、更新模块903和循环模块904。其中,获取模块901,用于获取与第一模型对应的图结构,其中,第一模型包括多个第一函数,第一模型包括多个第一自变量,图结构包括多个节点和所述多个节点之间的边,图结构中的节点对应所述第一自变量,图结构中多个节点之间的边为根据多个第一函数确定的;分割模块902,用于对图结构进行随机分割,以得到至少两个第一集合,每个第一集合包括至少一个第一自变量;更新模块903,用于采用列文伯格-马夸尔特LM算法,对每个第一集合中的第一自变量的取值进行更新;循环模块904,用于重复执行随机分割的操作和对每个第一集合中的第一自变量的取值进行更新的操作,直至满足第一模型的收敛条件,得到第一模型中多个第一自变量的解。
在一种可能的设计中,图结构中的每个边均对应两个节点,一个节点代表第一模型中的一个第一自变量,分割模块902,具体用于:对图结构的多个边进行随机排序,得到按照第一顺序排列的多个边,并按照第一顺序从多个边中获取第一边,第一边为图结构的多个边中的一个边;在与第一边对应的两个第一自变量均未配对的情况下,将与第一边对应的两个第一自变量配对以得到一个第一子集合;对与图结构对应的多个第一子集合执行合并操作,以得到至少两个第一集合。
在一种可能的设计中,分割模块902,具体用于:根据图结构中多个节点之间的边,获取与多个第一子集合对应的关联度信息,其中,关联度信息指示多个第一子集合中各个第一子集合之间的关联度,关联度信息包括第二子集合和第三子集合之间的第一关联度,第二子集合和第三子集合均为多个第一子集合中任意两个不同的子集合,第一关联度为基于第二子集合中的自变量与第三子集合中的自变量之间的关联度确定的,两个节点之间的边越多,则节点指向的自变量之间的关联度越高;根据与多个第一子集合对应的关联度信息,对与图结构对应的多个第一子集合进行合并操作,两个第一子集合之间的关联度越高,两个第一子集合进行合并的概率越大。
在一种可能的设计中,分割模块902,还用于在与第二边对应的两个第一自变量存在于两个不同的第一集合中的情况下,从两个不同的第一集合中去除与第二边对应的两个第一自变量,并将与第二边对应的两个第一自变量分别确定为两个孤立的第一自变量,第二边为图结构的多个边中的任意一个边;更新模块903,具体用于采用列文伯格-马夸尔特LM算法,对每个第一集合中的第一自变量以及孤立的第一自变量的取值进行更新;循环模块904,具体用于重复执行随机分割的操作和对每个第一集合中的第一自变量以及孤立的第一自变量的取值进行更新的操作。
在一种可能的设计中,更新模块903,具体用于:获取与第一集合中的第一自变量对应的至少一个第二函数,至少一个第二函数为基于第一模型包括的多个第一函数确定的;根据列文伯格-马夸尔特LM算法,根据第一集合中的每个第一自变量的第一取值和第二函数,计算得到第二函数的函数值,第一取值为第一自变量更新前的取值;根据列文伯格-马夸尔特LM算法,计算与第二函数对应的雅克比矩阵,雅克比矩阵包括第一标量对第二自变量的导数,第一标量为与第一集合中的第一自变量对应的所有第二函数的取值的和,第二自变量为组成至少一个第二函数的自变量,不同的第二自变量在所述第二函数中的位置不同,不同的第一自变量的标识不同;根据列文伯格-马夸尔特LM算法,根据第一集合中的每个第一自变量的第一取值、第二函数的函数值和雅克比矩阵,生成第一集合中的第一自变量的第二取值,第二取值为更新后的取值。
在一种可能的设计中,第一模型的收敛条件为第一模型的取值小于第一阈值,或者,第二取值与第一取值之间的差值小于第二阈值。
在一种可能的设计中,第一模型为最小二乘模型,第一模型用于以下多种中的任一种应用场景中:三维建模、图片融合、人脸重建网格变形。
需要说明的是,模型的处理装置900中各模块/单元之间的信息交互、执行过程以及所带来的有益效果等内容,与本申请中图5和图6对应的各个方法实施例基于同一构思,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。
接下来介绍本申请实施例提供的一种模型的处理装置,当该模型的处理装置表现为终端设备的形态时,请参阅图10,图10为本申请实施例提供的终端设备的一种结构示意图,其中,终端设备1000用于实现图8对应实施例中终端设备的功能。具体的,终端设备1000包括:接收器1001、发射器1002、处理器1003和存储器1004(其中终端设备1000中的处理器1003的数量可以一个或多个,图10中以一个处理器为例),其中,处理器1003可以包括应用处理器10031和通信处理器10032。在本申请的一些实施例中,接收器1001、发射器1002、处理器1003和存储器1004可通过总线或其它方式连接。
存储器1004可以包括只读存储器和随机存取存储器,并向处理器1003提供指令和数据。存储器1004的一部分还可以包括非易失性随机存取存储器(non-volatile randomaccess memory,NVRAM)。存储器1004存储有处理器和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各种操作。
处理器1003控制执行设备的操作。具体的应用中,执行设备的各个组件通过总线系统耦合在一起,其中总线系统除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都称为总线系统。
上述本申请实施例揭示的方法可以应用于处理器1003中,或者由处理器1003实现。处理器1003可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1003中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1003可以是通用处理器、数字信号处理器(digital signal processing,DSP)、微处理器或微控制器,还可进一步包括专用集成电路(application specific integratedcircuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。该处理器1003可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1004,处理器1003读取存储器1004中的信息,结合其硬件完成上述方法的步骤。
接收器1001可用于接收输入的数字或字符信息,以及产生与执行设备的相关设置以及功能控制有关的信号输入。发射器1002可用于通过第一接口输出数字或字符信息;发射器1002还可用于通过第一接口向磁盘组发送指令,以修改磁盘组中的数据;发射器1002还可以包括显示屏等显示设备。
需要说明的是,对于应用处理器10031执行模型的处理方法的具体实现方式以及带来的有益效果,均可以参考图8对应的各个方法实施例中的叙述,此处不再一一赘述。
当模型的处理装置表现为服务器状态时,请参阅图11,图11是本申请实施例提供的服务器一种结构示意图,服务器1100用于实现图2至图7对应实施例中主服务器或子服务器的功能。具体的,服务器1100由一个或多个服务器实现,服务器1100可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)1122(例如,一个或一个以上处理器)和存储器1132,一个或一个以上存储应用程序1142或数据1144的存储介质1130(例如一个或一个以上海量存储设备)。其中,存储器1132和存储介质1130可以是短暂存储或持久存储。存储在存储介质1130的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1122可以设置为与存储介质1130通信,在服务器1100上执行存储介质1130中的一系列指令操作。
服务器1100还可以包括一个或一个以上电源1126,一个或一个以上有线或无线网络接口1150,一个或一个以上输入输出接口1158,和/或,一个或一个以上操作系统1141,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
需要说明的是,对于中央处理器1122执行模型的处理方法的具体实现方式以及带来的有益效果,均可以参考图2至图7对应的各个方法实施例中的叙述,此处不再一一赘述。
本申请实施例中还提供一种包括计算机程序产品,当其在计算机上运行时,使得计算机执行如前述图2至图8所示实施例描述的方法中模型的处理装置所执行的步骤。
本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有用于进行信号处理的程序,当其在计算机上运行时,使得计算机执行如前述图2至图8所示实施例描述的方法中模型的处理装置所执行的步骤。
本申请实施例提供的模型的处理装置、终端设备或服务器具体可以为芯片,芯片包括:处理单元和通信单元,所述处理单元例如可以是处理器,所述通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行存储单元存储的计算机执行指令,以使模型的处理装置内的芯片执行上述图2至图8所示实施例描述的模型的处理方法。可选地,所述存储单元为所述芯片内的存储单元,如寄存器、缓存等,所述存储单元还可以是所述无线接入设备端内的位于所述芯片外部的存储单元,如只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random accessmemory,RAM)等。
其中,上述任一处提到的处理器,可以是一个通用中央处理器,微处理器,ASIC,或一个或多个用于控制上述第一方面方法的程序执行的集成电路。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、ROM、RAM、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,执行设备,或者网络设备等)执行本申请各个实施例所述的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、执行设备或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、执行设备或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的执行设备、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。

Claims (18)

1.一种模型的处理方法,其特征在于,所述方法包括:
获取与第一模型对应的图结构,其中,所述第一模型包括多个第一函数,所述第一模型包括多个第一自变量,所述图结构包括多个节点和所述多个节点之间的边,所述图结构中的节点对应所述第一自变量,所述图结构中多个节点之间的边为根据所述多个第一函数确定的;
对所述图结构进行随机分割,以得到至少两个第一集合,每个第一集合包括至少一个第一自变量;
采用列文伯格-马夸尔特LM算法,对所述每个第一集合中的第一自变量的取值进行更新;
重复执行所述随机分割的操作和所述对所述每个第一集合中的第一自变量的取值进行更新的操作,直至满足所述第一模型的收敛条件,得到所述第一模型中多个第一自变量的解。
2.根据权利要求1所述的方法,其特征在于,所述图结构中的每个边均对应两个节点,一个节点代表所述第一模型中的一个第一自变量;
所述对所述图结构进行随机分割,以得到至少两个第一集合,包括:
对所述图结构的多个边进行随机排序,得到按照第一顺序排列的多个边,并按照所述第一顺序从所述多个边中获取第一边,所述第一边为所述图结构的多个边中的一个边;
在与所述第一边对应的两个第一自变量均未配对的情况下,将与所述第一边对应的两个第一自变量配对以得到一个第一子集合;
对与所述图结构对应的多个第一子集合执行合并操作,以得到至少两个第一集合。
3.根据权利要求2所述的方法,其特征在于,所述对与所述图结构对应的多个第一子集合进行合并操作,包括:
根据所述图结构中多个节点之间的边,获取与所述多个第一子集合对应的关联度信息,其中,所述关联度信息指示所述多个第一子集合中各个第一子集合之间的关联度,所述关联度信息包括第二子集合和第三子集合之间的第一关联度,所述第二子集合和所述第三子集合均为所述多个第一子集合中任意两个不同的子集合,所述第一关联度为基于所述第二子集合中的自变量与所述第三子集合中的自变量之间的关联度确定的,两个节点之间的边越多,则节点指向的自变量之间的关联度越高;
根据所述与所述多个第一子集合对应的关联度信息,对与所述图结构对应的多个第一子集合进行合并操作,两个第一子集合之间的关联度越高,两个第一子集合进行合并的概率越大。
4.根据权利要求2所述的方法,其特征在于,所述对与所述图结构对应的多个第一子集合执行合并操作,以得到所述至少两个第一集合之后,所述方法还包括:
若与第二边对应的两个第一自变量存在于两个不同的第一集合中,从所述两个不同的第一集合中去除与所述第二边对应的两个第一自变量,并将与所述第二边对应的两个第一自变量分别确定为两个孤立的第一自变量,所述第二边为所述图结构的多个边中的任意一个边;
所述采用列文伯格-马夸尔特LM算法,对所述每个第一集合中的第一自变量的取值进行更新,包括:
采用列文伯格-马夸尔特LM算法,对所述每个第一集合中的第一自变量以及所述孤立的第一自变量的取值进行更新;
所述重复执行所述随机分割的操作和所述对所述每个第一集合中的第一自变量的取值进行更新的操作,包括:
重复执行所述随机分割的操作和所述对所述每个第一集合中的第一自变量以及所述孤立的第一自变量的取值进行更新的操作。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述采用列文伯格-马夸尔特LM算法,对所述每个第一集合中的第一自变量的取值进行更新,包括:
获取与所述第一集合中的第一自变量对应的第二函数,所述第二函数为基于第一模型包括的多个第一函数确定的;
根据列文伯格-马夸尔特LM算法,根据所述第一集合中的每个第一自变量的第一取值和所述第二函数,计算得到所述第二函数的函数值,所述第一取值为第一自变量更新前的取值;
根据列文伯格-马夸尔特LM算法,计算与所述第二函数对应的雅克比矩阵,所述雅克比矩阵包括第一标量对第二自变量的导数,所述第一标量为与所述第一集合中的第一自变量对应的所有第二函数的取值的和,所述第二自变量为组成所述第二函数的自变量,不同的第二自变量在所述第二函数中的位置不同,不同的第一自变量的标识不同;
根据列文伯格-马夸尔特LM算法,根据所述第一集合中的每个第一自变量的第一取值、所述第二函数的函数值和所述雅克比矩阵,生成所述第一集合中的第一自变量的第二取值,所述第二取值为更新后的取值。
6.根据权利要求5所述的方法,其特征在于,所述第一模型的收敛条件为所述第一模型的取值小于第一阈值,或者,所述第二取值与所述第一取值之间的差值小于第二阈值。
7.根据权利要求1至4任一项所述的方法,其特征在于,所述第一模型为最小二乘模型,所述第一模型用于以下多种中的任一种应用场景中:三维建模、图片融合、人脸重建网格变形。
8.一种模型的处理装置,其特征在于,所述装置包括:
获取模块,用于获取与第一模型对应的图结构,其中,所述第一模型包括多个第一函数,所述第一模型包括多个第一自变量,所述图结构包括多个节点和所述多个节点之间的边,所述图结构中的节点对应所述第一自变量,所述图结构中多个节点之间的边为根据所述多个第一函数确定的;
分割模块,用于对所述图结构进行随机分割,以得到至少两个第一集合,每个第一集合包括至少一个第一自变量;
更新模块,用于采用列文伯格-马夸尔特LM算法,对所述每个第一集合中的第一自变量的取值进行更新;
循环模块,用于重复执行所述随机分割的操作和所述对所述每个第一集合中的第一自变量的取值进行更新的操作,直至满足所述第一模型的收敛条件,得到所述第一模型中多个第一自变量的解。
9.根据权利要求8所述的装置,其特征在于,所述图结构中的每个边均对应两个节点,一个节点代表所述第一模型中的一个第一自变量,所述分割模块,具体用于:
对所述图结构的多个边进行随机排序,得到按照第一顺序排列的多个边,并按照所述第一顺序从所述多个边中获取第一边,所述第一边为所述图结构的多个边中的一个边;
在与所述第一边对应的两个第一自变量均未配对的情况下,将与所述第一边对应的两个第一自变量配对以得到一个第一子集合;
对与所述图结构对应的多个第一子集合执行合并操作,以得到至少两个第一集合。
10.根据权利要求9所述的装置,其特征在于,所述分割模块,具体用于:
根据所述图结构中多个节点之间的边,获取与所述多个第一子集合对应的关联度信息,其中,所述关联度信息指示所述多个第一子集合中各个第一子集合之间的关联度,所述关联度信息包括第二子集合和第三子集合之间的第一关联度,所述第二子集合和所述第三子集合均为所述多个第一子集合中任意两个不同的子集合,所述第一关联度为基于所述第二子集合中的自变量与所述第三子集合中的自变量之间的关联度确定的,两个节点之间的边越多,则节点指向的自变量之间的关联度越高;
根据所述与所述多个第一子集合对应的关联度信息,对与所述图结构对应的多个第一子集合进行合并操作,两个第一子集合之间的关联度越高,两个第一子集合进行合并的概率越大。
11.根据权利要求9所述的装置,其特征在于,所述分割模块,还用于在与第二边对应的两个第一自变量存在于两个不同的第一集合中的情况下,从所述两个不同的第一集合中去除与所述第二边对应的两个第一自变量,并将与所述第二边对应的两个第一自变量分别确定为两个孤立的第一自变量,所述第二边为所述图结构的多个边中的任意一个边;
所述更新模块,具体用于采用列文伯格-马夸尔特LM算法,对所述每个第一集合中的第一自变量以及所述孤立的第一自变量的取值进行更新;
所述循环模块,具体用于重复执行所述随机分割的操作和所述对所述每个第一集合中的第一自变量以及所述孤立的第一自变量的取值进行更新的操作。
12.根据权利要求8至11任一项所述的装置,其特征在于,所述更新模块,具体用于:
获取与所述第一集合中的第一自变量对应的第二函数,所述第二函数为基于第一模型包括的多个第一函数确定的;
根据列文伯格-马夸尔特LM算法,根据所述第一集合中的每个第一自变量的第一取值和所述第二函数,计算得到所述第二函数的函数值,所述第一取值为第一自变量更新前的取值;
根据列文伯格-马夸尔特LM算法,计算与所述第二函数对应的雅克比矩阵,所述雅克比矩阵包括第一标量对第二自变量的导数,所述第一标量为与所述第一集合中的第一自变量对应的所有第二函数的取值的和,所述第二自变量为组成所述至少一个第二函数的自变量,不同的第二自变量在所述第二函数中的位置不同,不同的第一自变量的标识不同;
根据列文伯格-马夸尔特LM算法,根据所述第一集合中的每个第一自变量的第一取值、所述第二函数的函数值和所述雅克比矩阵,生成所述第一集合中的第一自变量的第二取值,所述第二取值为更新后的取值。
13.根据权利要求12所述的装置,其特征在于,所述第一模型的收敛条件为所述第一模型的取值小于第一阈值,或者,所述第二取值与所述第一取值之间的差值小于第二阈值。
14.根据权利要求8至11任一项所述的装置,其特征在于,所述第一模型为最小二乘模型,所述第一模型用于以下多种中的任一种应用场景中:三维建模、图片融合、人脸重建网格变形。
15.一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得计算机执行如权利要求1至7中任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,包括程序,当所述程序在计算机上运行时,使得计算机执行如权利要求1至7中任一项所述的方法。
17.一种执行设备,其特征在于,包括处理器和存储器,所述处理器与所述存储器耦合,
所述存储器,用于存储程序;
所述处理器,用于执行所述存储器中的程序,使得所述执行设备执行如权利要求1至7中任一项所述的方法。
18.一种芯片,所述芯片被配置在执行设备中,使得所述执行设备实现权利要求1至7中任一项所述的方法。
CN202011273450.XA 2020-11-13 2020-11-13 一种模型的处理方法以及相关设备 Pending CN114491913A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202011273450.XA CN114491913A (zh) 2020-11-13 2020-11-13 一种模型的处理方法以及相关设备
PCT/CN2021/104960 WO2022100118A1 (zh) 2020-11-13 2021-07-07 一种模型的处理方法以及相关设备
US18/315,844 US20230281250A1 (en) 2020-11-13 2023-05-11 Model processing method and related device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011273450.XA CN114491913A (zh) 2020-11-13 2020-11-13 一种模型的处理方法以及相关设备

Publications (1)

Publication Number Publication Date
CN114491913A true CN114491913A (zh) 2022-05-13

Family

ID=81490636

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011273450.XA Pending CN114491913A (zh) 2020-11-13 2020-11-13 一种模型的处理方法以及相关设备

Country Status (3)

Country Link
US (1) US20230281250A1 (zh)
CN (1) CN114491913A (zh)
WO (1) WO2022100118A1 (zh)

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AUPP603798A0 (en) * 1998-09-18 1998-10-15 Canon Kabushiki Kaisha Automated image interpretation and retrieval system
US9916369B2 (en) * 2010-03-17 2018-03-13 At&T Intellectual Property I, L.P. System for calculating a social graph using a sugi
WO2015057837A1 (en) * 2013-10-15 2015-04-23 Analog Devices, Inc. Sampling variables from probabilistic models
CN103886395A (zh) * 2014-04-08 2014-06-25 河海大学 一种基于神经网络模型的水库优化调度方法
CN104915515A (zh) * 2015-06-26 2015-09-16 武汉大学 一种基于bp神经网络的gfet建模方法
CN105426612B (zh) * 2015-11-18 2019-01-18 中国石油天然气股份有限公司 一种地层组分最优化确定方法及装置
JP6990371B2 (ja) * 2016-07-12 2022-02-03 国立大学法人 熊本大学 予測装置、パラメータ集合生産方法及びプログラム
US10003867B2 (en) * 2016-08-31 2018-06-19 Ciena Corporation Disjoint path computation systems and methods in optical networks
US11308399B2 (en) * 2018-01-04 2022-04-19 Jean-Patrice Glafkidès Method for topological optimization of graph-based models
US11354586B2 (en) * 2019-02-15 2022-06-07 Q Bio, Inc. Model parameter determination using a predictive model
CN110380897A (zh) * 2019-07-04 2019-10-25 湖北央中巨石信息技术有限公司 基于改进bp神经网络的网络安全态势感知模型和方法

Also Published As

Publication number Publication date
WO2022100118A1 (zh) 2022-05-19
US20230281250A1 (en) 2023-09-07

Similar Documents

Publication Publication Date Title
CN109194707B (zh) 分布式图嵌入的方法及装置
US20220351019A1 (en) Adaptive Search Method and Apparatus for Neural Network
US10776400B2 (en) Clustering using locality-sensitive hashing with improved cost model
CN111400555B (zh) 图数据查询任务处理方法、装置、计算机设备和存储介质
WO2021232609A1 (zh) Rgb-d图像的语义分割方法、系统、介质及电子设备
JP2006190191A (ja) 情報処理装置および方法、並びにプログラム
CN109117854B (zh) 关键点匹配方法、装置、电子设备以及存储介质
JP2022502762A (ja) ニューラルネットワーク捜索方法、装置、プロセッサ、電子機器、記憶媒体及びコンピュータプログラム
CN105978711B (zh) 一种基于最小生成树的最佳交换边查找方法
CN112100450A (zh) 一种图计算数据分割方法、终端设备及存储介质
CN111460234A (zh) 图查询方法、装置、电子设备及计算机可读存储介质
CN111008631A (zh) 图像的关联方法及装置、存储介质和电子装置
CN114202632A (zh) 网格线性结构恢复方法、装置、电子设备及存储介质
CN111291611A (zh) 一种基于贝叶斯查询扩展的行人重识别方法及装置
CN114329027A (zh) 一种网络模型的训练方法、图像识别的方法以及相关装置
CN113127697A (zh) 图布局优化方法和系统、电子设备及可读存储介质
KR20190105147A (ko) 반딧불 알고리즘을 이용한 데이터 클러스터링 방법 및 시스템
CN110209895B (zh) 向量检索方法、装置和设备
CN114491913A (zh) 一种模型的处理方法以及相关设备
WO2020113437A1 (zh) 图结构处理方法、系统、网络设备及存储介质
Mathieu et al. Oversegmentation methods: a new evaluation
CN110851178B (zh) 一种基于分布式图可达计算的过程间程序静态分析方法
CN114548229A (zh) 训练数据增广方法、装置、设备和存储介质
CN110309367B (zh) 信息分类的方法、信息处理的方法和装置
CN110750661B (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