CN111782181A - 代码生成方法、装置、电子设备以及存储介质 - Google Patents

代码生成方法、装置、电子设备以及存储介质 Download PDF

Info

Publication number
CN111782181A
CN111782181A CN202010596369.9A CN202010596369A CN111782181A CN 111782181 A CN111782181 A CN 111782181A CN 202010596369 A CN202010596369 A CN 202010596369A CN 111782181 A CN111782181 A CN 111782181A
Authority
CN
China
Prior art keywords
code
model
configuration information
information
generating
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
CN202010596369.9A
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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202010596369.9A priority Critical patent/CN111782181A/zh
Publication of CN111782181A publication Critical patent/CN111782181A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • 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

Abstract

本申请公开了代码生成方法、装置、电子设备以及存储介质,涉及深度学习技术领域。具体实现方案为:通过获取所述电子设备的环境信息和目标平台的配置信息;基于所述环境信息,生成第一代码;基于所述配置信息,生成第二代码;根据所述第一代码和所述第二代码,获得所述目标平台对应的目标代码。开发人员通过设置配置信息即可获得目标平台对应的目标代码,节省了人工成本,提高了软件开发的效率。

Description

代码生成方法、装置、电子设备以及存储介质
技术领域
本申请涉及计算机技术领域中的深度学习技术,尤其涉及一种代码生成方法、装置、电子设备以及存储介质。
背景技术
在对学习模型调试过程中,可能会基于中央处理器(central processing unit,简称CPU)多核进行训练,实现CPU平台的接口,即编写实现CPU平台接口的代码;随着样本量增加,如果要在图形处理器(Graphics Processing Unit,简称GPU)平台执行,需要针对GPU开发实现接口,即编写实现GPU平台接口的代码;如果要在分布式环境执行,需要针对分布式开发实现接口,即编写分布式开发实现接口的代码。
发明内容
本公开提供了一种代码生成方法、装置、电子设备以及存储介质。
根据本公开的第一方面,提供了一种代码生成方法,应用于电子设备,包括:
获取电子设备的环境信息和目标平台的配置信息;
基于环境信息,生成第一代码;
基于配置信息,生成第二代码;
根据第一代码和第二代码,获得目标平台对应的目标代码。
根据本公开的第二方面,提供了一种代码生成装置,包括:
第一获取模块,用于获取电子设备的环境信息和目标平台的配置信息;
第一生成模块,用于基于环境信息,生成第一代码;
第二生成模块,用于基于配置信息,生成第二代码;
第二获取模块,用于根据第一代码和第二代码,获得目标平台对应的目标代码。
根据本公开的第三方面,提供了一种电子设备,包括:
至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行第一方面任一项所述的方法。
根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,计算机指令用于使计算机执行第一方面任一项所述的方法。
根据本申请的技术解决了现有技术中学习模型的开发效率低的问题,通过设置配置信息获得目标平台对应的目标代码,节省了人工成本,提高了软件开发的效率。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是本申请实施例提供的代码生成方法的流程图;
图2是本申请实施例提供的辅助开发框架的结构图;
图3是本申请实施例提供的代码生成装置的结构图;
图4是用来实现本申请实施例的代码生成方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
参见图1,图1是本申请实施例提供的代码生成方法的流程图,如图1所示,本实施例提供一种代码生成方法,应用于电子设备,包括以下步骤:
步骤101、获取电子设备的环境信息和目标平台的配置信息。
环境信息可为操作系统,硬件架构x86,python版本,cuda环境等系统层的环境。目标平台即目标代码运行的平台,配置信息即用于配置目标平台的信息,配置信息可包括CPU的个数、或者GPU的个数或者分布式集群的节点数、数据集存放地址、任务类型等等信息。配置信息可由用户(例如,软件开发人员)配置,也可以采用默认配置。配置信息可以配置文件的形式设置,也可以采用命令行参数的方式设置,或者,同时采用配置文件和命令行参数的方式设置,在此不做限定,当同时采用配置文件和命令行参数的方式设置时,若两者对同一配置参数进行设置,则以命令行参数设置方式设置的值为准,即命令行参数设置方式的优先级大于配置文件设置方式的优先级。
步骤102、基于环境信息,生成第一代码。第一代码基于环境信息生成,第一代码为目标平台的初始化代码。
步骤103、基于配置信息,生成第二代码。第二代码基于配置信息生成,第二代码为用户配置的任务对应的代码,任务可为训练、预测或者评估等任务中的一项或多项。
步骤104、根据第一代码和第二代码,获得目标平台对应的目标代码。目标代码可为可执行源代码。将基于环境信息生成的第一代码和基于配置信息生成的第二代码翻译成可执行源代码后,电子设备可通过调用统一的入口程序,启动源代码执行,从而启动目标代码对应的任务的执行,在任务执行完毕后,将任务执行的结果存放在指定的路径下或者默认的路径下。
本实施例中的代码生成方法,可基于电子设备的环境信息和目标平台的配置信息,生成目标平台的目标代码,开发人员不用再基于不同目标平台的接口去适应性的编写新的代码,节省了人工成本,提高了软件开发的效率。
本实施例中的代码生成方法具体可由辅助开发框架执行,辅助开发框架运行在电子设备上。本实施的代码生成方法可应用在基于深度学习模型开发的场景下,例如,对深度学习模型进行训练、评估,并基于训练好的深度学习模型进行预测等。
本实施例中,获取电子设备的环境信息和目标平台的配置信息;基于环境信息,生成第一代码;基于配置信息,生成第二代码;根据第一代码和第二代码,获得目标平台对应的目标代码。开发人员通过设置配置信息即可获得目标平台对应的目标代码,节省了人工成本,提高了软件开发的效率。
在本申请一个实施例中,配置信息包括数据集存放地址、任务类型、平台信息或模型标识中的一项或多项;
其中,任务类型包括训练、预测或评估中的至少一项;
平台信息包括中央处理器的个数、图形处理器的个数、或者分布式集群的节点个数中的至少一项;
模型标识为用于训练、预测或评估中的至少一项处理的模型的标识。
配置信息包括数据集存放地址、任务类型、平台信息和模型标识中的一项或多项。数据集可为用于进行模型训练的训练样本、或者用于参与预测的预测样本等,数据集存放地址可为电子设备本地存储位置,也可为除电子设备之外的其他存储位置,例如,网络上的存储位置。
模型标识用于对模型进行标识,不同的模型具有不同的标识。模型包括自定义模型和通用模型,其中,通用模型可理解为模板模型,是辅助开发框架提供给开发人员使用的,无需开发人员设置。
任务类型用于表示模型标识所标识的模型要完成的任务。任务类型可为训练、预测或者评估中的一项或多项。训练是指对模型标识所标识的模型进行训练,预测是指采用模型标识所标识的模型进行预测,评估是指在对模型进行训练的过程中,对各组参数的性能进行评估。
若配置信息未包括数据集存放地址、任务类型、平台信息和模型标识中的一项或多项,则配置信息中未包括的项可采用默认设置。
进一步的,电子设备在根据配置信息生成第二代码时,可对深度学习框架的API接口进行调用,比如paddlepaddle框架,辅助开发框架可对深度学习框架的API接口进行调用,这样,生成的第二代码中可包括调用深度学习框架API接口的代码。深度学习框架提供了丰富灵活的API接口,可以实现样本处理、模型组网、不同平台的部署,以及任务启动等。
本实施例中,配置信息用于配置目标平台,开发人员通过设置配置信息,即可通过电子设备获得目标平台对应的目标代码,节省了人工成本,提高了软件开发的效率。
在本申请一个实施例中,在获取电子设备的环境信息和目标平台的配置信息之前,还包括:
根据第一输入信息,设置自定义模型;
其中,第一输入信息包括自定义模型的层数,以及每层的神经元个数;
基于配置信息,生成第二代码,包括:
若配置信息包括自定义模型的模型标识,则生成调用自定义模型的第二代码。
本实施例中,开发人员可对自定义模型进行设置,即通过第一输入信息来设置自定义模型。第一输入信息包括自定义模型的层数,以及每层的神经元个数,另外,第一输入信息还可以包括自定义模型的模型标识。具体的,可在电子设备上显示第一设置界面,接收针对第一设置界面的第一输入信息,然后根据第一输入信息,设置自定义模型。自定义模型定义好之后,后续可根据自定义模型的模型标识来使用该自定义模型。
若配置信息包括自定义模型的模型标识,表示目标平台需要使用到自定义模型,则生成的第二代码中会包括调用自定义模型的代码,这样,目标代码在执行过程中会对自定义模型进行调用,例如,采用自定义模型进行训练,对自定义模型的训练过程进行评估,或者采用训练好的自定义模型进行预测等等。
本实施例中,电子设备可基于开发人员的第一输入信息设置自定义模型,以丰富目标平台可利用的模型数量,增加目标平台的多样性,为开发人员提供更多的便利,从而节省人工成本,提高软件开发的效率。
在本申请一个实施例中,在获取电子设备的环境信息和目标平台的配置信息之前,还包括:
根据第二输入信息,设置自定义样式;
基于配置信息,生成第二代码,包括:
若配置信息包括数据集存放地址,则生成第二代码,其中,第二代码包括将从数据集存放地址获取的数据集采用自定义样式处理的代码。
本实施例中,自定义样式是针对从数据集存放地址获取的数据集输入到模型的样式进行设置,例如,输入到模型中的数据集是以N行M列的形式输入,那么可以通过自定义样式设置N的值、或者M的值,或者同时设置M和N的值。另外,辅助开发框架也提供通用样式,也可以采用通用样式对数据集进行处理。
本实施例中,电子设备可基于开发人员的第二输入信息设置自定义样式,以丰富目标平台可利用的数据集样式数量,以适应更多的模型的数据集输入需求,增加目标平台的多样性,为开发人员提供更多的便利,从而节省人工成本,提高软件开发的效率。
采用本申请提供的代码生成方法,对于开发人员来说,设置好配置信息,即可获得目标平台的代码,启动模型在目标平台中的训练、预测或评估中的一项或多项任务。
如图2所示,开发人员需要关注的是输入到模型中的数据集的样式,用于任务处理的模型等等。其他的,例如训练环境,平台,API接口,调度启动,预测等都不需要进行额外的开发,仅需要通过配置指定。在辅助开发框架(以下简称框架)内部,框架会对用于配置信息中配置的平台进行识别,从而生成跨平台的代码。
框架包括调度、平台识别、任务识别、获取数据、获取模型/指标,任务执行等模块,其中,调度包括配置解析、环境自动适配、平台调度和任务调度,配置解析是指对配置信息进行解析,并基于解析结果,生成目标平台对应的代码。
框架提供的平台包括CPU/多核、GPU/多卡、分布式集群paddlecloud/slum、hadoop/spark预测等,框架通过对配置信息中设置的平台信息进行识别,获知目标平台的平台信息。
任务类型至少包括训练、预测、评估中的至少一项,框架通过对配置信息中设置的任务类型进行识别,获知目标平台的任务类型。任务识别,支持训练、预测和评估,不同的任务会生成不同的启动程序。
框架还包括样本基类模块和样本管理模块,用于管理样本。开发人员可对样本(即数据集)的样式进行设置,样本基类包括输入层tensor、样本行处理、数据类注册等接口,开发人员可基于样本基类设置自定义样本处理样式(即自定义样式)。其中,用户自定义样本处理类需要开发人员设置,包括设置继承样本基类、设置输入tensor声明接口和设置样本行处理接口。框架也可包括通用样本处理库,通用样本处理库可包括多个样本样式。
框架还包括模型基类模块和模型管理模块,用于管理模型。开发人员可进行自定义模型设置,模型基类包括模型接口、模型类注册等接口,开发人员可基于模型基类设置自定义模型。其中,自定义模型需要开发人员设置,包括设置继承模型基类、设置组网接口net。框架也可包括通用模型库,通用模型库可包括多个模型。
基于上述框架,开发人员设置平台、模型和样本等策略,平台的预测及训练,开发人员不需要额外写程序,开发人员采用一种配置方式,即可获得不同平台的目标代码,开发人员不需要再基于不同平台开发相应接口,减少了开发工作量,提高了开发效率。
框架识别出平台信息后,会产出对应的平台环境的可执行代码。具体做法是:
在框架内部内置各平台的环境初始化组件,这些组件是可以动态装配的。所谓动态装配,就是在执行过程中决定调用哪些组件,以及组件的组合顺序。框架可自动识别框架所在电子设备的环境信息,并基于环境信息生成初始化代码。
在模型用户启动程序后,根据平台以及配置信息中的其他信息,生成用户任务对应的可执行代码。对于训练,预测,评估等不同的任务,可以对同一个组件进行复用。基于环境信息和配置信息,获得可执行源代码后,框架调用统一的入口程序,自动化地启动任务的执行。在任务执行完毕后,会将任务(可为训练、预测和评估中的至少一项)执行的结果存放在用户指定的路径下。
本实施的代码生成方法可应用在基于深度学习模型开发的场景下,例如,对深度学习模型进行训练、评估,并基于训练好的深度学习模型进行预测等。相比于传统的深度模型开发工作,采用本申请的方法,开发人员要熟悉的内容包括:设置配置文件,例如数据配置、模型配置和环境配置;定义输入tensor,由样本行生成输入tensor、fluid.layers.data,python生成器;组件网络,定义输出tensor、fluid.nets.xxxx,fluid.layers.xxxx等。代码开发量是原来的1/5,将开发效率提升了70%。采用本申请提供的代码生成方法,可使得深度语义模型开发的用户设置好配置信息即可,不需要基于不同平台重新编写深度学习框架提供的接口API,提高了开发效率。
参见图3,图3是本申请实施例提供的代码生成装置的结构图,如图3所示,本实施例提供一种代码生成装置300,包括:
第一获取模块301,用于获取电子设备的环境信息和目标平台的配置信息;
第一生成模块302,用于基于环境信息,生成第一代码;
第二生成模块303,用于基于配置信息,生成第二代码;
第二获取模块304,用于根据第一代码和第二代码,获得目标平台对应的目标代码。
进一步的,代码生成装置300还包括:
第一设置模块,用于根据第一输入信息,设置自定义模型;
其中,第一输入信息包括自定义模型的层数,以及每层的神经元个数;
第一生成模块,用于:
若配置信息包括自定义模型的模型标识,则生成调用自定义模型的第二代码。
进一步的,代码生成装置300还包括:
第二设置模块,用于根据第二输入信息,设置自定义样式;
第二生成模块,用于:
若配置信息包括数据集存放地址,则生成第二代码,其中,第二代码包括将从数据集存放地址获取的数据集采用自定义样式处理的代码。
进一步的,配置信息包括数据集存放地址、任务类型、平台信息或模型标识中的一项或多项;
其中,任务类型包括训练、预测或评估中的至少一项;
平台信息包括中央处理器的个数、图形处理器的个数、或者分布式集群的节点个数中的至少一项;
模型标识为用于训练、预测或评估中的至少一项处理的模型的标识。
代码生成装置300能够实现图1所示的方法实施例中电子设备实现的各个过程,为避免重复,这里不再赘述。
本申请实施例的代码生成装置300,获取电子设备的环境信息和目标平台的配置信息;基于环境信息,生成第一代码;基于配置信息,生成第二代码;根据第一代码和第二代码,获得目标平台对应的目标代码。开发人员通过设置配置信息即可获得目标平台对应的目标代码,节省了人工成本,提高了软件开发的效率。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图4所示,是根据本申请实施例的代码生成方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图4所示,该电子设备包括:一个或多个处理器401、存储器402,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图4中以一个处理器401为例。
存储器402即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的代码生成方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的代码生成方法。
存储器402作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的代码生成的方法对应的程序指令/模块(例如,附图3所示的第一获取模块301、第一生成模块302、第二生成模块303和第二获取模块304)。处理器401通过运行存储在存储器402中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的代码生成方法。
存储器402可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据代码生成的电子设备的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器402可选包括相对于处理器401远程设置的存储器,这些远程存储器可以通过网络连接至代码生成的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
代码生成方法的电子设备还可以包括:输入装置403和输出装置404。处理器401、存储器402、输入装置403和输出装置404可以通过总线或者其他方式连接,图4中以通过总线连接为例。
输入装置403可接收输入的数字或字符信息,以及产生与代码生成的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置404可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
根据本申请实施例的技术方案,获取所述电子设备的环境信息和目标平台的配置信息;基于所述环境信息,生成第一代码;基于所述配置信息,生成第二代码;根据所述第一代码和所述第二代码,获得所述目标平台对应的目标代码。开发人员通过设置配置信息即可获得目标平台对应的目标代码,节省了人工成本,提高了软件开发的效率。
配置信息用于配置目标平台,开发人员通过设置配置信息,即可通过电子设备获得目标平台对应的目标代码,节省了人工成本,提高了软件开发的效率。
电子设备可基于开发人员的第一输入信息设置自定义模型,以丰富目标平台可利用的模型数量,增加目标平台的多样性,为开发人员提供更多的便利,从而节省人工成本,提高软件开发的效率。
电子设备可基于开发人员的第二输入信息设置自定义样式,以丰富目标平台可利用的数据集样式数量,以适应更多的模型的数据集输入需求,增加目标平台的多样性,为开发人员提供更多的便利,从而节省人工成本,提高软件开发的效率。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

Claims (10)

1.一种代码生成方法,应用于电子设备,包括:
获取所述电子设备的环境信息和目标平台的配置信息;
基于所述环境信息,生成第一代码;
基于所述配置信息,生成第二代码;
根据所述第一代码和所述第二代码,获得所述目标平台对应的目标代码。
2.根据权利要求1所述的方法,其中,在所述获取所述电子设备的环境信息和目标平台的配置信息之前,还包括:
根据第一输入信息,设置自定义模型;
其中,所述第一输入信息包括所述自定义模型的层数,以及每层的神经元个数;
所述基于所述配置信息,生成第二代码,包括:
若所述配置信息包括所述自定义模型的模型标识,则生成调用所述自定义模型的所述第二代码。
3.根据权利要求1所述的方法,其中,在所述获取所述电子设备的环境信息和目标平台的配置信息之前,还包括:
根据第二输入信息,设置自定义样式;
所述基于所述配置信息,生成第二代码,包括:
若所述配置信息包括数据集存放地址,则生成所述第二代码,其中,所述第二代码包括将从所述数据集存放地址获取的数据集采用所述自定义样式处理的代码。
4.根据权利要求1所述的方法,其中,所述配置信息包括数据集存放地址、任务类型、平台信息或模型标识中的一项或多项;
其中,所述任务类型包括训练、预测或评估中的至少一项;
所述平台信息包括中央处理器的个数、图形处理器的个数、或者分布式集群的节点个数中的至少一项;
所述模型标识为用于训练、预测或评估中的至少一项处理的模型的标识。
5.一种代码生成装置,包括:
第一获取模块,用于获取电子设备的环境信息和目标平台的配置信息;
第一生成模块,用于基于所述环境信息,生成第一代码;
第二生成模块,用于基于所述配置信息,生成第二代码;
第二获取模块,用于根据所述第一代码和所述第二代码,获得所述目标平台对应的目标代码。
6.根据权利要求5所述的装置,其中,还包括:
第一设置模块,用于根据第一输入信息,设置自定义模型;
其中,所述第一输入信息包括所述自定义模型的层数,以及每层的神经元个数;
所述第一生成模块,用于:
若所述配置信息包括所述自定义模型的模型标识,则生成调用所述自定义模型的所述第二代码。
7.根据权利要求5所述的装置,其中,还包括:
第二设置模块,用于根据第二输入信息,设置自定义样式;
所述第二生成模块,用于:
若所述配置信息包括数据集存放地址,则生成所述第二代码,其中,所述第二代码包括将从所述数据集存放地址获取的数据集采用所述自定义样式处理的代码。
8.根据权利要求5所述的装置,其中,所述配置信息包括数据集存放地址、任务类型、平台信息或模型标识中的一项或多项;
其中,所述任务类型包括训练、预测或评估中的至少一项;
所述平台信息包括中央处理器的个数、图形处理器的个数、或者分布式集群的节点个数中的至少一项;
所述模型标识为用于训练、预测或评估中的至少一项处理的模型的标识。
9.一种电子设备,其中,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-4中任一项所述的方法。
10.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行权利要求1-4中任一项所述的方法。
CN202010596369.9A 2020-06-28 2020-06-28 代码生成方法、装置、电子设备以及存储介质 Pending CN111782181A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010596369.9A CN111782181A (zh) 2020-06-28 2020-06-28 代码生成方法、装置、电子设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010596369.9A CN111782181A (zh) 2020-06-28 2020-06-28 代码生成方法、装置、电子设备以及存储介质

Publications (1)

Publication Number Publication Date
CN111782181A true CN111782181A (zh) 2020-10-16

Family

ID=72760220

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010596369.9A Pending CN111782181A (zh) 2020-06-28 2020-06-28 代码生成方法、装置、电子设备以及存储介质

Country Status (1)

Country Link
CN (1) CN111782181A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113805861A (zh) * 2021-09-17 2021-12-17 平安银行股份有限公司 基于机器学习的代码生成方法、代码编辑系统及存储介质
CN114186678A (zh) * 2021-12-10 2022-03-15 北京百度网讯科技有限公司 基于深度学习的硬件适配装置和方法
JP7403586B2 (ja) 2021-12-10 2023-12-22 ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド 演算子の生成方法および装置、電子機器、記憶媒体並びにコンピュータプログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108170594A (zh) * 2017-12-25 2018-06-15 郑州云海信息技术有限公司 一种神经网络模型的测试方法、装置及设备
US20180357047A1 (en) * 2016-01-27 2018-12-13 Bonsai AI, Inc. Interface for working with simulations on premises
CN109146084A (zh) * 2018-09-06 2019-01-04 郑州云海信息技术有限公司 一种基于云计算的机器学习的方法及装置
CN109298898A (zh) * 2018-08-24 2019-02-01 深圳职业技术学院 云计算资源自动配置方法及装置
CN111310934A (zh) * 2020-02-14 2020-06-19 北京百度网讯科技有限公司 一种模型生成方法、装置、电子设备和存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180357047A1 (en) * 2016-01-27 2018-12-13 Bonsai AI, Inc. Interface for working with simulations on premises
CN108170594A (zh) * 2017-12-25 2018-06-15 郑州云海信息技术有限公司 一种神经网络模型的测试方法、装置及设备
CN109298898A (zh) * 2018-08-24 2019-02-01 深圳职业技术学院 云计算资源自动配置方法及装置
CN109146084A (zh) * 2018-09-06 2019-01-04 郑州云海信息技术有限公司 一种基于云计算的机器学习的方法及装置
CN111310934A (zh) * 2020-02-14 2020-06-19 北京百度网讯科技有限公司 一种模型生成方法、装置、电子设备和存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113805861A (zh) * 2021-09-17 2021-12-17 平安银行股份有限公司 基于机器学习的代码生成方法、代码编辑系统及存储介质
CN113805861B (zh) * 2021-09-17 2023-08-11 平安银行股份有限公司 基于机器学习的代码生成方法、代码编辑系统及存储介质
CN114186678A (zh) * 2021-12-10 2022-03-15 北京百度网讯科技有限公司 基于深度学习的硬件适配装置和方法
JP7403586B2 (ja) 2021-12-10 2023-12-22 ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド 演算子の生成方法および装置、電子機器、記憶媒体並びにコンピュータプログラム

Similar Documents

Publication Publication Date Title
CN107454954B (zh) 数据绑定相关性分析
US10339036B2 (en) Test automation using multiple programming languages
CN111708922A (zh) 用于表示异构图节点的模型生成方法及装置
CN111782181A (zh) 代码生成方法、装置、电子设备以及存储介质
CN112416461B (zh) 视频资源处理方法、装置、电子设备和计算机可读介质
CN111709252B (zh) 基于预训练的语义模型的模型改进方法及装置
CN112286656B (zh) 小程序模拟方法、装置、电子设备和计算机可读存储介质
CN114667507A (zh) 使用基于应用的剖析的机器学习工作负载的弹性执行
US11951390B2 (en) Method and system for incremental topological update within a data flow graph in gaming
CN111582477B (zh) 神经网络模型的训练方法和装置
CN112328301B (zh) 维护运行环境一致性的方法、装置、存储介质及电子设备
US20220222226A1 (en) Integration of model execution engine containers with a model development environment
CN112925587A (zh) 用于初始化应用的方法和装置
KR20170057264A (ko) 멀티 컨텍스트 지능형 지원 기능을 갖는 코드 개발 툴
CN112015468A (zh) 一种接口文档处理方法、装置、电子设备以及存储介质
CN112527281A (zh) 基于人工智能的算子升级方法、装置、电子设备及介质
CN112506854A (zh) 页面模板文件的存储和页面生成方法、装置、设备及介质
CN115080016A (zh) 基于ue编辑器的扩展功能实现方法、装置、设备及介质
CN111563253B (zh) 智能合约运行方法、装置、设备及存储介质
CN111767059B (zh) 深度学习模型的部署方法、装置、电子设备和存储介质
US10394529B2 (en) Development platform of mobile native applications
CN110908675B (zh) 运行环境获取方法、装置和电子设备
CN112799658B (zh) 模型训练方法、模型训练平台、电子设备和存储介质
CN115543534A (zh) 训练任务的管理方法、装置、电子设备及存储介质
CN112270412B (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