CN116304704A - 一种模型训练方法、装置、存储介质及电子设备 - Google Patents
一种模型训练方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN116304704A CN116304704A CN202310275618.8A CN202310275618A CN116304704A CN 116304704 A CN116304704 A CN 116304704A CN 202310275618 A CN202310275618 A CN 202310275618A CN 116304704 A CN116304704 A CN 116304704A
- Authority
- CN
- China
- Prior art keywords
- operator
- order
- basic
- target
- operators
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 64
- 238000012549 training Methods 0.000 title claims description 108
- 238000013135 deep learning Methods 0.000 claims abstract description 36
- 230000006870 function Effects 0.000 claims description 77
- 230000007704 transition Effects 0.000 claims description 19
- 230000008569 process Effects 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 15
- 230000014509 gene expression Effects 0.000 claims description 11
- 238000006467 substitution reaction Methods 0.000 claims description 4
- 238000009795 derivation Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 14
- 238000013136 deep learning model Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 9
- 230000006872 improvement Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- XGRYDJSRYGHYOO-KJYQHMRQSA-N bis[[(1r,8r)-2,3,5,6,7,8-hexahydro-1h-pyrrolizin-1-yl]methyl] 2,4-bis(4-hydroxyphenyl)cyclobutane-1,3-dicarboxylate Chemical compound C1=CC(O)=CC=C1C1C(C(=O)OC[C@H]2[C@H]3CCCN3CC2)C(C=2C=CC(O)=CC=2)C1C(=O)OC[C@H]1[C@H]2CCCN2CC1 XGRYDJSRYGHYOO-KJYQHMRQSA-N 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 229920001296 polysiloxane Polymers 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning 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
技术领域
本说明书涉及计算机技术领域,尤其涉及一种模型训练方法、装置、存储介质及电子设备。
背景技术
目前,深度学习模型广泛应用于图像处理、物理问题求解等应用场景,而深度学习模型是基于深度学习框架构建的。在构建深度学习模型的过程中,需要通过深度学习框架下的各种算子,对待构建的深度学习模型进行训练,得到训练后深度学习模型,以完成构建。
现有技术中,在深度学习框架下,对深度学习模型进行训练的过程中会涉及损失函数,而损失函数的计算逻辑需要通过多种算子的代码共同实现。在对损失函数中的算子求高阶导的情况下,需要预先在深度学框架中部署每个算子在所有求导阶数下的求导后算子,以满足高阶求导需求。
但是,在部署的每个算子所有求导阶数下的求导后算子中,可能会存在某个求导阶数的求导后算子与另一个求导阶数的求导后算子相同的情况,从而造成深度学习框架下的算子冗余问题。
发明内容
本说明书实施例提供一种模型训练方法、装置、存储介质及电子设备,以部分解决上述现有技术存在的问题。
本说明书实施例采用下述技术方案:
本说明书提供的一种模型训练方法,包括:
针对所述算子集合中的每个基础算子,确定与该基础算子具有第一阶数关系的目标算子,若确定所述算子集合中不包含有所述目标算子,则将所述目标算子保存在所述算子集合中,并将所述目标算子重新确定为基础算子,以及继续确定与重新确定出的基础算子具有第一阶数关系的目标算子,直至确定出的目标算子已保存在所述算子集合中为止;所述第一阶数包括:一阶;
接收模型训练指令,并根据所述模型训练指令,部署待训练模型,以及确定所述待训练模型在训练过程中所需的损失函数;
确定所述损失函数中包含的待求解第二阶数导数的算子,作为初始算子,所述第二阶数是指求导的任意阶数导数;
根据所述算子集合中包含的各基础算子之间的阶数关系,搜索出与所述初始算子具有第二阶数关系的算子;
根据搜索出的与所述初始算子具有第二阶数关系的算子,对训练所述待训练模型所需的代码进行实例化,并通过实例化后的代码,执行模型训练任务。
可选地,若确定所述算子集合中不包含有所述目标算子,则将所述目标算子保存在所述算子集合中,具体包括:
确定组成所述目标算子的各子算子;
针对每个子算子,判断所述算子集合中是否包含有该子算子;
若确定所述算子集合中不包含该子算子,将该子算子保存在所述算子集合中。
可选地,在继续确定与重新确定出的基础算子具有第一阶数关系的目标算子,直至确定出的目标算子已保存在所述算子集合中为止之后,所述方法还包括:
将最终的算子集合中包含的各基础算子对应的算子代码部署到深度学习框架中。
可选地,根据所述算子集合中包含的各基础算子之间的阶数关系,搜索出与所述初始算子具有第二阶数关系的算子,具体包括:
从所述算子集合中确定出与所述初始算子相匹配的基础算子,作为匹配算子;
从所述算子集合中搜索出与所述匹配算子存在第一阶数关系的基础算子,作为过渡算子,从所述算子集合中搜索出与所述过渡算子存在第一阶数关系的基础算子,将搜索出的基础算子重新确定为过渡算子,继续从所述算子集合中搜索出与重新确定的过渡算子存在第一阶数关系的基础算子,直到搜索出的基础算子与所述匹配算子之间的阶数关系满足第二阶数关系为止;
将最终搜索出的基础算子作为与所述初始算子具有第二阶数关系的算子。
可选地,根据所述算子集合中包含的各基础算子之间的阶数关系,搜索出与所述初始算子具有第二阶数关系的算子,具体包括:
根据所述算子集合中包含的各基础算子之间的阶数关系,搜索出与所述初始算子具有第二阶数关系的算子组合,并对算子组合中每个算子进行拼接,得到拼接后算子,作为与所述初始算子具有第二阶数关系的算子。
可选地,根据搜索出的与所述初始算子具有第二阶数关系的算子,对训练所述待训练模型所需的代码进行实例化,具体包括:
将所述损失函数中求解第二阶数导数的表达式替换为搜索出的与所述初始算子具有第二阶数关系的算子,以得到替换后损失函数;
根据所述替换后损失函数中包含的各算子,对训练所述待训练模型所需的代码进行实例化。
可选地,根据所述替换后损失函数中包含的各算子,对训练所述待训练模型所需的代码进行实例化,具体包括:
针对所述替换后损失函数中包含的每个算子,根据该算子的输入输出的数据的数据类型,确定出与该算子对应的算子代码;
基于所述替换后损失函数中包含的每个算子对应的算子代码,对训练所述待训练模型所需的代码进行实例化。
本说明书提供的一种模型训练装置,包括:
第一确定模块,用于确定执行模型训练任务所需的算子集合;
构建算子集合模块,用于针对所述算子集合中的每个基础算子,确定与该基础算子具有第一阶数关系的目标算子,若确定所述算子集合中不包含有所述目标算子,则将所述目标算子保存在所述算子集合中,并将所述目标算子重新确定为基础算子,以及继续确定与重新确定出的基础算子具有第一阶数关系的目标算子,直至确定出的目标算子已保存在所述算子集合中为止;所述第一阶数包括:一阶;
接收模块,用于接收模型训练指令,并根据所述模型训练指令,部署待训练模型,以及确定所述待训练模型在训练过程中所需的损失函数;
第二确定模块,用于确定所述损失函数中包含的待求解第二阶数导数的算子,作为初始算子,所述第二阶数是指求导的任意阶数导数;
搜索模块,用于根据所述算子集合中包含的各基础算子之间的阶数关系,搜索出与所述初始算子具有第二阶数关系的算子;
执行训练任务模块,用于根据搜索出的与所述初始算子具有第二阶数关系的算子,对训练所述待训练模型所需的代码进行实例化,并通过实例化后的代码,执行模型训练任务。
可选地,所述构建算子集合模块,具体用于确定组成所述目标算子的各子算子;针对每个子算子,判断所述算子集合中是否包含有该子算子;若确定所述算子集合中不包含该子算子,将该子算子保存在所述算子集合中。
可选地,在继续确定与重新确定出的基础算子具有第一阶数关系的目标算子,直至确定出的目标算子已保存在所述算子集合中为止之后,所述构建算子集合模块,还用于将最终的算子集合中包含的各基础算子对应的算子代码部署到深度学习框架中。
可选地,所述搜索模块,具体用于从所述算子集合中确定出与所述初始算子相匹配的基础算子,作为匹配算子;从所述算子集合中搜索出与所述匹配算子存在第一阶数关系的基础算子,作为过渡算子,从所述算子集合中搜索出与所述过渡算子存在第一阶数关系的基础算子,将搜索出的基础算子重新确定为过渡算子,继续从所述算子集合中搜索出与重新确定的过渡算子存在第一阶数关系的基础算子,直到搜索出的基础算子与所述匹配算子之间的阶数关系满足第二阶数关系为止;将最终搜索出的基础算子作为与所述初始算子具有第二阶数关系的算子。
可选地,所述搜索模块,具体用于根据所述算子集合中包含的各基础算子之间的阶数关系,搜索出与所述初始算子具有第二阶数关系的算子组合,并对算子组合中每个算子进行拼接,得到拼接后算子,作为与所述初始算子具有第二阶数关系的算子。
可选地,所述执行训练任务模块,具体用于将所述损失函数中求解第二阶数导数的表达式替换为搜索出的与所述初始算子具有第二阶数关系的算子,以得到替换后损失函数;根据所述替换后损失函数中包含的各算子,对训练所述待训练模型所需的代码进行实例化。
可选地,所述执行训练任务模块,具体用于针对所述替换后损失函数中包含的每个算子,根据该算子的输入输出的数据的数据类型,确定出与该算子对应的算子代码;基于所述替换后损失函数中包含的每个算子对应的算子代码,对训练所述待训练模型所需的代码进行实例化。
本说明书提供的一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述的模型训练方法。
本说明书提供的一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述的模型训练方法。
本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:
本说明书实施例中针对确定的算子集合中的每个基础算子,确定与该基础算子具有第一阶数关系的目标算子,若算子集合不包含目标算子,将目标算子保存于算子集合中,将目标算子重新确定为基础算子,继续确定出与重新确定为基础算子具有第一阶数关系的目标算子,直到确定出目标算子已保存在算子集合中为止。这样构建算子集合的方法,可以避免算子集合中出现重复的算子,从而避免将算子集合中的算子部署到深度学习框架中会出现算子冗余问题。
附图说明
此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:
图1为现有技术中提供sin算子与不同求导阶数的求导后算子之间的对应关系的示意图。
图2为本说明书实施例提供的模型训练方法的流程示意图。
图3为本说明书实施例提供的算子集合中针对sin算子的不同求导阶数的算子之间的阶数关系的示意图。
图4为本说明书实施例提供的模型训练装置结构示意图。
图5为本说明书实施例提供的电子设备的结构示意图。
具体实施方式
在深度学习框架中可以部署各算子对应的算子代码,以各算子的算子代码来对模型进行训练,以构建模型。其中,可以人为编写各算子的算子代码,并将各算子的算子代码部署到深度学习框架中。
现有技术中,在对损失函数中的算子求高阶导的情况下,预先在深度学习框架中部署每个算子在所有求导阶数下的求导后算子,虽然可以满足高阶求导的需求,但是,针对不同算子,可能会出现某个算子的某个求导阶数下的求导后算子与另一个算子的某个求导阶数下的求导后算子相同的情况,或者针对同一算子,可能会出现该算子的某个求导阶数下的求导后算子与该算子的另一求导阶数下的求导后算子相同的情况。这都会导致深度学习框架中部署的算子出现算子冗余的问题。
以sin算子和cos算子为例,分别针对sin算子和cos算子,对这两个算子进行求导。
以sin算子为例,sin算子的一阶导为cos算子,sin算子的二阶导为-sin算子,sin算子的三阶导为-cos算子,sin算子的四阶导为sin算子,sin算子的五阶导为cos算子,如此循环。现有技术中提供sin算子与不同求导阶数的求导后算子之间的对应关系的示意图,如图1所示。
以cos算子为例,cos算子的一阶导为-sin算子,cos算子的二阶导为-cos算子,cos算子的三阶导为-sin算子,cos算子的四阶导为-cos算子,如此循环。
基于上述可见,针对sin算子或cos算子,在对算子求一定阶数导数后,继续求导后的算子会与已求导过的阶数导数的算子重复,这样会出现即使求导阶数不同,但求导后的算子存在相同的情况,从而导致部署于深度学习框架中算子出现算子冗余的问题。而针对sin算子和cos算子,sin算子的二阶导的算子与cos算子的一阶导的算子相同,即,-sin算子。这个-sin算子在深度学习框架中部署了两个,造成深度学习框架中部署的算子出现算子冗余的问题。
另外,在深度学习框架中部署重复算子需要消耗更多额外的人力成本。
为了解决现有技术中深度学习框架中部署冗余算子的问题,本说明书中可以构建一个算子集合,算子集合中每个算子对应的一阶导算子都可以通过算子集合中的算子实现。在构建算子集合时,针对每个算子,判断与该算子具有一阶导关系的算子是否在算子集合中,若在,无需向算子集合中增加与该算子具有一阶导关系的算子,若不在,在算子集合中增加与该算子具有一阶导关系的算子,直到算子集合中每个算子的一阶导算子均在算子集合中为止,得到最终的算子集合。这样,算子集合中不会存在同一算子的不同求导阶数下的求导后算子相同的情况,或者不会存在不同算子的不同求导阶数下的求导后算子相同的情况。即,构建出的算子集合中不会存在重复的算子。
以sin算子和cos算子为例,构建算子集合的过程为:先将sin算子和cos算子添加到算子集合中,然后,对sin算子求一阶导为cos算子,cos算子已在算子集合中,无需额外添加。同时,对cos算子求一阶导,得到-sin算子,-sin算子是由“neg”算子、“mul”算子和“sin”算子组合而成,而“sin”算子已在算子集合中,因此,只需要将“neg”算子、“mul”算子添加到算子集合中。而-sin算子是对sin算子求二阶导的导数。
在将算子集合中的各算子部署于深度学习框架中,也只需要部署算子集合中的各算子的算子代码,不会存在重复的算子以及算子代码。这样,可以避免深度学习框架中算子冗余的问题,同时,在一定程度上减少了额外的人力成本。
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
图2为本说明书实施例提供的模型训练方法的流程示意图,该模型训练方法可以适用于服务器,包括:
S200:确定执行模型训练任务所需的算子集合。
在本说明书中,需要先构建一个算子不重复的算子集合,在对算子集合中某个算子求高阶导时,可以根据集合中各算子之间的阶数关系,从构建的集合中推导出与该算子具有待求解的高阶导关系的算子,以得到求解结果。
在本说明书实施例中,对某个算子求高阶导的应用场景可以是模型训练场景。也就是,在对模型训练之前,需要根据算子之间的第一阶数关系,构建出用于模型训练的算子集合,使构建出的算子集合中的算子不重复。
其中,第一阶数关系可以是指一阶导关系。算子可以是指实现运算逻辑的函数或运算符号,算子可以包括:代数运算的算子、逻辑运算的算子、比较运算的算子、三角函数的算子、卷积神经网络中的卷积算子等。
在本说明书实施例中,可以先确定执行模型训练任务所需的初始的算子集合,并将初始的算子集合中的算子作为基础算子。其中,训练的模型可以是深度学习模型。初始的算子集合中的每个基础算子可以是用户根据深度学习模型的应用场景而自定义的算子。初始的算子集合中的每个基础算子可以包括:sin算子、cos算子、tanh算子、matmul算子、sigmoid算子等。
另外,对于某些复杂的计算逻辑,可以将实现复杂的计算逻辑的多个算子封装为一个基础算子。例如:Log SoftMax运算的计算逻辑中即包含了求和、除法,也包含了指数、对数。在实际应用中,如果将求和算子、除法算子、指数算子、对数算子进行组合实现LogSoftMax运算的复杂计算逻辑,不仅实现步骤冗长易错,而且这种组合实现的方法效率低,因此,在实际应用之前,可以直接可以将实现Log SoftMax运算的各算子进行封装,将封装后的算子作为Log SoftMax基础算子。
S202:针对所述算子集合中的每个基础算子,确定与该基础算子具有第一阶数关系的目标算子,若确定所述算子集合中不包含有所述目标算子,则将所述目标算子保存在所述算子集合中,并将所述目标算子重新确定为基础算子,以及继续确定与重新确定出的基础算子具有第一阶数关系的目标算子,直至确定出的目标算子已保存在所述算子集合中为止;所述第一阶数包括:一阶。
在本说明书实施例中,在初始的算子集合的基础上,可以对初始的算子集合中的基础算子进行扩充,以构建用于训练模型的算子集合。
具体的,针对算子集合中的每个基础算子,确定与该基础算子具有第一阶数关系的算子,作为目标算子。若确定算子集合中不包含有目标算子,则将目标算子保存在算子集合中,并将目标算子重新确定为基础算子,以及继续确定与重新确定出的基础算子具有第一阶数关系的目标算子,直至确定出的目标算子已保存在算子集合中为止,以得到最终的算子集合。其中,第一阶数可以包括:一阶。
在确定出与该基础算子具有第一阶数关系的目标算子时,可以直接对该基础算子求一阶导,得到与该基础算子具有第一阶数关系的目标算子。或者,可以从公开的数据库或网页中查询出与该基础算子具有第一阶数关系的目标算子。
在得到与该基础算子具有第一阶数关系的目标算子之后,可以判断算子集合中是否包含有目标算子,若确定算子集合中包含有目标算子,则建立并保存该基础算子与目标算子之间的第一阶数关系,并继续遍历算子集合中的下一基础算子,若确定算子集合中不包含目标算子,则将目标算子保存在算子集合中。其中,目标算子也可以是单独的一个算子,也可以是由多个子算子组成或拼接成的算子,每个子算子是一个算子。
在目标算子是一个算子时,可以直接在算子集合中查找目标算子,若查找到目标算子,则确定算子集合中包含有目标算子,若查找不到目标算子,则确定算子集合中未包含目标算子。在算子集合中未包含目标算子时,将目标算子增加到算子集合中。
在目标算子由多个子算子组成时,可以先确定出组成目标算子的各子算子。然后,判断算子集合中是否包含有各子算子,若确定算子集合中包含有各子算子,则将各子算子进行拼接后的算子作为目标算子,并将目标算子保存在算子集合中。若确定算子集合中不包含各子算子中的任意一个子算子,则确定算子集合中不包含有目标算子。
例如:若目标算子为-sin算子,则组成-sin算子的各子算子分别为:neg算子、mul算子、sin算子。
在算子集合中不包含有目标算子的情况下,确定组成目标算子的各子算子,针对每个子算子,判断算子集合中是否包含有该子算子。若确定算子集合中不包含该子算子,将该子算子保存在算子集合中。在确定组成目标算子的各子算子均保存于集合中之后,可以将各子算子进行拼接后的算子作为目标算子,并将目标算子保存在算子集合中。这样,将目标算子保存在算子集合中。
在将目标算子保存在算子集合中之后,可以在算子集合中建立并保存该基础算子与目标算子之间的第一阶数关系。同时,可以将目标算子重新确定为基础算子,并继续确定出与重新确定出的基础算子具有第一阶数关系的目标算子,直至确定出的目标算子已保存在算子集合中为止,这样可以确定出最终的算子集合。
以sin算子为例,算子集合中针对sin算子的不同求导阶数的算子之间的阶数关系的示意图,如图3所示。
在图3中,与sin算子具有一阶导关系的算子为cos算子,与cos算子具有一阶导关系的算子为-sin算子,与-sin算子具有一阶导关系的算子为-cos算子,与-cos算子具有一阶导关系的算子为sin算子。而针对sin算子,与sin算子具有一阶导关系的算子为cos算子,与sin算子具有二阶导关系的算子为-sin算子,与sin算子具有三阶导关系的算子为-cos算子。
在确定出最终的算子集合之后,可以将算子集合中包含的各基础算子对应的算子代码部署到深度学习框架中,以便后续通过部署了算子代码的深度学习框架构建深度学习模型。其中,构建深度学习模型主要是在深度学习模型框架下训练深度学习模型。
S204:接收模型训练指令,并根据所述模型训练指令,部署待训练模型,以及确定所述待训练模型在训练过程中所需的损失函数。
在本说明书实施例中,在将算子集合中的基础算子的算子代码部署在深度学习框架中之后,可以通过深度学习框架训练模型。
具体的,接收模型训练指令,然后,根据模型训练指令,在深度学习框架中部署待训练模型。同时,根据模型训练指令,确定出待训练模型在训练过程中所需的损失函数。其中,模型训练指令中携带有针对模型训练所需的脚本。脚本包含有模型的模型结构、模型的训练样本、模型的训练标签以及损失函数。
进一步,可以对模型训练指令中携带的脚本进行解析,得到模型结构,以及损失函数。然后,根据模型结构,在深度学习框架中部署该模型结构的模型,作为待训练模型。其中,待训练模型可以是深度学习模型。
S206:确定所述损失函数中包含的待求解第二阶数导数的算子,作为初始算子,所述第二阶数是指求导的任意阶数导数。
在本说明书实施例中,在确定损失函数之后,可以确定出损失函数中包含的待求解第二阶数导数的算子,作为初始算子。其中,第二阶数是指求导的任意阶数,即,第二阶数可以包括:一阶、二阶、三阶等任意阶数。
具体的,可以对损失函数进行解析,确定出损失函数中包含的各表达式。然后,从各表达式中确定出需要求解第二阶数导数的表达式,并确定出该表达式中待求解第二阶数导数的算子,作为初始算子。
需要说明的是,确定出的初始算子可以是多个。
S208:根据所述算子集合中包含的各基础算子之间的阶数关系,搜索出与所述初始算子具有第二阶数关系的算子。
在本说明书实施例中,在确定初始算子之后,可以根据算子集合中包含的各基础算子之间的阶数关系,搜索出与初始算子具有第二阶数关系的算子,作为对初始算子求第二阶数导数后的求解结果。其中,与初始算子具有第二阶数关系的算子可以包含一个算子,也可以包含多个算子。
在与初始算子具有第二阶数关系的算子包含多个算子的情况下,可以根据算子集合中包含的各基础算子之间的阶数关系,搜索出与初始算子具有第二阶数关系的算子组合,然后,将算子组合中每个算子进行拼接,得到拼接后算子,作为与初始算子具有第二阶数关系的算子。
不管是搜索出与初始算子具有第二阶数关系的一个算子还是算子组合,在算子集合中的搜索过程如下:
从算子集合中确定出与初始算子相匹配的基础算子,作为匹配算子。也就是,从算子集合中查找出初始算子。然后,从算子集合中搜索出与匹配算子存在第一阶数关系的基础算子,作为过渡算子,从算子集合中搜索出与过渡算子存在第一阶数关系的基础算子,将搜索出的基础算子重新确定为过渡算子,继续从算子集合中搜索出与重新确定的过渡算子存在第一阶数关系的基础算子,直到搜索出的基础算子与匹配算子(即,初始算子)之间的阶数关系满足第二阶数关系为止。最后,将最终搜索出的基础算子作为与初始算子具有第二阶数关系的算子。其中,最终搜索出的基础算子可以是一个或多个。
假如需要对sin算子求三阶导,可以先在算子集合中查找出sin算子,然后,搜索出与sin算子具有一阶导关系的cos算子,再搜索出与cos算子存在一阶导关系的-sin算子,这时,-sin算子与sin算子存在二阶导关系,继续搜索出与-sin算子存在一阶导关系的-cos算子,这时,-cos算子与sin算子存在三阶导关系。最终,确定出与sin算子存在三阶导关系的算子是-cos算子。
S210:根据搜索出的与所述初始算子具有第二阶数关系的算子,对训练所述待训练模型所需的代码进行实例化,并通过实例化后的代码,执行模型训练任务。
在本说明书实施例中,在搜索出与初始算子具有第二阶数关系的算子之后,可以根据搜索出的与初始算子具有第二阶数关系的算子,对训练待训练模型所需的代码进行实例化,并通过实例化后的代码,执行模型训练任务。其中,训练待训练模型所需的代码可以是指实现损失函数的计算逻辑所需的代码。
在对待训练模型所需的代码进行实例化时,可以将损失函数中求解第二阶数导数的表达式替换为搜索出的与初始算子具有第二阶数关系的算子,以得到替换后损失函数。然后,可以根据替换后损失函数中包含的各算子,对训练待训练模型所需的代码进行实例化,得到实例化后的代码。其中,训练待训练模型所需的代码可以是指实现替换后损失函数的计算逻辑所需的代码。
具体的,可以根据替换后损失函数中包含的各算子,从深度学习框架中确定出替换后损失函数中包含的各算子的算子代码,并根据确定出的替换后损失函数中包含的各算子的算子代码,生成对待训练模型进行训练所需的代码,得到实例化后的代码。
由于算子的算子代码是在CPU、GPU等计算资源上执行的程序代码,因此,算子代码的具体实现是与不同的计算资源相关的。例如:针对同一算子,开发人员可以针对不同的计算资源,在后缀名不同的文件中编写同一算子的代码,以实现同一算子在不同计算资源上的运行逻辑。此外,每个算子的输入输出的数据类型也具有多样性,因此,每个算子针对不同的数据类型需要编写不同的算子代码。即,每个算子可以对应多个算子代码。
在从深度学习框架中确定出替换后损失函数中包含的各算子的算子代码时,针对替换后损失函数中包含的每个算子,根据该算子的输入输出的数据的数据类型,确定出与该算子对应的算子代码。然后,基于替换后损失函数中包含的每个算子对应的算子代码,对训练待训练模型所需的代码进行实例化(即,生成对待训练模型进行训练所需的代码)。
在确定与该算子对应的算子代码时,可以根据该算子的输入输出的数据的数据类型以及针对该算子的各参数,确定出与该算子对应的算子代码。其中,针对该算子的各参数可以包括:输入参数、属性参数、该算子运行所需的计算资源量等。
在通过实例化后的代码,执行模型训练任务时,可以在深度学习框架下,通过实例化后的代码,对待训练模型进行训练,以得到训练后模型。其中,训练后模型可以用于图像处理、文本处理、求解数学问题、求解物理问题等。
在对待训练模型进行训练时,可以确定训练样本以及标签。将训练样本输入到待训练模型中,以通过待训练模型输出结果。以输出结果与标签之间的差异最小化为目标,对待训练模型进行训练。
在求解数学问题的场景下,训练待训练模型的目的是使训练后的模型能够对方程式进行求解,也就是,使训练后的模型能够实现方程式中x与y之间的数学关系。因此,待训练模型的损失函数可以是需要求解的方程式。
在训练模型时,将x作为第一变量,将y作为第二变量。可以将第一变量的样本取值作为训练样本,将第一变量的各样本取值对应的第二变量的标准值作为标签。在训练过程中,将各样本取值输入待训练模型中,以通过待训练模型输出对应的结果。根据输出的结果以及各样本取值,确定第一变量与第二变量之间的数学关系。将确定出的第一变量与第二变量之间的数学关系代入损失函数中,判断代入后的公式是否满足等式条件。比如:损失函数可以是loss=
通过上述图1所示的方法可见,本说明书针对确定的算子集合中的每个基础算子,确定与该基础算子具有第一阶数关系的目标算子,若算子集合不包含目标算子,将目标算子保存于算子集合中,将目标算子重新确定为基础算子,继续确定出与重新确定为基础算子具有第一阶数关系的目标算子,直到确定出目标算子已保存在算子集合中为止。这样构建算子集合的方法,可以避免算子集合中出现重复的算子,从而避免将算子集合中的算子部署到深度学习框架中会出现算子冗余问题。深度学习框架中不会部署重复的算子,在一定程度上减少了额外的人力成本。另外,此方法可以确保算子集合中的每个基础算子对应的一阶导数关系算子可以通过算子集合中的基础算子实现,从而避免将算子集合中的算子的高阶导数关系算子部署到深度学习框架中,这样可以提高一阶导数算子的复用率,减少了将高阶导数算子部署到深度学习框架中的开发成本。
以上为本说明书实施例提供的模型训练方法,基于同样的思路,本说明书还提供了相应的装置、存储介质和电子设备。
图4为本说明书实施例提供的一种模型训练装置的结构示意图,所述装置包括:
第一确定模块401,用于确定执行模型训练任务所需的算子集合;
构建算子集合模块402,用于针对所述算子集合中的每个基础算子,确定与该基础算子具有第一阶数关系的目标算子,若确定所述算子集合中不包含有所述目标算子,则将所述目标算子保存在所述算子集合中,并将所述目标算子重新确定为基础算子,以及继续确定与重新确定出的基础算子具有第一阶数关系的目标算子,直至确定出的目标算子已保存在所述算子集合中为止;所述第一阶数包括:一阶;
接收模块403,用于接收模型训练指令,并根据所述模型训练指令,部署待训练模型,以及确定所述待训练模型在训练过程中所需的损失函数;
第二确定模块404,用于确定所述损失函数中包含的待求解第二阶数导数的算子,作为初始算子,所述第二阶数是指求导的任意阶数;
搜索模块405,用于根据所述算子集合中包含的各基础算子之间的阶数关系,搜索出与所述初始算子具有第二阶数关系的算子;
执行训练任务模块406,用于根据搜索出的与所述初始算子具有第二阶数关系的算子,对训练所述待训练模型所需的代码进行实例化,并通过实例化后的代码,执行模型训练任务。
可选地,所述构建算子集合模块402,具体用于确定组成所述目标算子的各子算子;针对每个子算子,判断所述算子集合中是否包含有该子算子;若确定所述算子集合中不包含该子算子,将该子算子保存在所述算子集合中。
可选地,在继续确定与重新确定出的基础算子具有第一阶数关系的目标算子,直至确定出的目标算子已保存在所述算子集合中为止之后,所述构建算子集合模块402,还用于将最终的算子集合中包含的各基础算子对应的算子代码部署到深度学习框架中。
可选地,所述搜索模块405,具体用于从所述算子集合中确定出与所述初始算子相匹配的基础算子,作为匹配算子;从所述算子集合中搜索出与所述匹配算子存在第一阶数关系的基础算子,作为过渡算子,从所述算子集合中搜索出与所述过渡算子存在第一阶数关系的基础算子,将搜索出的基础算子重新确定为过渡算子,继续从所述算子集合中搜索出与重新确定的过渡算子存在第一阶数关系的基础算子,直到搜索出的基础算子与所述匹配算子之间的阶数关系满足第二阶数关系为止;将最终搜索出的基础算子作为与所述初始算子具有第二阶数关系的算子。
可选地,所述搜索模块405,具体用于根据所述算子集合中包含的各基础算子之间的阶数关系,搜索出与所述初始算子具有第二阶数关系的算子组合,并对算子组合中每个算子进行拼接,得到拼接后算子,作为与所述初始算子具有第二阶数关系的算子。
可选地,所述执行训练任务模块406,具体用于将所述损失函数中求解第二阶数导数的表达式替换为搜索出的与所述初始算子具有第二阶数关系的算子,以得到替换后损失函数;根据所述替换后损失函数中包含的各算子,对训练所述待训练模型所需的代码进行实例化。
可选地,所述执行训练任务模块406,具体用于针对所述替换后损失函数中包含的每个算子,根据该算子的输入输出的数据的数据类型,确定出与该算子对应的算子代码;基于所述替换后损失函数中包含的每个算子对应的算子代码,对训练所述待训练模型所需的代码进行实例化。
本说明书还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时可用于执行上述图2提供的模型训练方法。
基于图2所示的模型训练方法,本说明书实施例还提供了图5所示的电子设备的结构示意图。如图5,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图2所述的模型训练方法。
当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本说明书的实施例可提供为方法、系统、或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。
Claims (16)
1.一种模型训练方法,其特征在于,包括:
确定执行模型训练任务所需的算子集合;
针对所述算子集合中的每个基础算子,确定与该基础算子具有第一阶数关系的目标算子,若确定所述算子集合中不包含有所述目标算子,则将所述目标算子保存在所述算子集合中,并将所述目标算子重新确定为基础算子,以及继续确定与重新确定出的基础算子具有第一阶数关系的目标算子,直至确定出的目标算子已保存在所述算子集合中为止;所述第一阶数包括:一阶;
接收模型训练指令,并根据所述模型训练指令,部署待训练模型,以及确定所述待训练模型在训练过程中所需的损失函数;
确定所述损失函数中包含的待求解第二阶数导数的算子,作为初始算子,所述第二阶数是指求导的任意阶数;
根据所述算子集合中包含的各基础算子之间的阶数关系,搜索出与所述初始算子具有第二阶数关系的算子;
根据搜索出的与所述初始算子具有第二阶数关系的算子,对训练所述待训练模型所需的代码进行实例化,并通过实例化后的代码,执行模型训练任务。
2.如权利要求1所述的方法,其特征在于,若确定所述算子集合中不包含有所述目标算子,则将所述目标算子保存在所述算子集合中,具体包括:
确定组成所述目标算子的各子算子;
针对每个子算子,判断所述算子集合中是否包含有该子算子;
若确定所述算子集合中不包含该子算子,将该子算子保存在所述算子集合中。
3.如权利要求1所述的方法,其特征在于,在继续确定与重新确定出的基础算子具有第一阶数关系的目标算子,直至确定出的目标算子已保存在所述算子集合中为止之后,所述方法还包括:
将最终的算子集合中包含的各基础算子对应的算子代码部署到深度学习框架中。
4.如权利要求1所述的方法,其特征在于,根据所述算子集合中包含的各基础算子之间的阶数关系,搜索出与所述初始算子具有第二阶数关系的算子,具体包括:
从所述算子集合中确定出与所述初始算子相匹配的基础算子,作为匹配算子;
从所述算子集合中搜索出与所述匹配算子存在第一阶数关系的基础算子,作为过渡算子,从所述算子集合中搜索出与所述过渡算子存在第一阶数关系的基础算子,将搜索出的基础算子重新确定为过渡算子,继续从所述算子集合中搜索出与重新确定的过渡算子存在第一阶数关系的基础算子,直到搜索出的基础算子与所述匹配算子之间的阶数关系满足第二阶数关系为止;
将最终搜索出的基础算子作为与所述初始算子具有第二阶数关系的算子。
5.如权利要求1所述的方法,其特征在于,根据所述算子集合中包含的各基础算子之间的阶数关系,搜索出与所述初始算子具有第二阶数关系的算子,具体包括:
根据所述算子集合中包含的各基础算子之间的阶数关系,搜索出与所述初始算子具有第二阶数关系的算子组合,并对算子组合中每个算子进行拼接,得到拼接后算子,作为与所述初始算子具有第二阶数关系的算子。
6.如权利要求1所述的方法,其特征在于,根据搜索出的与所述初始算子具有第二阶数关系的算子,对训练所述待训练模型所需的代码进行实例化,具体包括:
将所述损失函数中求解第二阶数导数的表达式替换为搜索出的与所述初始算子具有第二阶数关系的算子,以得到替换后损失函数;
根据所述替换后损失函数中包含的各算子,对训练所述待训练模型所需的代码进行实例化。
7.如权利要求6所述的方法,其特征在于,根据所述替换后损失函数中包含的各算子,对训练所述待训练模型所需的代码进行实例化,具体包括:
针对所述替换后损失函数中包含的每个算子,根据该算子的输入输出的数据的数据类型,确定出与该算子对应的算子代码;
基于所述替换后损失函数中包含的每个算子对应的算子代码,对训练所述待训练模型所需的代码进行实例化。
8.一种模型训练装置,其特征在于,包括:
第一确定模块,用于确定执行模型训练任务所需的算子集合;
构建算子集合模块,用于针对所述算子集合中的每个基础算子,确定与该基础算子具有第一阶数关系的目标算子,若确定所述算子集合中不包含有所述目标算子,则将所述目标算子保存在所述算子集合中,并将所述目标算子重新确定为基础算子,以及继续确定与重新确定出的基础算子具有第一阶数关系的目标算子,直至确定出的目标算子已保存在所述算子集合中为止;所述第一阶数包括:一阶;
接收模块,用于接收模型训练指令,并根据所述模型训练指令,部署待训练模型,以及确定所述待训练模型在训练过程中所需的损失函数;
第二确定模块,用于确定所述损失函数中包含的待求解第二阶数导数的算子,作为初始算子,所述第二阶数是指求导的任意阶数导数;
搜索模块,用于根据所述算子集合中包含的各基础算子之间的阶数关系,搜索出与所述初始算子具有第二阶数关系的算子;
执行训练任务模块,用于根据搜索出的与所述初始算子具有第二阶数关系的算子,对训练所述待训练模型所需的代码进行实例化,并通过实例化后的代码,执行模型训练任务。
9.如权利要求8所述的装置,其特征在于,所述构建算子集合模块,具体用于确定组成所述目标算子的各子算子;针对每个子算子,判断所述算子集合中是否包含有该子算子;若确定所述算子集合中不包含该子算子,将该子算子保存在所述算子集合中。
10.如权利要求8所述的装置,其特征在于,在继续确定与重新确定出的基础算子具有第一阶数关系的目标算子,直至确定出的目标算子已保存在所述算子集合中为止之后,所述构建算子集合模块,还用于将最终的算子集合中包含的各基础算子对应的算子代码部署到深度学习框架中。
11.如权利要求8所述的装置,其特征在于,所述搜索模块,具体用于从所述算子集合中确定出与所述初始算子相匹配的基础算子,作为匹配算子;从所述算子集合中搜索出与所述匹配算子存在第一阶数关系的基础算子,作为过渡算子,从所述算子集合中搜索出与所述过渡算子存在第一阶数关系的基础算子,将搜索出的基础算子重新确定为过渡算子,继续从所述算子集合中搜索出与重新确定的过渡算子存在第一阶数关系的基础算子,直到搜索出的基础算子与所述匹配算子之间的阶数关系满足第二阶数关系为止;将最终搜索出的基础算子作为与所述初始算子具有第二阶数关系的算子。
12.如权利要求8所述的装置,其特征在于,所述搜索模块,具体用于根据所述算子集合中包含的各基础算子之间的阶数关系,搜索出与所述初始算子具有第二阶数关系的算子组合,并对算子组合中每个算子进行拼接,得到拼接后算子,作为与所述初始算子具有第二阶数关系的算子。
13.如权利要求8所述的装置,其特征在于,所述执行训练任务模块,具体用于将所述损失函数中求解第二阶数导数的表达式替换为搜索出的与所述初始算子具有第二阶数关系的算子,以得到替换后损失函数;根据所述替换后损失函数中包含的各算子,对训练所述待训练模型所需的代码进行实例化。
14.如权利要求13所述的装置,其特征在于,所述执行训练任务模块,具体用于针对所述替换后损失函数中包含的每个算子,根据该算子的输入输出的数据的数据类型,确定出与该算子对应的算子代码;基于所述替换后损失函数中包含的每个算子对应的算子代码,对训练所述待训练模型所需的代码进行实例化。
15.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1-7任一项所述的方法。
16.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310275618.8A CN116304704A (zh) | 2023-03-14 | 2023-03-14 | 一种模型训练方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310275618.8A CN116304704A (zh) | 2023-03-14 | 2023-03-14 | 一种模型训练方法、装置、存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116304704A true CN116304704A (zh) | 2023-06-23 |
Family
ID=86799225
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310275618.8A Pending CN116304704A (zh) | 2023-03-14 | 2023-03-14 | 一种模型训练方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116304704A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116756589A (zh) * | 2023-08-16 | 2023-09-15 | 北京壁仞科技开发有限公司 | 匹配算子的方法、计算设备和计算机可读存储介质 |
-
2023
- 2023-03-14 CN CN202310275618.8A patent/CN116304704A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116756589A (zh) * | 2023-08-16 | 2023-09-15 | 北京壁仞科技开发有限公司 | 匹配算子的方法、计算设备和计算机可读存储介质 |
CN116756589B (zh) * | 2023-08-16 | 2023-11-17 | 北京壁仞科技开发有限公司 | 匹配算子的方法、计算设备和计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108845936B (zh) | 一种基于海量用户的ab测试方法及系统 | |
KR20190096391A (ko) | 데이터베이스 상태 결정 방법 및 디바이스, 및 일관성 검증 방법 및 디바이스 | |
CN113961145B (zh) | 数据迁移方法及装置 | |
CN116663618B (zh) | 一种算子优化方法、装置、存储介质及电子设备 | |
CN116151363B (zh) | 分布式强化学习系统 | |
CN117828360A (zh) | 一种模型训练、代码生成方法、装置、存储介质及设备 | |
CN116304704A (zh) | 一种模型训练方法、装置、存储介质及电子设备 | |
JP2024536659A (ja) | タスク実行方法、装置、記憶媒体及び電子デバイス | |
CN114841323A (zh) | 神经网络计算图的处理方法及处理装置 | |
CN116185532A (zh) | 一种任务执行系统、方法、存储介质及电子设备 | |
CN115981870A (zh) | 一种数据处理的方法、装置、存储介质及电子设备 | |
CN115617799A (zh) | 一种数据存储的方法、装置、设备及存储介质 | |
CN116402108A (zh) | 一种模型训练及图数据的处理方法、装置、介质及设备 | |
CN115982416A (zh) | 一种数据处理方法、装置、可读存储介质及电子设备 | |
CN116341642B (zh) | 一种数据处理的方法、装置、存储介质及电子设备 | |
CN116402165B (zh) | 一种算子检测的方法、装置、存储介质以及电子设备 | |
CN107239270B (zh) | 代码处理方法和装置 | |
CN115017915B (zh) | 一种模型训练、任务执行的方法及装置 | |
CN107291439B (zh) | 一种目标增量数据构建方法及装置 | |
CN110874322A (zh) | 一种用于应用程序的测试方法及测试服务器 | |
CN114333102A (zh) | 一种无人驾驶设备的参数配置方法及配置装置 | |
CN110737524B (zh) | 一种任务规则管理方法、装置、设备及介质 | |
US20200233747A1 (en) | Automatic restarting and reconfiguration of physics-based models in event of model failure | |
CN111753990A (zh) | 一种量子计算机模拟环境方法、设备及介质 | |
CN117519733B (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 |