一种机器学习模型的实现方法及装置与流程

文档序号:16788266发布日期:2019-02-01 19:30阅读:141来源:国知局
本发明涉及计算机
技术领域
:,特别涉及一种机器学习模型的实现方法及装置。
背景技术
::机器学习模型的应用越来越广泛,机器学习模型的实现比较复杂。在现有技术中,需要开发人员根据概率统计、机器算法等进行编码,然后,对编写的代码进行训练,最终,训练得到机器学习模型。通过上述描述可见,现有技术中实现机器学习模型需要大量的人工操作,实现比较复杂。技术实现要素:本发明实施例提供了一种机器学习模型的实现方法及装置,能够更加方便地实现机器学习模型。一方面,本发明实施例提供了一种机器学习模型的实现方法,包括:预先设置机器学习模型的至少一个训练模板和机器学习模型的至少一个服务模板;从所述至少一个训练模板中,确定目标训练模板;从所述至少一个服务模板中,确定目标服务模板;接收外部输入的所述目标训练模板所需要的至少一个训练模板参数;接收外部输入的所述目标服务模板所需要的至少一个发布模板参数;根据所述目标训练模板和所述至少一个训练模板参数,生成目标机器学习模型的训练代码;运行所述训练代码,实现:生成所述目标机器学习模型,对所述目标机器学习模型进行训练,生成训练后的目标机器学习模型;根据所述目标服务模板和所述至少一个发布模板参数,生成服务代码;运行所述服务代码,实现:对训练后的目标机器学习模型进行封装,生成机器学习模型服务。优选地,所述对所述目标机器学习模型进行训练,生成训练后的目标机器学习模型,包括:调用auto-sklearn,利用auto-sklearn对所述目标机器学习模型进行训练,生成训练后的目标机器学习模型。优选地,所述对训练后的目标机器学习模型进行封装,生成机器学习模型服务,包括:调用flask,利用flask将训练后的目标机器学习模型封装为所述机器学习模型服务。优选地,所述至少一个训练模板参数包括:数据源的标识、所述数据源中的数据表的标识、所述数据表中的特征列的标识、所述数据表中的标签列的标识、训练时间、模型名称和模型路径;所述训练代码中包括所述至少一个训练模板参数;所述对所述目标机器学习模型进行训练,生成训练后的目标机器学习模型,包括:根据所述数据源的标识、所述数据表的标识、所述特征列的标识和所述标签列的标识,确定用于训练的训练数据;根据所述训练数据和所述训练时间,对所述目标机器学习模型进行训练,生成训练后的目标机器学习模型;在所述生成训练后的目标机器学习模型之后,进一步包括:将训练后的目标机器学习模型按照所述模型名称进行命名,并将训练后的目标机器学习模型保存到所述模型路径下。优选地,所述至少一个发布模板参数,包括:所述模型名称、所述模型路径和所述特征列的标识;所述服务代码中包括所述至少一个发布模板参数;所述对训练后的目标机器学习模型进行封装,生成机器学习模型服务,包括:根据所述模型名称和所述模型路径,确定训练后的目标机器学习模型;根据所述特征列的标识,确定使用所述机器学习模型服务时所需要的输入参数的标识;根据所述输入参数的标识,将训练后的目标机器学习模型封装为所述机器学习模型服务。另一方面,本发明实施例提供了一种机器学习模型的实现装置,包括:保存单元,用于保存机器学习模型的至少一个训练模板和机器学习模型的至少一个服务模板;模板确定单元,用于从所述至少一个训练模板中,确定目标训练模板,从所述至少一个服务模板中,确定目标服务模板;输入单元,用于接收外部输入的所述目标训练模板所需要的至少一个训练模板参数,接收外部输入的所述目标服务模板所需要的至少一个发布模板参数;训练代码单元,用于根据所述目标训练模板和所述至少一个训练模板参数,生成目标机器学习模型的训练代码;训练单元,用于运行所述训练代码,实现:生成所述目标机器学习模型,对所述目标机器学习模型进行训练,生成训练后的目标机器学习模型;服务代码单元,用于根据所述目标服务模板和所述至少一个发布模板参数,生成服务代码;服务生成单元,用于运行所述服务代码,实现:对训练后的目标机器学习模型进行封装,生成机器学习模型服务。优选地,所述训练单元,用于调用auto-sklearn,利用auto-sklearn对所述目标机器学习模型进行训练,生成训练后的目标机器学习模型。优选地,所述服务生成单元,用于调用flask,利用flask将训练后的目标机器学习模型封装为所述机器学习模型服务。优选地,所述至少一个训练模板参数包括:数据源的标识、所述数据源中的数据表的标识、所述数据表中的特征列的标识、所述数据表中的标签列的标识、训练时间、模型名称和模型路径;所述训练代码中包括所述至少一个训练模板参数;所述训练单元,用于:根据所述数据源的标识、所述数据表的标识、所述特征列的标识和所述标签列的标识,确定用于训练的训练数据;根据所述训练数据和所述训练时间,对所述目标机器学习模型进行训练,生成训练后的目标机器学习模型;所述训练单元,进一步用于在所述生成训练后的目标机器学习模型之后,将训练后的目标机器学习模型按照所述模型名称进行命名,并将训练后的目标机器学习模型保存到所述模型路径下。优选地,所述至少一个发布模板参数,包括:所述模型名称、所述模型路径和所述特征列的标识;所述服务代码中包括所述至少一个发布模板参数;所述服务生成单元,用于:根据所述模型名称和所述模型路径,确定训练后的目标机器学习模型;根据所述特征列的标识,确定使用所述机器学习模型服务时所需要的输入参数的标识;根据所述输入参数的标识,将训练后的目标机器学习模型封装为所述机器学习模型服务。在本发明实施例中,预先设置了训练模板和服务模板,根据训练模板和训练模板参数,生成训练代码,运行训练代码后生成训练后的目标机器学习模型,根据服务模板和发布模板参数,生成服务代码,运行服务代码,生成机器学习模型服务,通过机器学习模型服务实现了机器学习模型,该实现过程中用户只需输入训练模板参数和发布模板参数即可,无需进行编码等操作,更加方便地实现了机器学习模型。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明一实施例提供的一种机器学习模型的实现方法的流程图;图2是本发明一实施例提供的另一种机器学习模型的实现方法的流程图;图3是本发明一实施例提供的一种机器学习模型的实现装置的示意图;图4是本发明一实施例提供的另一种机器学习模型的实现装置的示意图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。如图1所示,本发明实施例提供了一种机器学习模型的实现方法,该方法可以包括以下步骤:步骤101:预先设置机器学习模型的至少一个训练模板和机器学习模型的至少一个服务模板;步骤102:从所述至少一个训练模板中,确定目标训练模板;步骤103:从所述至少一个服务模板中,确定目标服务模板;步骤104:接收外部输入的所述目标训练模板所需要的至少一个训练模板参数;步骤105:接收外部输入的所述目标服务模板所需要的至少一个发布模板参数;步骤106:根据所述目标训练模板和所述至少一个训练模板参数,生成目标机器学习模型的训练代码;步骤107:运行所述训练代码,实现:生成所述目标机器学习模型,对所述目标机器学习模型进行训练,生成训练后的目标机器学习模型;步骤108:根据所述目标服务模板和所述至少一个发布模板参数,生成服务代码;步骤109:运行所述服务代码,实现:对训练后的目标机器学习模型进行封装,生成机器学习模型服务。在本发明实施例中,预先设置了训练模板和服务模板,根据训练模板和训练模板参数,生成训练代码,运行训练代码后生成训练后的目标机器学习模型,根据服务模板和发布模板参数,生成服务代码,运行服务代码,生成机器学习模型服务,通过机器学习模型服务实现了机器学习模型,该实现过程中用户只需输入训练模板参数和发布模板参数即可,无需进行编码等操作,更加方便地实现了机器学习模型。在本发明一实施例中,所述对所述目标机器学习模型进行训练,生成训练后的目标机器学习模型,包括:调用auto-sklearn,利用auto-sklearn对所述目标机器学习模型进行训练,生成训练后的目标机器学习模型。在本发明实施例中,训练代码中可以包括调用auto-sklearn的部分,通过auto-sklearn能够自动对目标机器学习模型进行训练,该训练过程无需用户参与。在本发明一实施例中,所述对训练后的目标机器学习模型进行封装,生成机器学习模型服务,包括:调用flask,利用flask将训练后的目标机器学习模型封装为所述机器学习模型服务。在本发明实施例中,服务代码中可以包括调用flask的部分,通过flask能够自动对训练后的目标机器学习模型进行封装,得到机器学习模型服务,该过程无需用户参与。机器学习模型服务可以是一种restful服务。将训练后的目标机器学习模型封装为机器学习模型服务后,能够更加方便的使用该目标机器学习模型,例如:方便在其他工程中集成使用。另外,机器学习模型服务也方便生产数据对目标机器学习模型进行快速验证。在本发明一实施例中,在所述生成机器学习模型服务之后,还可以利用flask发布所述机器学习模型服务。在本发明一实施例中,所述至少一个训练模板参数包括:数据源的标识、所述数据源中的数据表的标识、所述数据表中的特征列的标识、所述数据表中的标签列的标识、训练时间、模型名称和模型路径;所述训练代码中包括所述至少一个训练模板参数;所述对所述目标机器学习模型进行训练,生成训练后的目标机器学习模型,包括:根据所述数据源的标识、所述数据表的标识、所述特征列的标识和所述标签列的标识,确定用于训练的训练数据;根据所述训练数据和所述训练时间,对所述目标机器学习模型进行训练,生成训练后的目标机器学习模型;在所述生成训练后的目标机器学习模型之后,进一步包括:将训练后的目标机器学习模型按照所述模型名称进行命名,并将训练后的目标机器学习模型保存到所述模型路径下。在本发明实施例中,在生成训练代码时,将该至少一个训练模板参数包含到训练代码中,在执行训练代码时,可以根据数据源的标识、数据表的标识、特征列的标识和标签列的标识,确定出训练数据。其中,数据源可以是存储训练数据的数据库,数据源的标识可以是数据库的名称、路径等。数据表是存储训练数据的表,数据表位于数据源中,数据表的标识可以是数据表的名称、路径等。特征列是存储训练数据的列,特征列位于数据表中,特征列的标识可以是特征列的列名等。标签列是存储训练数据的列,标签列位于数据表中,标签列的标识可以是标签列的列名等。训练时间是需要训练目标机器学习模型的时间长度。训练后的目标机器学习模型的效果与训练时间存在一定的关系,训练数据可以根据训练数据的数据量大小来设置,例如:训练数据的数据量与训练时间成正相关,数据量越大,训练时间越长,数据量越小,训练数据越短。其中,特征列中的训练数据可以是需要输入到目标机器学习模型中的数据,而目标机器学习模型根据特征列中的训练数据进行处理后,输出的结果需要与标签列中的训练数据进行比较。在本发明一实施例中,所述至少一个发布模板参数,包括:所述模型名称、所述模型路径和所述特征列的标识;所述服务代码中包括所述至少一个发布模板参数;所述对训练后的目标机器学习模型进行封装,生成机器学习模型服务,包括:根据所述模型名称和所述模型路径,确定训练后的目标机器学习模型;根据所述特征列的标识,确定使用所述机器学习模型服务时所需要的输入参数的标识;根据所述输入参数的标识,将训练后的目标机器学习模型封装为所述机器学习模型服务。在本发明实施例中,在生成服务代码时,将该至少一个发布模板参数包含到服务代码中,在执行服务代码时,根据该至少一个发布模板参数生成机器学习模型服务。具体地,可以根据模型名称和模型路径找到训练后的目标机器学习模型。这里的输入参数的标识可以是输入参数的名称,生成的机器学习模型服务可以利用输入参数的名称提醒使用该机器学习模型服务的用户输入所需要的输入参数。可以在机器学习模型服务为输入参数设置对应的接口,该接口用于接收外部输入的输入参数。如图2所示,本发明实施例提供了一种机器学习模型的实现方法,包括:步骤201:预先设置机器学习模型的至少一个训练模板和机器学习模型的至少一个服务模板。具体地,该至少一个训练模板可以包括:分类训练模板和回归训练模板,该至少一个服务模板可以包括:分类服务模板和回归服务模板。机器学习方法中包括监督学习,监督学习中包括分类方法和回归方法。其中,分类训练模板是针对分类方法的训练模板,回归训练模板是针对回归方法的训练模板,分类服务模板是针对分类方法的服务模板,回归服务模板是针对回归方法的服务模板。通过分类训练模板可以实现分类方法,通过回归训练模板可以是回归方法。步骤202:从该至少一个训练模板中,确定目标训练模板,从该至少一个服务模板中,确定目标服务模板。步骤203:接收外部输入的目标训练模板所需要的至少一个训练模板参数,接收外部输入的目标服务模板所需要的至少一个发布模板参数。具体地,该至少一个训练模板参数包括:数据源的标识、所述数据源中的数据表的标识、所述数据表中的特征列的标识、所述数据表中的标签列的标识、训练时间、模型名称和模型路径。该至少一个发布模板参数,包括:模型名称、模型路径和特征列的标识。另外,该至少一个训练模板参数还可以包括:训练集与测试集拆分比例。在对目标机器学习模型进行训练后,可以对目标机器学习模型进行测试,确定当前的目标机器学习模型是否能够达到需要的处理效果。其中,训练集与测试集拆分比例是指数据源中用于训练的数据和用于测试的数据的比例。通过训练集中的数据对目标机器学习模型进行训练,通过测试集中的数据可以对当前的目标机器学习模型进行测试。举例来说,有8条数据用于训练,有2条数据用于对目标机器学习模型进行测试,那么,训练集与测试集拆分比例为8比2。该至少一个训练模板参数可以如表1所示,表1中示出了在训练模板中可以通过右侧一栏中的模板参数来表示各个训练模板参数。表1模板参数说明${datasource}数据源的标识${table}数据表的标识${features}特征列的标识${label}标签列的标识${split_portion}训练集与测试集拆分比例${train_time}训练时间${model_name}模型名称${model_path}模型路径该至少一个服务模板参数可以如表2所示,表2中示出了在服务模板中通过右侧一栏中的模板参数来表示各个服务模板参数。表2模板参数说明${model_name}模型名称${model_path}模型路径${features}特征列的标识步骤204:根据目标训练模板和该至少一个训练模板参数,生成目标机器学习模型的训练代码。在该步骤中,通过目标训练模板和该至少一个训练模板参数,可以自动生成目标机器学习模型的训练代码,具体地,可以通过预先设置的脚本来实现该步骤。在该训练代码中可以引用auto-sklearn,以使得在步骤205中调用auto-sklearn进行处理。步骤205:运行训练代码,实现:根据数据源的标识、数据表的标识、特征列的标识和标签列的标识,确定用于训练的训练数据,根据训练数据和训练时间,对目标机器学习模型进行训练,生成训练后的目标机器学习模型,将训练后的目标机器学习模型按照模型名称进行命名,并将训练后的目标机器学习模型保存到模型路径下。该步骤可以通过auto-sklearn来实现。auto-sklearn是一种自动训练机器学习模型的工具。在该步骤中,还可以按照训练集与测试集拆分比例设置测试集,通过测试集中的数据对目标机器学习模型进行测试,确定当前的目标机器学习模型是否满足要求,如果不满足要求,可以重新设置各个训练模板参数,重新生成训练代码,重新运行训练代码。其中,重新设置各个训练模板参数主要是重新设置数据源的标识、数据表的标识、特征列的标识、标签列的标识、训练时间等。步骤206:根据目标服务模板和该至少一个发布模板参数,生成服务代码。在该步骤中,通过目标服务模板和该至少一个发布模板参数,可以自动生成目标机器学习模型的训练代码,具体地,可以通过预先设置的脚本来实现该步骤。在该训练代码中可以引用flask,以使得在步骤207中调用flask进行处理。步骤207:运行服务代码,实现:根据模型名称和模型路径,确定训练后的目标机器学习模型,根据特征列的标识,确定使用机器学习模型服务时所需要的输入参数的标识,根据输入参数的标识,将训练后的目标机器学习模型封装为机器学习模型服务。该步骤可以通过flask来实现,flask为一种生成机器学习模型服务的工具。这里的机器学习模型服务可以是restful服务。在步骤207之后,还可以包括:发布机器学习模型服务。该过程也可以通过flask来实现。外部需要使用训练后的目标机器学习模型时,调用机器学习模型服务即可,非常方便。在本发明实施例中,通过参数配置即可自动实现机器学习模型的训练,以及机器学习模型服务的生成和发布,简单易用;整个实现过程均可以通过页面封装,从而更加方便操作;根据机器学习模型服务,能够更加方便对目标机器学习模型进行快速验证;根据机器学习模型服务,能够非常方便地在其他工程上集成使用机器学习模型。如图3、图4所示,本发明实施例提供了一种机器学习模型的实现装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。从硬件层面而言,如图3所示,为本发明实施例提供的一种机器学习模型的实现装置所在设备的一种硬件结构图,除了图3所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等。以软件实现为例,如图4所示,作为一个逻辑意义上的装置,是通过其所在设备的cpu将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。本实施例提供的一种机器学习模型的实现装置,包括:保存单元401,用于保存机器学习模型的至少一个训练模板和机器学习模型的至少一个服务模板;模板确定单元402,用于从所述至少一个训练模板中,确定目标训练模板,从所述至少一个服务模板中,确定目标服务模板;输入单元403,用于接收外部输入的所述目标训练模板所需要的至少一个训练模板参数,接收外部输入的所述目标服务模板所需要的至少一个发布模板参数;训练代码单元404,用于根据所述目标训练模板和所述至少一个训练模板参数,生成目标机器学习模型的训练代码;训练单元405,用于运行所述训练代码,实现:生成所述目标机器学习模型,对所述目标机器学习模型进行训练,生成训练后的目标机器学习模型;服务代码单元406,用于根据所述目标服务模板和所述至少一个发布模板参数,生成服务代码;服务生成单元407,用于运行所述服务代码,实现:对训练后的目标机器学习模型进行封装,生成机器学习模型服务。在本发明一实施例中,所述训练单元,用于调用auto-sklearn,利用auto-sklearn对所述目标机器学习模型进行训练,生成训练后的目标机器学习模型。在本发明一实施例中,所述服务生成单元,用于调用flask,利用flask将训练后的目标机器学习模型封装为所述机器学习模型服务。在本发明一实施例中,所述至少一个训练模板参数包括:数据源的标识、所述数据源中的数据表的标识、所述数据表中的特征列的标识、所述数据表中的标签列的标识、训练时间、模型名称和模型路径;所述训练代码中包括所述至少一个训练模板参数;所述训练单元,用于:根据所述数据源的标识、所述数据表的标识、所述特征列的标识和所述标签列的标识,确定用于训练的训练数据;根据所述训练数据和所述训练时间,对所述目标机器学习模型进行训练,生成训练后的目标机器学习模型;所述训练单元,进一步用于在所述生成训练后的目标机器学习模型之后,将训练后的目标机器学习模型按照所述模型名称进行命名,并将训练后的目标机器学习模型保存到所述模型路径下。在本发明一实施例中,所述至少一个发布模板参数,包括:所述模型名称、所述模型路径和所述特征列的标识;所述服务代码中包括所述至少一个发布模板参数;所述服务生成单元,用于:根据所述模型名称和所述模型路径,确定训练后的目标机器学习模型;根据所述特征列的标识,确定使用所述机器学习模型服务时所需要的输入参数的标识;根据所述输入参数的标识,将训练后的目标机器学习模型封装为所述机器学习模型服务。上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。本发明实施例提供了一种可读介质,包括执行指令,当存储控制器的处理器执行所述执行指令时,所述存储控制器执行本发明实施例提供的任意一种机器学习模型的实现方法。本发明实施例提供了一种存储控制器,包括:处理器、存储器和总线;所述存储器用于存储执行指令,所述处理器与所述存储器通过所述总线连接,当所述存储控制器运行时,所述处理器执行所述存储器存储的执行指令,以使所述存储控制器执行本发明实施例提供的任意一种机器学习模型的实现方法。本发明各个实施例至少具有如下有益效果:1、在本发明实施例中,预先设置了训练模板和服务模板,根据训练模板和训练模板参数,生成训练代码,运行训练代码后生成训练后的目标机器学习模型,根据服务模板和发布模板参数,生成服务代码,运行服务代码,生成机器学习模型服务,通过机器学习模型服务实现了机器学习模型,该实现过程中用户只需输入训练模板参数和发布模板参数即可,无需进行编码等操作,更加方便地实现了机器学习模型。2、在本发明实施例中,通过参数配置即可自动实现机器学习模型的训练,以及机器学习模型服务的生成和发布,简单易用;整个实现过程均可以通过页面封装,从而更加方便操作;根据机器学习模型服务,能够更加方便对目标机器学习模型进行快速验证;根据机器学习模型服务,能够非常方便地在其他工程上集成使用机器学习模型。需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质中。最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1