发明内容
基于此,有必要针对上述技术问题,提供一种能够降低时间成本的基于神经网络模型的处理方法、装置、计算机设备、存储介质和计算机程序产品。
第一方面,本申请提供了一种基于神经网络模型的处理方法。所述方法包括:
接收用户终端发送的针对目标神经网络模型的加载请求,获取所述加载请求中携带的所述目标神经网络模型的目标模型类型和版本信息;
从系统框架和基于所述系统框架运行的多个第三方神经网络框架中,确定与所述模型类型对应的目标框架;所述目标框架中部署至少一个神经网络模型;
调用所述目标框架的加载接口,以基于所述加载接口加载符合所述版本信息的目标神经网络模型;
若接收到针对加载后的所述目标神经网络模型的处理请求,则基于加载后的所述目标神经网络模型进行相应处理,生成符合预设格式规范的回复报文;
向所述用户终端返回所述回复报文。
在其中一个实施例中,所述若接收到针对加载后的所述目标神经网络模型的处理请求,则基于加载后的所述目标神经网络模型进行相应处理,生成符合预设格式规范的回复报文包括:
在所述目标框架为系统框架的情况下,若接收到针对加载后的所述目标神经网络模型的处理请求,则通过加载后的所述目标神经网络模型所提供的接口对所述处理请求进行处理,得到符合预设格式规范的处理结果;
基于所述处理结果生成回复报文。
在其中一个实施例中,所述若接收到针对加载后的所述目标神经网络模型的处理请求,则基于加载后的所述目标神经网络模型进行相应处理,生成符合预设格式规范的回复报文包括:
在所述目标框架为第三方神经网络框架的情况下,若接收到针对加载后的所述目标神经网络模型的处理请求,则以所述第三方神经网络框架所要求的接口规范将所述处理请求转换为第三方处理请求;
通过所述第三方神经网络框架所提供的接口处理所述第三方处理请求,生成符合所述第三方神经网络框架的输出格式的第三方处理结果;
对所述第三方处理结果按照预设的转换规则进行转换,生成符合预设格式规范的回复报文。
在其中一个实施例中,所述处理请求为计算请求;所述第三方处理请求为第三方计算请求;所述第三方处理结果为第三方计算结果;
所述通过所述第三方神经网络框架所提供的接口处理所述第三方处理请求,生成符合所述第三方神经网络框架的输出格式的第三方处理结果包括:
从所述第三方计算请求中获取用于计算的输入数据;
按照所述第三方神经网络框架所要求的接口规范,将所述输入数据输入到所述第三方神经网络框架所提供的计算接口中,触发加载后的所述目标神经网络模型进行计算,生成符合所述第三方神经网络框架的输出格式的第三方计算结果。
在其中一个实施例中,所述处理请求为训练请求;所述第三方处理请求为第三方训练请求;所述第三方处理结果为第三方训练结果;
所述通过所述第三方神经网络框架所提供的接口处理所述第三方处理请求,生成符合所述第三方神经网络框架的输出格式的第三方处理结果包括:
基于所述训练请求获取训练数据;
按照所述第三方神经网络框架所要求的接口规范,将所述训练数据输入到所述第三方神经网络框架所提供的训练接口中,触发对加载后的所述目标神经网络模型进行模型训练,生成符合所述第三方神经网络框架的格式规范的第三方训练结果。
在其中一个实施例中,其特征在于,所述第三方神经网络框架中部署所述第三方神经网络框架支持的至少一种第一神经网络模型;所述系统框架中部署第二神经网络模型;所述第二神经网络模型所属的模型类型,是所述第三方神经网络框架不支持的模型类型;
所述从系统框架和基于所述系统框架运行的多个第三方神经网络框架中,确定与所述模型类型对应的目标框架包括:
确定与每个所述第三方神经网络框架相关联的第一模型类型集合;
确定与系统框架相关联的第二模型类型集合;
从所述第一模型类型集合和多个所述第二模型类型集合中,确定所述目标模型类型所属的模型类型集合;所述所属的模型类型集合为所述第一模型类型集合和多个所述第二模型类型集合中的其中一种;
将所述所属的模型类型集合所对应的框架,确定为目标框架。
第二方面,本申请还提供了一种基于神经网络模型的处理装置。所述装置包括:
模型确认模块,用于接收用户终端发送的针对目标神经网络模型的加载请求,获取所述加载请求中携带的所述目标神经网络模型的目标模型类型和版本信息;从系统框架和基于所述系统框架运行的多个第三方神经网络框架中,确定与所述模型类型对应的目标框架;所述目标框架中部署至少一个神经网络模型;
模型加载模块,用于调用所述目标框架的加载接口,以基于所述加载接口加载符合所述版本信息的目标神经网络模型;
模型使用模块,用于若接收到针对加载后的所述目标神经网络模型的处理请求,则基于加载后的所述目标神经网络模型进行相应处理,生成符合预设格式规范的回复报文;向所述用户终端返回所述回复报文。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行上述基于神经网络模型的处理方法的步骤。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行上述基于神经网络模型的处理方法的步骤。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行上述基于神经网络模型的处理方法的步骤。
上述基于神经网络模型的处理方法、装置、计算机设备、存储介质和计算机程序产品,通过接收用户终端发送的针对目标神经网络模型的加载请求,获取加载请求中携带的目标神经网络模型的目标模型类型和版本信息。从系统框架和基于系统框架运行的多个第三方神经网络框架中,确定与目标模型类型对应的目标框架;目标框架中部署至少一个神经网络模型。基于对目标框架的接口对接内容调用目标框架的加载接口,以基于加载接口加载符合版本信息的目标神经网络模型。这样,用户终端就可以直接选择所要加载的神经网络模型,而不需要用户亲自部署加载。若接收到针对加载后的目标神经网络模型的处理请求,则基于加载后的目标神经网络模型进行相应处理,生成符合预设定义规范的回复报文;向用户终端返回回复报文。这样,用户终端所收到的回复报文的定义规范是统一的,不需要关注不同神经网络模型输出的不同格式要求。因此,用户只需要编写统一格式规范的收发报文,不需要熟悉和对接不同的第三方神经网络框架,就能完成对神经神经网络模型的部署和使用,从而降低了时间成本。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的基于神经网络模型的处理方法,可以应用于如图1所示的应用环境中。其中,终端110通过网络与服务器120进行通信。其中,终端110可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
终端110可以发送针对目标神经网络模型的加载请求,服务器120接收到接收用户终端发送的针对目标神经网络模型的加载请求。服务器120获取加载请求中携带的目标神经网络模型的目标模型类型和版本信息;从系统框架和基于系统框架运行的多个第三方神经网络框架中,确定与目标模型类型对应的目标框架;目标框架中部署至少一个神经网络模型。服务器120调用目标框架的加载接口,以基于加载接口加载符合版本信息的目标神经网络模型。服务器120若接收到针对加载后的目标神经网络模型的处理请求,则基于加载后的目标神经网络模型进行相应处理,生成符合预设定义规范的回复报文。服务器120向终端110返回回复报文。
在一个实施例中,如图2所示,提供了一种基于神经网络模型的处理方法,本实施例以该方法应用于服务器进行举例说明,可以理解的是,该方法也可以应用于终端,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。本实施例中,该方法包括以下步骤:
S202,接收用户终端发送的针对目标神经网络模型的加载请求,获取加载请求中携带的目标神经网络模型的目标模型类型和版本信息;从系统框架和基于系统框架运行的多个第三方神经网络框架中,确定与目标模型类型对应的目标框架;目标框架中部署至少一个神经网络模型。
其中,目标模型类型是指用户终端指定加载的神经网络模型的类型,神经网络模型的类型用于区分不同的神经网络模型。版本信息用于指定目标神经网络模型所使用的版本。
其中,系统框架是指服务器运行的主框架,用于实现系统业务,包括跟用户终端通讯、收发报文和对第三方神经网络框架的管理等。第三方神经网络框架是用于加载神经网络模型的区分于系统框架的第三方框架。目标框架是加载用户终端所指定的神经网络模型的框架,可以是第三方神经网络框架或者系统框架。
在一个实施例中,版本信息可以包括神经网络模型文件路径和版本号,服务器通过神经模型网络模型文件路径确认神经网络模型文件的存放目录,通过版本号在存放目录中查找到用户终端所指定的目标神经网络模型文件。
在一个实施例中,版本信息可以只包括版本号,服务器在预设的存放目录中,通过版本号在存放目录中查找到指定的目标神经网络模型文件。
在一个实施例中,同一个目标模型类型可以支持多种不同的版本,用户终端可以通过版本信息中的版本号来选定目标神经网络模型的版本。
在一个实施例中,第三方神经网络框架可以通过加载目标神经网络模型文件从而加载目标神经网络模型。
在一个实施例中,第三方神经网络框架可以是Tensorflow框架(一种机器学习框架,可以利用数据流图进行数值计算)或者PyTorch框架(一个python优先的深度学习框架,python是指一种解释型、面向对象、动态数据类型的高级程序设计语言)等。
在一个实施例中,系统框架所部署的神经网络模型跟第三方网络框架所部署的神经网络模型类型不同,系统框架可以部署第三方神经网络框架不支持的神经网络模型;系统框架和第三方神经网络框架各自对应所支持的神经网络模型集合,用于跟目标模型类型匹配从而确认目标模型类型所使用的目标框架。
具体地,用户终端发送针对目标神经网络模型的加载请求,服务器收到加载请求后,获取加载请求所携带的目标神经网络模型的目标模型类型和版本信息。服务器从系统框架和基于系统框架运行的多个第三方神经网络框架中,通过各自的神经网络模型集合,选取出目标模型类型所属的目标框架。
在一个实施例中,目标框架中部署至少一个神经网络模型。
S204,调用目标框架的加载接口,以基于加载接口加载符合版本信息的目标神经网络模型。
在一个实施例中,接口可以包括函数和操作命令等中的至少一种。
在一个实施例中,接口可以包括在系统框架中使用神经网络模型所定义的多个接口和对第三方神经网络框架所提供的计算接口、加载接口、训练接口和卸载接口的封装。比如,接口包括在系统框架中所定义的A函数,用于加载第一神经网络模型,接口包括定义的X函数,用于封装第三方神经网络框架所提供的计算接口。
在一个实施例中,若目标框架是系统框架,服务器从加载请求中获取模型文件路径和版本信息,根据模型文件路径和版本信息确认神经网络模型文件,服务器在系统框架中调用对应的加载接口,从而直接加载目标神经网络模型。
在一个实施例中,若目标框架是第三方神经网络框架,服务器在系统框架中调用对第三方神经网络框架的加载接口封装后的接口,来触发第三方神经网络框架加载目标神经网络模型。
在一个实施例中,服务器所加载的目标神经网络模型是符合加载请求中描述的版本信息。
具体地,服务器确定调用目标框架的加载接口,服务器调用加载接口,以基于加载接口加载符合版本信息的目标神经网络模型,分配对应的内存资源,并返回统一定义规范的加载结果报文给用户终端。
S206,若接收到针对加载后的目标神经网络模型的处理请求,则基于加载后的目标神经网络模型进行相应处理,生成符合预设定义规范的回复报文;向用户终端返回回复报文。
其中,处理请求用于指示对目标神经网络模型的处理要求。
在一个实施例中,服务器收到的处理请求是统一格式规范的处理请求。
在一个实施例中,处理请求可以包括训练请求、计算请求、卸载请求和维护请求等中的至少一种。
在一个实施例中,在目标框架为系统框架的情况下,服务器接收到处理请求后,直接调用目标神经网络模型的接口,对处理请求进行处理。
在一个实施例中,在目标框架为第三方神经网络框架的情况下,服务器接收到统一格式规范的处理请求后,将处理请求转换为第三方神经网络框架所指定格式规范的处理请求,并将第三方神经网络框架输出的第三方处理结果转换为统一格式规范的回复报文。
在一个实施例中,在目标框架为第三方神经网络框架的情况下,服务器收到计算请求,基于第三方神经网络框架所提供的计算接口处理计算请求。
在一个实施例中,在目标框架为第三方神经网络框架的情况下,服务器收到训练请求,基于第三方神经网络框架所提供的训练接口处理计算请求。
在一个实施例中,维护请求包括对神经网络模型或者第三方神经网络框架的配置。
在一个实施例中,在目标框架为第三方神经网络框架的情况下,服务器收到维护请求,基于第三方神经网络框架所提供的维护接口处理维护请求。
在一个实施例中,在目标框架为第三方神经网络框架的情况下,服务器收到卸载请求,基于第三方神经网络框架所提供的卸载接口触发第三方神经网络框架卸载目标神经网络模型,回收内存资源。
具体地,若服务器接收到针对加载后的目标神经网络模型的处理请求,服务器判断目标神经网络模型所属的目标框架。服务器基于第三方神经网络框架所提供的接口或者是目标神经网络模型的接口来触发加载后的目标神经网络模型进行相应处理,生成符合预设定义规范的回复报文;向用户终端返回回复报文。
在一个实施例中,服务器在资源调度上,对系统框架和第三方神经网络框架做了统一的部署,而不是单独部署,从而提高资源的复用效率。
上述基于神经网络模型的处理方法、装置、计算机设备、存储介质和计算机程序产品,通过接收用户终端发送的针对目标神经网络模型的加载请求,获取加载请求中携带的目标神经网络模型的目标模型类型和版本信息。从系统框架和基于系统框架运行的多个第三方神经网络框架中,确定与目标模型类型对应的目标框架;目标框架中部署至少一个神经网络模型。调用目标框架的加载接口,以基于加载接口加载符合版本信息的目标神经网络模型。这样,用户终端就可以直接选择所要加载的神经网络模型,而不需要用户亲自部署加载。若接收到针对加载后的目标神经网络模型的处理请求,则基于加载后的目标神经网络模型进行相应处理,生成符合预设定义规范的回复报文;向用户终端返回回复报文。这样,用户终端所收到的回复报文的定义规范是统一的,不需要关注不同神经网络模型输出的不同格式要求。因此,用户只需要编写统一格式规范的收发报文,不需要熟悉和对接不同的第三方神经网络框架,就能完成对神经神经网络模型的部署和使用,从而降低了时间成本。
在一个实施例中,若接收到针对加载后的目标神经网络模型的处理请求,则基于加载后的目标神经网络模型进行相应处理,生成符合预设格式规范的回复报文包括:在目标框架为系统框架的情况下,若接收到针对加载后的目标神经网络模型的处理请求,则通过加载后的目标神经网络模型所提供的接口对处理请求进行处理,得到符合预设格式规范的处理结果;基于处理结果生成回复报文。
具体地,在目标框架为系统框架的情况下,若接收到针对加载后的目标神经网络模型的处理请求,服务器确认处理请求类型,调用目标神经网络模型的与处理请求类型相匹配的接口,触发目标神经网络模型对处理请求进行处理,返回符合预设格式规范的处理结果。服务器基于处理结果生成回复报文。
在本实施例中,服务器接收到处理请求,调用目标神经网络模型的接口对处理请求进行处理,得到符合预设格式规范的处理结果。这样,服务器支持直接与目标神经网络模型对接,不需要依赖第三方神经网络框架,以使得服务器可以兼容第三方神经网络框所不支持的神经网络模型,提高服务器的兼容能力。
在一个实施例中,若接收到针对加载后的目标神经网络模型的处理请求,则基于加载后的目标神经网络模型进行相应处理,生成符合预设格式规范的回复报文包括:在目标框架为第三方神经网络框架的情况下,若接收到针对加载后的目标神经网络模型的处理请求,则以第三方神经网络框架所要求的接口规范将处理请求转换为第三方处理请求;通过第三方神经网络框架所提供的接口处理第三方处理请求,生成符合第三方神经网络框架的输出格式的第三方处理结果;对第三方处理结果按照预设的转换规则进行转换,生成符合预设格式规范的回复报文。
其中,第三方处理请求是第三方神经网络框架能识别的处理请求。
在一个实施例中,接口规范可以包括对输入数据的内容要求、格式要求以及接口调用顺序等中的至少一种。
在一个实施例中,不同的第三方神经网络框架对处理请求的格式规范要求不同,服务器将处理请求转换为第三方神经网络框架所能识别的处理请求。
在一个实施例中,不同的第三方神经网络框架所输出的第三方处理结果的输出格式不同,服务器基于第三方处理结果生成用户终端能识别的统一定义规范的回复报文。
具体地,在目标框架为第三方神经网络框架的情况下,若接收到针对加载后的目标神经网络模型的处理请求,服务器确认处理请求所指定的目标神经网络模型以及目标神经网络模型所属的第三方神经网络框架。服务器确认第三方神经网络框架所要求的接口规范,根据接口规范将处理请求转换为第三方处理请求。通过第三方神经网络框架所提供的接口处理第三方处理请求,生成符合第三方神经网络框架的输出格式的第三方处理结果。服务器根据第三方神经网络框架的第三方处理结果和回复报文之间的转换规则,对第三方处理结果进行转换,生成符合预设格式规范的回复报文。
在本实施例中,在目标框架为第三方神经网络框架的情况下,服务器将用户终端发送的统一定义规范的处理请求转化第三方神经网络框架所能识别的第三方处理请求,并将第三方神经网络框架输出的第三方处理结果转换为用户终端能识别的统一定义规范的回复报文。这样,用户终端不需要关注不同的第三方神经网络框架的不同格式规范,只需要关注统一定义规范的处理请求和回复报文即可,用户终端的使用者就能在较短的时间使用第三方神经网络框架进行训练和计算等处理请求,减少对第三方神经网络框架熟悉和对接的时间,从而降低时间成本,提高工作效率。
在一个实施例中,处理请求为计算请求;第三方处理请求为第三方计算请求;第三方处理结果为第三方计算结果;通过第三方神经网络框架所提供的接口处理第三方处理请求,生成符合第三方神经网络框架的输出格式的第三方处理结果包括:从第三方计算请求中获取用于计算的输入数据;按照第三方神经网络框架所要求的接口规范,将输入数据输入到第三方神经网络框架所提供的计算接口中,触发加载后的目标神经网络模型进行计算,生成符合第三方神经网络框架的输出格式的第三方计算结果。
在一个实施例中,不同的第三方神经网络框架对计算请求中的输入数据处理不同。
具体地,服务器从第三方计算请求中获取用于计算的输入数据,并确认处理输入数据目标神经网络模型和目标神经网络模型所属的第三方神经网络框架。服务器确认用于处理输入数据的第三方神经网络框架所提供的计算接口,并确认第三方神经网络框架所要求的接口规范,以接口规范的要求将输入数据输入到计算接口中,触发加载后的目标神经网络模型进行计算,生成符合第三方神经网络框架的输出格式的第三方计算结果。
在本实施例中,服务器从第三方计算请求中获取用于计算的输入数据;按照第三方神经网络框架所要求的接口规范,将输入数据输入到第三方神经网络框架所提供的计算接口中,生成符合第三方神经网络框架的输出格式的第三方计算结果。这样,用户终端不需要关注不同的第三方神经网络框架对输入数据的计算要求,只需要关注计算请求的统一格式规范,用户终端的使用者就能在较短的时间使用不同的第三方神经网络框架进行计算,降低出错率,减少对第三方神经网络框架熟悉和对接的时间,从而降低时间成本,提高工作效率。
在一个实施例中,处理请求为训练请求;第三方处理请求为第三方训练请求;第三方处理结果为第三方训练结果;通过第三方神经网络框架所提供的接口处理第三方处理请求,生成符合第三方神经网络框架的输出格式的第三方处理结果包括:基于训练请求获取训练数据;按照第三方神经网络框架所要求的接口规范,将训练数据输入到第三方神经网络框架所提供的训练接口中,触发对加载后的目标神经网络模型进行模型训练,生成符合第三方神经网络框架的格式规范的第三方训练结果。
在一个实施例中,不同的第三方神经网络框架训练集数据的处理不同。
在一个实施例中,服务器可以从第三方训练请求中获取训练集数据,也可以从第三方训练请求中指定的路径获取训练集数据。
具体地,服务器基于第三方训练请求获取用于训练的训练集数据,并确认需要训练的目标神经网络模型和目标神经网络模型所属的第三方神经网络框架。服务器确认用于训练数据的第三方神经网络框架所提供的训练接口,并确认第三方神经网络框架所要求的接口规范,以接口规范的要求将训练集数据输入到训练接口中,触发加载后的目标神经网络模型对训练集数据进行训练,并生成符合第三方神经网络框架的输出格式的第三方训练结果。
在本实施例中,服务器基于训练请求获取训练数据;按照第三方神经网络框架所要求的接口规范,将训练数据输入到第三方神经网络框架所提供的训练接口中,触发对加载后的目标神经网络模型进行模型训练,生成符合第三方神经网络框架的格式规范的第三方训练结果。这样,用户终端不需要关注不同的第三方神经网络框架对训练集数据进行训练的要求,只需要关注训练请求的统一格式规范,用户终端的使用者就能在较短的时间使用不同的第三方神经网络框架进行训练,降低出错率,减少对第三方神经网络框架熟悉和对接的时间,从而降低时间成本,提高工作效率。
在一个实施例中,第三方神经网络框架中部署第三方神经网络框架支持的至少一种第一神经网络模型;系统框架中部署第二神经网络模型;第二神经网络模型所属的模型类型,是第三方神经网络框架不支持的模型类型;从系统框架和基于系统框架运行的多个第三方神经网络框架中,确定与模型类型对应的目标框架包括:确定与每个第三方神经网络框架相关联的第一模型类型集合;确定与系统框架相关联的第二模型类型集合;从第一模型类型集合和多个第二模型类型集合中,确定目标模型类型所属的模型类型集合;所属的模型类型集合为第一模型类型集合和多个第二模型类型集合中的其中一种;将所属的模型类型集合所对应的框架,确定为目标框架。
其中,第一模型类型集合是第一神经网络模型的类型的集合;第二模型类型集合是第二神经网络模型的类型的集合。
在一个实施例中,每个第三方神经网络框架各自对应一个第一模型类型集合,系统框架对应一个第二模型类型集合。可以理解,通过模型类型集合和框架的对应关系,服务器确认目标模型类型所在的模型类型集合,就能确认目标模型类型所属的目标框架。
具体地,服务器确定与每个第三方神经网络框架相关联的第一模型类型集合;确定与系统框架相关联的第二模型类型集合。服务器从第一模型类型集合的多个第一神经网络模型的类型中,确认是否与目标模型类型相同;若不相同,则从第二模型类型集合的多个第二神经网络模型的类型中,确认是否与目标模型类型相同,从而服务器确认到目标模型类型所在的模型类型集合。服务器再将模型类型集合所对应的第三方神经网络框架或系统框架确认为目标框架。
在本实施例中,第三方神经网络框架中部署第三方神经网络框架支持的至少一种第一神经网络模型;系统框架中部署第二神经网络模型;第二神经网络模型所属的模型类型,是第三方神经网络框架不支持的模型类型。服务器根据第一、二模型类型集合来确认目标神经网络模型所属的目标框架,从而根据目标框架的加载接口来加载目标神经网络模型。这样,服务器既可以支持第三方神经网络框架所部署的第一神经网络模型,也可以支持系统框架所部署的第二神经网络类型,提高了服务器的兼容性。用户终端的使用者不需要关注兼容问题,就可以使用不同种类的神经网络模型,从而降低时间成本,提高工作效率。
在一个实施例中,从集成列表中,确认需要运行的各个第三方神经网络模型框架;集成列表包括系统框架所集成的第三方神经网络模型框架的启动信息;基于启动信息创建多个子进程;多个子进程用于运行各个第三方神经网络模型框架;若接收到针对加载后的目标神经网络模型的处理请求,则基于加载后的目标神经网络模型进行相应处理,生成符合预设定义规范的回复报文包括:若目标框架为第三方神经网络模型框架,若接收到针对加载后的目标神经网络模型的计算请求或加载请求或训练请求或卸载请求,则对应地通过调用对第三方神经网络框架提供的计算接口或加载接口或训练接口或卸载接口的封装接口,触发第三方神经网络框架所加载的目标神经网络模型进行相应处理,生成符合预设定义规范的回复报文。
在一个实施例中,集成列表是可配置的。
在本实施中,通过集成列表来确认需要启动的第三方神经网络框架,使得第三方神经网络框架的启动可配置化,并且在扩展新的第三方神经网络框架时,封装第三方神经网络框架的接口后就可以实现对第三方神经网络框架的接口的调用。这样,基于可配置的用于启动第三方神经网络框架的集成列表和对第三方神经网络框架的接口的封装,以使得系统框架对第三方神经网络框架的集成是可扩展的。
在一个实施例中,如图3所示,提供了基于神经网络模型的处理方法的原理示意图。具体地,服务器所使用的系统框架可以是web框架,第三方神经网络框架1可以是Tensorflow框架,第三方神经网络框架2可以是PyTorch框架。系统框架运行后,拉起第三方神经网络框架1和第三方神经网络框架2所在的子进程。系统框架接收到不同用户终端发送的加载请求后,触发系统框架加载多个神经网络模型11至神经网络模型1n,第三方神经网络框架1加载神经网络模型21至神经网络模型2n,第三方神经网络框架2加载神经网络模型31至神经网络模型3n。其中,神经网络模型11可以A用户所使用的是pickle模型,神经网络模型1n可以B用户所使用的是pickle模型(基于Python提供的pickle模块实现的模型)。神经网络模型21可以是C用户所使用的Tensorflow模型,神经网络模型2n可以是D用户所使用的Tensorflow模型。神经网络模型31可以是E用户所使用的PyTorch模型,神经网络模型3n可以是F用户所使用的PyTorch模型。系统框架接收到不同用户终端发送的计算、训练或者维护请求时,确认各请求所对应的目标神经网络模型和目标神经网络模型所属的目标框架,选择目标神经网络模型所提供的接口或者第三方神经网络框架提供的接口来进行处理。服务器还按照不同的第三方神经网络框架的接口规范要求,对处理请求进行转换,以使得第三方神经网络框架能够识别处理请求所指示的信息。服务器还按照不同第三方神经网络框架的输出格式,对第三方神经网络框架输出的不同格式的处理结果进行转换,生成统一预设定义规范的回复报文,以使得终端能够识别回复报文。服务器还设置了镜像目录,用于挂载不同的神经网络模型的模型文件。服务器通过应用容器进行部署,其中,应用容器可以是docker(一个开源的应用容器引擎)容器,服务器在部署上还可以使用物理机、虚拟机等替代容器化部署。服务器所使用的镜像可以是与docker容器相关的docker镜像。
应该理解的是,虽然本申请部分实施例中的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的基于神经网络模型的处理方法的基于神经网络模型的处理装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个基于神经网络模型的处理装置实施例中的具体限定可以参见上文中对于基于神经网络模型的处理方法的限定,在此不再赘述。
在一个实施例中,如图4所示,提供了一种基于神经网络模型的处理装置400,包括:模型确认模块402、模型加载模块404和模型使用模块406,其中:
模型确认模块402,用于接收用户终端发送的针对目标神经网络模型的加载请求,获取加载请求中携带的目标神经网络模型的目标模型类型和版本信息;从系统框架和基于系统框架运行的多个第三方神经网络框架中,确定与目标模型类型对应的目标框架;目标框架中部署至少一个神经网络模型。
模型加载模块404,用于调用目标框架的加载接口,以基于加载接口加载符合版本信息的目标神经网络模型。
模型使用模块406,用于若接收到针对加载后的目标神经网络模型的处理请求,则基于加载后的目标神经网络模型进行相应处理,生成符合预设定义规范的回复报文;向用户终端返回回复报文。
在一个实施例中,模型使用模块406还用于在目标框架为系统框架的情况下,若接收到针对加载后的目标神经网络模型的处理请求,则通过加载后的目标神经网络模型所提供的接口对处理请求进行处理,得到符合预设格式规范的处理结果;基于处理结果生成回复报文。
在一个实施例中,模型使用模块406还用于在目标框架为第三方神经网络框架的情况下,若接收到针对加载后的目标神经网络模型的处理请求,则以第三方神经网络框架所要求的接口规范将处理请求转换为第三方处理请求;通过第三方神经网络框架所提供的接口处理第三方处理请求,生成符合第三方神经网络框架的输出格式的第三方处理结果;对第三方处理结果按照预设的转换规则进行转换,生成符合预设格式规范的回复报文。
在一个实施例中,处理请求为计算请求;第三方处理请求为第三方计算请求;第三方处理结果为第三方计算结果;模型使用模块406还用于从第三方计算请求中获取用于计算的输入数据;按照第三方神经网络框架所要求的接口规范,将输入数据输入到第三方神经网络框架所提供的计算接口中,触发加载后的目标神经网络模型进行计算,生成符合第三方神经网络框架的输出格式的第三方计算结果。
在一个实施例中,处理请求为训练请求;第三方处理请求为第三方训练请求;第三方处理结果为第三方训练结果;模型使用模块406还用于基于训练请求获取训练数据;按照第三方神经网络框架所要求的接口规范,将训练数据输入到第三方神经网络框架所提供的训练接口中,触发对加载后的目标神经网络模型进行模型训练,生成符合第三方神经网络框架的格式规范的第三方训练结果。
在一个实施例中,如图5所示,提供了一种目标框架获取模块500,包括:集合确认模块502和框架确认模块504,其中:
集合确认模块502,用于确定与每个第三方神经网络框架相关联的第一模型类型集合;确定与系统框架相关联的第二模型类型集合;从第一模型类型集合和多个第二模型类型集合中,确定目标模型类型所属的模型类型集合;所属的模型类型集合为第一模型类型集合和多个第二模型类型集合中的其中一种。
框架确认模块504,用于将所属的模型类型集合所对应的框架,确定为目标框架。
上述基于神经网络模型的处理装置,通过接收用户终端发送的针对目标神经网络模型的加载请求,获取加载请求中携带的目标神经网络模型的目标模型类型和版本信息。从系统框架和基于系统框架运行的多个第三方神经网络框架中,确定与目标模型类型对应的目标框架;目标框架中部署至少一个神经网络模型。服务器调用目标框架的加载接口,以基于加载接口加载符合版本信息的目标神经网络模型。这样,用户终端就可以直接选择所要加载的神经网络模型,而不需要用户亲自部署加载。若接收到针对加载后的目标神经网络模型的处理请求,则基于加载后的目标神经网络模型进行相应处理,生成符合预设定义规范的回复报文;向用户终端返回回复报文。这样,用户终端所收到的回复报文的定义规范是统一的,不需要关注不同神经网络模型输出的不同格式要求。因此,用户只需要编写统一格式规范的收发报文,不需要熟悉和对接不同的第三方神经网络框架,就能完成对神经神经网络模型的部署和使用,从而降低了时间成本。
关于上述基于神经网络模型的处理装置的具体限定可以参见上文中对于上述基于神经网络模型的处理方法的限定,在此不再赘述。上述基于神经网络模型的处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储模型文件数据和模型训练集数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于神经网络模型的处理方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。