深度学习分布式训练适配方法和装置与流程

文档序号:27489305发布日期:2021-11-22 13:56阅读:153来源:国知局
深度学习分布式训练适配方法和装置与流程

1.本技术涉及计算机技术领域,具体涉及一种深度学习分布式训练适配方法,本技术还涉及一种深度学习分布式训练适配装置和一种存储介质。


背景技术:

2.在人工智能领域,深度学习的实际场景落地的成熟算法往往需要更多的算力进行支撑,而单机内部的资源毕竟有限,无法承载大规模的ai(artificial intelligence,人工智能)训练任务。不论是数据并行、模型并行、还是混合并行的训练方式,往往都需要大量的计算资源进行并行训练,也就迫切需要分布式的训练模式。
3.分布式训练需要从硬件集群、到软件设计的一整套设计流程都要精通,否则也是无法实现正确的代码一致性和预期的训练加速性能,而人工智能的大量算法专家大都专注于ai算法本身的模型优化,而对于分布式训练的优化可能并不专业。目前,一些深度学习分布式框架,能够满足ai算法专家的这一需求,达到很好的训练性能优化,屏蔽大量的底层硬件、通信、集群等调优技术,向上支持深度学习训练框架,且基本的上层python接口是相似的。
4.诚然,由于这些分布式框架本身也是一个代码库,对于原始的比如单机单卡、单机多卡的代码并不能直接适配,需要进行定制化的修改,这对于ai算法专家来讲,带来了软件层次上的挑战,可能需要花费很多时间进行修改,而且容易出现错误或精度不等价等问题;另外一方面,即便是对分布式框架很熟悉的开发人员,也需要大量精力去阅读客户的代码,从而再去相应的做代码适配工作,这个过程随着用户的代码量增加而成本增长,总之适配分布式训练的工作是一种极其低效的支持方式。
5.因此,现有技术下的深度学习分布式训练适配方法存在效率低的问题。


技术实现要素:

6.本技术提供一种深度学习分布式训练适配方法、装置,以解决现有技术的深度学习分布式训练适配方法存在效率低的问题。
7.本技术提供一种深度学习分布式训练适配方法,包括:
8.对深度学习算法的原始代码块进行语义分析,得到原始代码块对应的分布式训练的功能类别;
9.根据所述原始代码块对应的分布式训练的功能类别和预设的正则库,对所述原始代码块进行正则匹配,得到分布式框架代码的模板文件;
10.对所述布式框架代码的模板文件进行渲染,得到最终的深度学习分布式训练代码。
11.作为一种实施方式,还包括:
12.根据深度学习算法的原始代码块,得到所述原始代码块对应的分布式框架;
13.所述对深度学习算法的原始代码块进行语义分析,得到原始代码块对应的分布式
训练的功能类别,包括:
14.将所述原始代码块对应的分布式框架作为语义识别模型的一个特征,对深度学习算法的原始代码块进行语义分析,得到原始代码块对应的分布式训练的功能类别。
15.作为一种实施方式,所述对深度学习算法的原始代码块进行语义分析,得到原始代码块对应的分布式训练的功能类别,包括:
16.对深度学习算法的原始代码块进行向量化处理,得到深度学习算法的原始代码块的向量化表示;
17.将所述向量化表示输入用于功能分类的分类模型,得到原始代码块对应的分布式训练的功能类别。
18.作为一种实施方式,所述对深度学习算法的原始代码块进行向量化处理,得到深度学习算法的原始代码块的向量化表示,包括:
19.根据从深度学习框架和分布式训练框架的代码库中提取的关键字,对深度学习算法的原始代码块进行向量化处理,得到深度学习算法的原始代码块的向量化表示。
20.作为一种实施方式,还包括:
21.获得深度学习算法的原始代码;
22.对所述深度学习算法的原始代码进行预处理,得到深度学习算法的原始代码块。
23.作为一种实施方式,所述预处理包括以下至少一种操作:
24.分词处理;
25.去停用词处理;
26.去除冗余行。
27.作为一种实施方式,根据所述原始代码块对应的分布式训练的功能类别和预设的正则库,对所述原始代码块进行正则匹配,得到分布式框架代码的模板文件,包括:
28.将所述原始代码块对应的分布式训练的功能类别与预设的正则库中的正则匹配规则进行匹配;
29.若所述原始代码块对应的分布式训练的功能类别与正则匹配规则中的键相同,则将正则匹配规则中的值作为分布式框架代码的正则匹配模板;
30.根据所述正则匹配模板,得到分布式框架代码的模板文件。
31.作为一种实施方式,还包括:
32.根据已获得的原始代码块对应的分布式训练的功能类别及分布式框架代码的正则匹配模板的对应关系,更新正则库。
33.作为一种实施方式,所述根据已获得的原始代码块对应的分布式训练的功能类别及分布式框架代码的正则匹配模板的对应关系,更新正则库,包括:
34.在系统运行过程中,根据已获得的原始代码块对应的分布式训练的功能类别及分布式框架代码的正则匹配模板的对应关系,修改正则库的参数,得到更新的正则库。
35.作为一种实施方式,所述对所述布式框架代码的模板文件进行渲染,得到最终的深度学习分布式训练代码,包括:
36.对所述布式框架代码的模板文件进行渲染,得到可执行的深度学习分布式训练代码;
37.对所述可执行的深度学习分布式训练代码进行测试,若测试结果为成功,则将可
执行的深度学习分布式训练代码作为最终的深度学习分布式训练代码。
38.作为一种实施方式,还包括:
39.若测试结果为失败,将测试结果包含的错误信息发送至客户端;
40.获得客户端提供的对错误信息进行矫正的结果信息;
41.根据所述结果信息,得到新的可执行的深度学习分布式训练代码;重复上述步骤,直到测试结果为成功,则将可执行的深度学习分布式训练代码作为最终的深度学习分布式训练代码。
42.作为一种实施方式,所述对所述布式框架代码的模板文件进行渲染,得到最终的深度学习分布式训练代码,包括:
43.根据映射库包含的分布式框架之间的映射关系和获得的用户输入的分布式框架类型,对所述布式框架代码的模板文件进行渲染,得到最终的深度学习分布式训练代码。
44.本技术还提供一种深度学习分布式训练适配装置,包括:
45.功能类别得到单元,用于对深度学习算法的原始代码块进行语义分析,得到原始代码块对应的分布式训练的功能类别;
46.模板文件得到单元,用于根据所述原始代码块对应的分布式训练的功能类别和预设的正则库,对所述原始代码块进行正则匹配,得到分布式框架代码的模板文件;
47.分布式训练代码得到单元,用于对所述布式框架代码的模板文件进行渲染,得到最终的深度学习分布式训练代码。
48.作为一种实施方式,所述装置还包括:框架识别单元,用于
49.根据深度学习算法的原始代码块,得到所述原始代码块对应的分布式框架;
50.所述功能类别得到单元具体用于:
51.将所述原始代码块对应的分布式框架作为语义识别模型的一个特征,对深度学习算法的原始代码块进行语义分析,得到原始代码块对应的分布式训练的功能类别。
52.作为一种实施方式,所述功能类别得到单元具体用于:
53.对深度学习算法的原始代码块进行向量化处理,得到深度学习算法的原始代码块的向量化表示;
54.将所述向量化表示输入用于功能分类的分类模型,得到原始代码块对应的分布式训练的功能类别。
55.作为一种实施方式,所述功能类别得到单元具体用于:
56.根据从深度学习框架和分布式训练框架的代码库中提取的关键字,对深度学习算法的原始代码块进行向量化处理,得到深度学习算法的原始代码块的向量化表示。
57.作为一种实施方式,所述装置还包括:
58.原始代码获得单元,用于获得深度学习算法的原始代码;
59.原始代码预处理单元,用于对所述深度学习算法的原始代码进行预处理,得到深度学习算法的原始代码块。
60.作为一种实施方式,所述预处理包括以下至少一种操作:
61.分词处理;
62.去停用词处理;
63.去除冗余行。
64.作为一种实施方式,所述模板文件得到单元具体用于:
65.将所述原始代码块对应的分布式训练的功能类别与预设的正则库中的正则匹配规则进行匹配;
66.若所述原始代码块对应的分布式训练的功能类别与正则匹配规则中的键相同,则将正则匹配规则中的值作为分布式框架代码的正则匹配模板;
67.根据所述正则匹配模板,得到分布式框架代码的模板文件。
68.作为一种实施方式,所述装置还包括:正则库更新单元,
69.用于根据已获得的原始代码块对应的分布式训练的功能类别及分布式框架代码的正则匹配模板的对应关系,更新正则库。
70.作为一种实施方式,所述正则库更新单元具体用于:在系统运行过程中,根据已获得的原始代码块对应的分布式训练的功能类别及分布式框架代码的正则匹配模板的对应关系,修改正则库的参数,得到更新的正则库。
71.作为一种实施方式,所述分布式训练代码得到单元具体用于:
72.对所述布式框架代码的模板文件进行渲染,得到可执行的深度学习分布式训练代码;
73.对所述可执行的深度学习分布式训练代码进行测试,若测试结果为成功,则将可执行的深度学习分布式训练代码作为最终的深度学习分布式训练代码。
74.作为一种实施方式,所述装置还包括:代码更新单元,用于
75.若测试结果为失败,将测试结果包含的错误信息发送至客户端;
76.获得客户端提供的对错误信息进行矫正的结果信息;
77.根据所述结果信息,得到新的可执行的深度学习分布式训练代码;重复上述步骤,直到测试结果为成功,则将可执行的深度学习分布式训练代码作为最终的深度学习分布式训练代码。
78.作为一种实施方式,所述分布式训练代码得到单元具体用于:
79.根据映射库包含的分布式框架之间的映射关系和获得的用户输入的分布式框架类型,对所述布式框架代码的模板文件进行渲染,得到最终的深度学习分布式训练代码。
80.本技术还提供一种存储介质,存储有深度学习分布式训练适配方法的程序,该程序被处理器运行,执行下述步骤:
81.对深度学习算法的原始代码块进行语义分析,得到原始代码块对应的分布式训练的功能类别;
82.根据所述原始代码块对应的分布式训练的功能类别和预设的正则库,对所述原始代码块进行正则匹配,得到分布式框架代码的模板文件;
83.对所述布式框架代码的模板文件进行渲染,得到最终的深度学习分布式训练代码。
84.与现有技术相比,本技术具有以下优点:
85.本技术提供一种深度学习分布式训练适配方法,首先对深度学习算法的原始代码块进行语义分析,得到原始代码块对应的分布式训练的功能类别;然后,根据所述原始代码块对应的分布式训练的功能类别和预设的正则库,对原始代码块进行正则匹配,得到分布式框架代码的模板文件;最后,对布式框架代码的模板文件进行渲染,得到最终的深度学习
分布式训练代码。本技术的深度学习分布式训练适配方法,能够将原始单机单卡的模型实现,自动实现为分布式训练的代码模式,能够规避手动适配带来的低效、遗漏和重复劳动力等缺陷,提高深度学习分布式训练适配效率。
附图说明
86.图1a是本技术提供的一种深度学习分布式训练适配方法的应用场景图。
87.图1是本技术第一实施例提供的一种深度学习分布式训练适配方法的流程图。
88.图2是本技术第一实施例提供的一种深度学习分布式训练适配方法的系统实现图。
89.图3是本技术第二实施例提供的一种深度学习分布式训练适配装置的示意图。
具体实施方式
90.在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施的限制。
91.为了更清楚地展示本技术,先对本技术第一实施例提供的深度学习分布式训练适配方法的应用场景进行简单介绍。
92.本技术第一实施例提供的深度学习分布式训练适配方法可以应用于客户端与服务端交互的场景,如图1a,用户在需要将深度学习算法的原始代码适配为深度学习分布式训练代码时,通常是由客户端首先与服务端建立连接,连接之后客户端发送将深度学习算法的原始代码到服务端,服务端获得深度学习算法的原始代码后,首先在预处理单元101,对深度学习算法的原始代码进行预处理,得到深度学习算法的原始代码块;然后在功能类别得到单元102,对深度学习算法的原始代码块进行语义分析,得到原始代码块对应的分布式训练的功能类别;之后,在模板文件得到单元103,根据所述原始代码块对应的分布式训练的功能类别和预设的正则库,对所述原始代码块进行正则匹配,得到分布式框架代码的模板文件;最后,在分布式训练代码得到单元104,对所述布式框架代码的模板文件进行渲染,得到最终的深度学习分布式训练代码,将最终的深度学习分布式训练代码提供给客户端,客户端接收最终的深度学习分布式训练代码。
93.本技术第一实施例提供一种深度学习分布式训练适配方法,其执行主体为服务端。以下结合图1、图2进行介绍。
94.如图1所示,在步骤s101中,对深度学习算法的原始代码块进行语义分析,得到原始代码块对应的分布式训练的功能类别。
95.所述原始代码块,指从原始代码中按照实际语义划分出的一段代码。
96.原始代码,可以指编写的单机单卡、单机多卡的深度学习算法代码,原始代码需要进行代码适配,生成分布式训练代码。
97.所述分布式训练的功能类别,包括导包、优化器、数据集、validation(校验)等功能类别。
98.为了使识别出的功能类别会更加准确,可以先根据深度学习算法的原始代码块,得到所述原始代码块对应的分布式框架,再将框架识别的结果作为这个识别分类模型的一
个特征,对深度学习算法的原始代码块进行语义分析,得到原始代码块对应的分布式训练的功能类别。框架识别是识别出tensorflow、pytorch/mxnet等具体的深度学习分布式框架。
99.作为一种实施方式,本技术第一实施例还可以包括:
100.根据深度学习算法的原始代码块,得到所述原始代码块对应的分布式框架;
101.所述对深度学习算法的原始代码块进行语义分析,得到原始代码块对应的分布式训练的功能类别,包括:
102.将所述原始代码块对应的分布式框架作为语义识别模型的一个特征,对深度学习算法的原始代码块进行语义分析,得到原始代码块对应的分布式训练的功能类别。
103.作为一种实施方式,本技术第一实施例还可以包括:
104.获得深度学习算法的原始代码;
105.对所述深度学习算法的原始代码进行预处理,得到深度学习算法的原始代码块。
106.其中,所述预处理包括以下至少一种操作:
107.分词处理;
108.去停用词处理;
109.去除冗余行。
110.例如,原始main.py包含的100行代码去除冗余10行,可以分为3个代码块,每个代码块30行。
111.当用户需要将深度学习算法的原始代码适配为深度学习分布式训练代码时,通常是由客户端首先与服务端(可以为云上的服务)建立连接,连接之后客户端发送深度学习算法的原始代码到服务端,服务端获得深度学习算法的原始代码后,对深度学习算法的原始代码进行预处理,得到深度学习算法的原始代码块;然后对深度学习算法的原始代码块进行语义分析,得到原始代码块对应的分布式训练的功能类别。
112.需要说明的是,预处理步骤:即对深度学习算法的原始代码进行预处理,得到深度学习算法的原始代码块,除了在服务端进行,还可以在客户端进行,客户端将预处理后的原始代码块发送给服务端。
113.所述对深度学习算法的原始代码块进行语义分析,得到原始代码块对应的分布式训练的功能类别,包括:
114.对深度学习算法的原始代码块进行向量化处理,得到深度学习算法的原始代码块的向量化表示;
115.将所述向量化表示输入用于功能分类的分类模型,得到原始代码块对应的分布式训练的功能类别。
116.所述对深度学习算法的原始代码块进行向量化处理,得到深度学习算法的原始代码块的向量化表示,包括:
117.根据从深度学习框架和分布式训练框架的代码库中提取的关键字,对深度学习算法的原始代码块进行向量化处理,得到深度学习算法的原始代码块的向量化表示。
118.深度学习框架,包括:tensorflow、pytorch、mxnet等。
119.分布式训练框架,指为深度学习框架提供分布式训练的加速框架。例如,horovod,horovod是一个为tensorflow、pytorch、mxnet等深度学习框架提供分布式训练的框架。
120.提取出的关键字,包括rank、size、local_rank、distributeoptimizer等。
121.具体的,根据从深度学习框架和分布式训练框架的代码库中提取的关键字,对深度学习算法的原始代码块进行向量化处理,得到深度学习算法的原始代码块的向量化表示,可以采用token(是按照词为单位的向量化表述)列表+code2vec(代码语义分析的分类模型)端到端识别的向量化过程,token列表主要是对深度学习框架的python侧接口进行统计分析得到的字典库,code2vec按照已有的代码数据集进行迁移学习,在自定义的分布式训练语义数据集上进行finetune(用自定义的数据微调已经训练好的模型),最终得到语义理解模型,能够对原始代码块进行向量表示,进而预测原始代码块的功能类别。
122.字典库,包括从深度学习框架和分布式训练框架的代码库中提取的关键字。其中,字典库:可以按照tensorflow、pytorch、mxnet等深度学习框架的python接口进行提取关键字,按照类的属性以及类的方法对关键字进行加权,作为每个token的词频,如(tensorflow.app,100),(tensorflow,1000),如果存在import tensorflow as x1等操作,则会动态增加新的token(x1,1000)。
123.如图1所示,在步骤s102中,根据所述原始代码块对应的分布式训练的功能类别和预设的正则库,对所述原始代码块进行正则匹配,得到分布式框架代码的模板文件。
124.所述预设的正则库,指针对深度学习框架到分布式训练框架按照不同功能提前预置的正则匹配库,其包含多个正则匹配规则。正则库按照导包、optimizer等功能类别进行区别,并按照key

value结构保存,例如:
125.".*import.*":"{0};import{hvd_tf}as hvd",
126.".*tf.train.adamoptimizer\(.*?\).*":{1}=hvd.{tfdistributedoptimizer}({1})"根据正则匹配规则,最终可以生成模板{{template}}文件,作为分布式训练的中间表达。
127.根据所述原始代码块对应的分布式训练的功能类别和预设的正则库,对所述原始代码块进行正则匹配,得到分布式框架代码的模板文件,包括:
128.将所述原始代码块对应的分布式训练的功能类别与预设的正则库中的正则匹配规则进行匹配;
129.若所述原始代码块对应的分布式训练的功能类别与正则匹配规则中的键相同,则将正则匹配规则中的值作为分布式框架代码的正则匹配模板;
130.根据所述正则匹配模板,得到分布式框架代码的模板文件。
131.作为一种实施方式,本技术第一实施例还可以包括:
132.根据已获得的原始代码块对应的分布式训练的功能类别及分布式框架代码的正则匹配模板的对应关系,更新正则库。
133.所述根据已获得的原始代码块对应的分布式训练的功能类别及分布式框架代码的正则匹配模板的对应关系,更新正则库,包括:
134.在系统运行过程中,根据已获得的原始代码块对应的分布式训练的功能类别及分布式框架代码的正则匹配模板的对应关系,修改正则库的参数,得到更新的正则库。
135.如图1所示,在步骤s103中,对所述布式框架代码的模板文件进行渲染,得到最终的深度学习分布式训练代码。
136.所述对所述布式框架代码的模板文件进行渲染,得到最终的深度学习分布式训练
代码,包括:
137.根据映射包含的分布式框架之间的映射关系和获得的用户输入的分布式框架类型,对所述布式框架代码的模板文件进行渲染,得到最终的深度学习分布式训练代码。
138.从分布式框架代码的模板文件到最终的可执行深度学习分布式训练代码,只需要经过映射库的规则引擎即可完成,映射库主要是分布式框架之间的映射关系,按照不同的功能模块进行相互关联,根据用户输入的分布式框架类型进行模板文件的渲染。
139.映射库按照功能划分,每个功能有基础的模板类型。
140.例如:导包功能部分:
141.hvd_tf+aiacc

>perseus.tensorflow.horovod(含义为:模板是tensorflow框架,期望输出是aiacc训练代码

>得到aiacc+tf的分布式训练),
142.hvd_tf+horovod

>horovod.tensorflow(含义为:模板是tensorflow框架,期望输出是horovod训练代码

>得到horovod+tf的分布式训练),
143.hvd_tf+byteps

>byteps.tensorflow(含义为:模板是tensorflow框架,期望输出是byteps训练代码

>得到byteps+tf的分布式训练)
144.广播参数部分:
145.hvd_broadcast_tf+aiacc+tf=1.x

>hvd.broadcastglobalvariableshook(0)
146.(含义是:模板是tf的广播算子,期望是aiacc训练代码,以及tf版本是1.x

>得到aiacc+tf1.x的分布式训练广播实现代码),根据中间表达,映射为对应的实现版本。
147.在具体实施时,对布式框架代码的模板文件进行渲染,可以指模板文件通过输入的分布式框架类型配合jinja模板库进行渲染操作,本质上对布式框架代码的模板文件进行渲染操作是一种字符替换。
148.所述对所述布式框架代码的模板文件进行渲染,得到最终的深度学习分布式训练代码,包括:
149.对所述布式框架代码的模板文件进行渲染,得到可执行的深度学习分布式训练代码;
150.对所述可执行的深度学习分布式训练代码进行测试,若测试结果为成功,则将可执行的深度学习分布式训练代码作为最终的深度学习分布式训练代码。
151.作为一种实施方式,本技术第一实施例还可以包括:
152.若测试结果为失败,将测试结果包含的错误信息发送至客户端;
153.获得客户端提供的对错误信息进行矫正的结果信息;
154.根据所述结果信息,得到新的可执行的深度学习分布式训练代码;重复上述步骤,直到测试结果为成功,则将可执行的深度学习分布式训练代码作为最终的深度学习分布式训练代码。
155.图2是应用深度学习分布式训练适配方法的一个系统实现图。深度学习分布式训练适配方法是部署于云上系统的服务,服务设计框图如图2所示:
156.步骤1、数据预处理:云服务器

框架调度器获得用户输入的原始代码,对原始代码进行数据预处理,得到原始代码块;
157.步骤2:原始代码请求:云服务器

框架调度器将原始代码块发送到正则匹配自动生成模型服务;正则匹配自动生成模型服务获取到原始请求,根据原始代码块对应的分布
式训练的功能类别和预设的正则库,对原始代码块进行正则匹配,得到分布式框架代码的模板文件;
158.步骤3:返回框架代码:正则匹配自动生成模型服务将分布式框架代码的模板文件返回给云服务器

框架调度器;
159.步骤4:框架填充:对布式框架代码的模板文件进行渲染,得到可执行的深度学习分布式训练代码;
160.步骤5:代码测试:云服务器

框架调度器根据用户的框架进行资源的动态创建,上传可执行的深度学习分布式训练代码以及启动脚本进行分布式测试,如果失败,则执行步骤6,否则跳入步骤7;
161.步骤6:可视化交互:根据上一步骤反馈的错误信息进行反馈提示,人工进行矫正,比如当前的optimizer优化器部分识别错误,进行相应修改;
162.步骤7:自动学习:若成功运行,则将当前的原始深度学习分布式训练代码和修改后的深度学习分布式训练代码添加到代码库,提取特征,用于正则匹配自动生成模型的增强;
163.步骤8:适配代码下载:将验证成功的最终的深度学习分布式训练代码提供给客户下载。
164.至此,完成了对本技术第一实施例的介绍。本技术的深度学习分布式训练适配方法,能够将原始单机单卡的模型实现,自动实现为分布式训练的代码模式,能够规避手动适配带来的低效、遗漏和重复劳动力等缺陷,提高深度学习分布式训练适配效率。
165.与本技术第一实施例提供的深度学习分布式训练适配方法相对应的,本技术第二实施例提供一种深度学习分布式训练适配装置。
166.如图3所示,所述深度学习分布式训练适配装置,包括:
167.功能类别得到单元301,用于对深度学习算法的原始代码块进行语义分析,得到原始代码块对应的分布式训练的功能类别;
168.模板文件得到单元302,用于根据所述原始代码块对应的分布式训练的功能类别和预设的正则库,对所述原始代码块进行正则匹配,得到分布式框架代码的模板文件;
169.分布式训练代码得到单元303,用于对所述布式框架代码的模板文件进行渲染,得到最终的深度学习分布式训练代码。
170.作为一种实施方式,所述装置还包括:框架识别单元,用于
171.根据深度学习算法的原始代码块,得到所述原始代码块对应的分布式框架;
172.所述功能类别得到单元具体用于:
173.将所述原始代码块对应的分布式框架作为语义识别模型的一个特征,对深度学习算法的原始代码块进行语义分析,得到原始代码块对应的分布式训练的功能类别。
174.作为一种实施方式,所述功能类别得到单元具体用于:
175.对深度学习算法的原始代码块进行向量化处理,得到深度学习算法的原始代码块的向量化表示;
176.将所述向量化表示输入用于功能分类的分类模型,得到原始代码块对应的分布式训练的功能类别。
177.作为一种实施方式,所述功能类别得到单元具体用于:
178.根据从深度学习框架和分布式训练框架的代码库中提取的关键字,对深度学习算法的原始代码块进行向量化处理,得到深度学习算法的原始代码块的向量化表示。
179.作为一种实施方式,所述装置还包括:
180.原始代码获得单元,用于获得深度学习算法的原始代码;
181.原始代码预处理单元,用于对所述深度学习算法的原始代码进行预处理,得到深度学习算法的原始代码块。
182.作为一种实施方式,所述预处理包括以下至少一种操作:
183.分词处理;
184.去停用词处理;
185.去除冗余行。
186.作为一种实施方式,所述模板文件得到单元具体用于:
187.将所述原始代码块对应的分布式训练的功能类别与预设的正则库中的正则匹配规则进行匹配;
188.若所述原始代码块对应的分布式训练的功能类别与正则匹配规则中的键相同,则将正则匹配规则中的值作为分布式框架代码的正则匹配模板;
189.根据所述正则匹配模板,得到分布式框架代码的模板文件。
190.作为一种实施方式,所述装置还包括:正则库更新单元,
191.用于根据已获得的原始代码块对应的分布式训练的功能类别及分布式框架代码的正则匹配模板的对应关系,更新正则库。
192.作为一种实施方式,所述正则库更新单元具体用于:在系统运行过程中,根据已获得的原始代码块对应的分布式训练的功能类别及分布式框架代码的正则匹配模板的对应关系,修改正则库的参数,得到更新的正则库。
193.作为一种实施方式,所述分布式训练代码得到单元具体用于:
194.对所述布式框架代码的模板文件进行渲染,得到可执行的深度学习分布式训练代码;
195.对所述可执行的深度学习分布式训练代码进行测试,若测试结果为成功,则将可执行的深度学习分布式训练代码作为最终的深度学习分布式训练代码。
196.作为一种实施方式,所述装置还包括:代码更新单元,用于
197.若测试结果为失败,将测试结果包含的错误信息发送至客户端;
198.获得客户端提供的对错误信息进行矫正的结果信息;
199.根据所述结果信息,得到新的可执行的深度学习分布式训练代码;重复上述步骤,直到测试结果为成功,则将可执行的深度学习分布式训练代码作为最终的深度学习分布式训练代码。
200.作为一种实施方式,所述分布式训练代码得到单元具体用于:
201.根据映射库包含的分布式框架之间的映射关系和获得的用户输入的分布式框架类型,对所述布式框架代码的模板文件进行渲染,得到最终的深度学习分布式训练代码。
202.需要说明的是,对于本技术第二实施例提供的深度学习分布式训练适配装置的详细描述可以参考对本技术第一实施例的相关描述,这里不再赘述。
203.与本技术第一实施例提供的深度学习分布式训练适配方法相对应的,本技术第三
实施例提供一种存储介质,存储有深度学习分布式训练适配方法的程序,该程序被处理器运行,执行下述步骤:
204.对深度学习算法的原始代码块进行语义分析,得到原始代码块对应的分布式训练的功能类别;
205.根据所述原始代码块对应的分布式训练的功能类别和预设的正则库,对所述原始代码块进行正则匹配,得到分布式框架代码的模板文件;
206.对所述布式框架代码的模板文件进行渲染,得到最终的深度学习分布式训练代码。
207.需要说明的是,对于本技术第三实施例提供的存储介质的详细描述可以参考对本技术第一实施例的相关描述,这里不再赘述。
208.与本技术第一实施例提供的深度学习分布式训练适配方法相对应的,本技术第四实施例提供一种电子设备。
209.所述电子设备,包括:
210.处理器;以及
211.存储器,用于存储深度学习分布式训练适配方法的程序,该设备通电并通过所述处理器运行该深度学习分布式训练适配方法的程序后,执行下述步骤:
212.对深度学习算法的原始代码块进行语义分析,得到原始代码块对应的分布式训练的功能类别;
213.根据所述原始代码块对应的分布式训练的功能类别和预设的正则库,对所述原始代码块进行正则匹配,得到分布式框架代码的模板文件;
214.对所述布式框架代码的模板文件进行渲染,得到最终的深度学习分布式训练代码。
215.作为一种实施方式,所述电子设备还执行下述步骤:
216.根据深度学习算法的原始代码块,得到所述原始代码块对应的分布式框架;
217.所述对深度学习算法的原始代码块进行语义分析,得到原始代码块对应的分布式训练的功能类别,包括:
218.将所述原始代码块对应的分布式框架作为语义识别模型的一个特征,对深度学习算法的原始代码块进行语义分析,得到原始代码块对应的分布式训练的功能类别。
219.作为一种实施方式,所述对深度学习算法的原始代码块进行语义分析,得到原始代码块对应的分布式训练的功能类别,包括:
220.对深度学习算法的原始代码块进行向量化处理,得到深度学习算法的原始代码块的向量化表示;
221.将所述向量化表示输入用于功能分类的分类模型,得到原始代码块对应的分布式训练的功能类别。
222.作为一种实施方式,所述对深度学习算法的原始代码块进行向量化处理,得到深度学习算法的原始代码块的向量化表示,包括:
223.根据从深度学习框架和分布式训练框架的代码库中提取的关键字,对深度学习算法的原始代码块进行向量化处理,得到深度学习算法的原始代码块的向量化表示。
224.作为一种实施方式,所述电子设备还执行下述步骤:
225.获得深度学习算法的原始代码;
226.对所述深度学习算法的原始代码进行预处理,得到深度学习算法的原始代码块。
227.作为一种实施方式,所述预处理包括以下至少一种操作:
228.分词处理;
229.去停用词处理;
230.去除冗余行。
231.作为一种实施方式,根据所述原始代码块对应的分布式训练的功能类别和预设的正则库,对所述原始代码块进行正则匹配,得到分布式框架代码的模板文件,包括:
232.将所述原始代码块对应的分布式训练的功能类别与预设的正则库中的正则匹配规则进行匹配;
233.若所述原始代码块对应的分布式训练的功能类别与正则匹配规则中的键相同,则将正则匹配规则中的值作为分布式框架代码的正则匹配模板;
234.根据所述正则匹配模板,得到分布式框架代码的模板文件。
235.作为一种实施方式,所述电子设备还执行下述步骤:
236.根据已获得的原始代码块对应的分布式训练的功能类别及分布式框架代码的正则匹配模板的对应关系,更新正则库。
237.作为一种实施方式,所述根据已获得的原始代码块对应的分布式训练的功能类别及分布式框架代码的正则匹配模板的对应关系,更新正则库,包括:
238.在系统运行过程中,根据已获得的原始代码块对应的分布式训练的功能类别及分布式框架代码的正则匹配模板的对应关系,修改正则库的参数,得到更新的正则库。
239.作为一种实施方式,所述对所述布式框架代码的模板文件进行渲染,得到最终的深度学习分布式训练代码,包括:
240.对所述布式框架代码的模板文件进行渲染,得到可执行的深度学习分布式训练代码;
241.对所述可执行的深度学习分布式训练代码进行测试,若测试结果为成功,则将可执行的深度学习分布式训练代码作为最终的深度学习分布式训练代码。
242.作为一种实施方式,所述电子设备还执行下述步骤:
243.若测试结果为失败,将测试结果包含的错误信息发送至客户端;
244.获得客户端提供的对错误信息进行矫正的结果信息;
245.根据所述结果信息,得到新的可执行的深度学习分布式训练代码;重复上述步骤,直到测试结果为成功,则将可执行的深度学习分布式训练代码作为最终的深度学习分布式训练代码。
246.作为一种实施方式,所述对所述布式框架代码的模板文件进行渲染,得到最终的深度学习分布式训练代码,包括:
247.根据映射库包含的分布式框架之间的映射关系和获得的用户输入的分布式框架类型,对所述布式框架代码的模板文件进行渲染,得到最终的深度学习分布式训练代码。
248.需要说明的是,对于本技术第四实施例提供的电子设备的详细描述可以参考对本技术第一实施例的相关描述,这里不再赘述。
249.本技术虽然以较佳实施例公开如上,但其并不是用来限定本技术,任何本领域技
术人员在不脱离本技术的精神和范围内,都可以做出可能的变动和修改,因此本技术的保护范围应当以本技术权利要求所界定的范围为准。
250.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、存储器映射输入/输出接口、网络接口和内存。
251.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
252.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd

rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
253.本领域技术人员应明白,本技术的实施例可提供为方法、系统或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1