神经网络模型部署方法及装置、电子设备和存储介质制造方法及图纸

技术编号:24355548 阅读:32 留言:0更新日期:2020-06-03 02:28
本公开涉及一种神经网络模型部署方法及装置、电子设备和存储介质,所述方法包括:加载神经网络模型;为所述神经网络模型配置初始化信息,所述初始化信息包括为神经网络模型的运行和数据存储分配的资源;基于所述神经网络模型的网络结构信息以及所述初始化信息,将所述神经网络模型转换为预设编程语言形式。本公开实施例可实现应用平台的扩展能力,提高神经网络模型的适用性。

Neural network model deployment method and device, electronic equipment and storage medium

【技术实现步骤摘要】
神经网络模型部署方法及装置、电子设备和存储介质
本公开涉及人工智能
,尤其涉及一种神经网络模型部署方法及装置、电子设备和存储介质。
技术介绍
深度学习等神经网络在具体应用时,需要各个方面的工程技术协作。模型的部署方案关系着模型是如何被程序所使用的,它在整个神经网络学习应用场景中起着十分关键的作用。目前,神经网络的训练与部署面对的环境是不同的,神经网络的部署要求更加高效的性能。
技术实现思路
本公开提出了一种神经网络模型部署的技术方案。根据本公开的一方面,提供了一种神经网络模型部署方法,包括:加载神经网络模型;为所述神经网络模型配置初始化信息,所述初始化信息包括为神经网络模型的运行和数据存储分配的资源;基于所述神经网络模型的网络结构信息以及所述初始化信息,将所述神经网络模型转换为预设编程语言形式。在一些可能的实施方式中,所述基于所述神经网络模型的网络结构信息以及所述初始化信息,将所述神经网络模型转换为预设编程语言形式,包括:确定所述神经网络模型内的网络层匹配的基础算子,所述基础算子由预设编程语言表示;基于所述神经网络模型的网络结构信息、所述初始化信息和所述基础算子,将所述神经网络模型转换为所述预设编程语言的形式。在一些可能的实施方式中,所述确定所述神经网络模型内的网络层匹配的基础算子,包括:基于所述神经网络模型内的所述网络层的类型,确定与所述类型对应的至少一个第一基础算子;从所述至少一个第一基础算子中选择出符合预设要求的第一基础算子,并将选择出的所述第一基础算子确定为与所述网络层匹配的所述基础算子。在一些可能的实施方式中,所述从所述至少一个第一基础算子中选择出符合预设要求的第一基础算子,包括以下方式中的至少一种:根据所述神经网络模型的所述网络层的参数,从所述第一基础算子中选择出符合所述预设要求的第一基础算子;运行所述神经网络模型,基于所述至少一个第一基础算子的运行参数选择出符合所述预设要求的第一基础算子。在一些可能的实施方式中,所述预设要求包括:运行时间最短和/或占用内存最小。在一些可能的实施方式中,所述基于所述神经网络模型的网络结构信息、所述初始化信息和所述基础算子,将所述神经网络模型转换为所述预设编程语言的形式,包括:利用所述初始化信息中包括的资源,运行所述神经网络模型;确定运行所述神经网络模型的过程中的第一类数据以及第二类数据,所述第一类数据包括所述神经网络模型中各网络层的结构以及初始权重,所述第二类数据包括各网络层经过优化后的权重;将所述第一类数据配置为全局只读数据,以及构建表示所述第二类数据的第一结构体,所述第一结构体包括所述第二类数据与所述基础算子对应的输入指针和输出指针;编译形成由所述第一结构体作为参数的推理函数,并将所述基础算子的调用方法写入所述推理函数;生成所述推理函数的输入接口和输出接口。在一些可能的实施方式中,所述方法还包括:获取输入数据;利用所述预设编程语言形式的所述神经网络模型对所述输入数据进行处理,得到预测结果。在一些可能的实施方式中,所述神经网络模型包括特征提取神经网络模型、分类神经网络模型以及目标检测神经网络模型中的至少一种。根据本公开的第二方面,提供了一种神经网络模型部署装置,其包括:加载模块,用于加载神经网络模型;配置模块,用于为所述神经网络模型配置初始化信息,所述初始化信息包括为神经网络模型的运行和数据存储分配的资源;转换模块,用于基于所述神经网络模型的网络结构信息以及所述初始化信息,将所述神经网络模型转换为预设编程语言形式。在一些可能的实施方式中,所述转换模块还用于确定所述神经网络模型内的网络层匹配的基础算子,所述基础算子由预设编程语言表示;以及基于所述神经网络模型的网络结构信息、所述初始化信息和所述基础算子,将所述神经网络模型转换为所述预设编程语言的形式。在一些可能的实施方式中,所述转换模块还用于基于所述神经网络模型内的所述网络层的类型,确定与所述类型对应的至少一个第一基础算子;以及从所述至少一个第一基础算子中选择出符合预设要求的第一基础算子,并将选择出的所述第一基础算子确定为与所述网络层匹配的所述基础算子。在一些可能的实施方式中,所述转换模块还用于通过以下方式中的至少一种方式从所述至少一个第一基础算子中选择出符合预设要求的第一基础算子:根据所述神经网络模型的所述网络层的参数,从所述第一基础算子中选择出符合所述预设要求的第一基础算子;运行所述神经网络模型,基于所述至少一个第一基础算子的运行参数选择出符合所述预设要求的第一基础算子。在一些可能的实施方式中,所述预设要求包括:运行时间最短和/或占用内存最小。在一些可能的实施方式中,所述转换模块还用于利用所述初始化信息中包括的资源,运行所述神经网络模型;确定运行所述神经网络模型的过程中的第一类数据以及第二类数据,所述第一类数据包括所述神经网络模型中各网络层的结构以及初始权重,所述第二类数据包括各网络层经过优化后的权重;将所述第一类数据配置为全局只读数据,以及构建表示所述第二类数据的第一结构体,所述第一结构体包括所述第二类数据与所述基础算子对应的输入指针和输出指针;编译形成由所述第一结构体作为参数的推理函数,并将所述基础算子的调用方法写入所述推理函数;生成所述推理函数的输入接口和输出接口。在一些可能的实施方式中,所述装置还包括:获取模块,用于获取输入数据;预测模块,用于利用所述预设编程语言形式的所述神经网络模型对所述输入数据进行处理,得到预测结果。在一些可能的实施方式中,所述神经网络模型包括特征提取神经网络模型、分类神经网络模型以及目标检测神经网络模型中的至少一种。根据本公开的第三方面,提供了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为调用所述存储器存储的指令,以执行第一方面中任意一项所述的方法。根据本公开的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现第一方面中任意一项所述的方法。在本公开实施例中,在将神经网络模型部署到应用平台的过程中,可以将首先加载神经网络模型,并基于为神经网络配置初始化信息,将神经网络模型转换为预设编程语言形式,即生成预设编程语言形式的代码程序。通过上述实施例的配置,可以使得不支持神经网络文件读取的平台通过生成与神经网络模型对应的代码的形式,应用神经网络模型,增加平台的可扩展性和应用性能,同时代码的转换不需要额外的时间,在配置初始化信息的过程中可以生成对应的代码,节省网络部署时间。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。根据下面参考附图对示例性实施例的详细说本文档来自技高网...

【技术保护点】
1.一种神经网络模型部署方法,其特征在于,包括:/n加载神经网络模型;/n为所述神经网络模型配置初始化信息,所述初始化信息包括为神经网络模型的运行和数据存储分配的资源;/n基于所述神经网络模型的网络结构信息以及所述初始化信息,将所述神经网络模型转换为预设编程语言形式。/n

【技术特征摘要】
1.一种神经网络模型部署方法,其特征在于,包括:
加载神经网络模型;
为所述神经网络模型配置初始化信息,所述初始化信息包括为神经网络模型的运行和数据存储分配的资源;
基于所述神经网络模型的网络结构信息以及所述初始化信息,将所述神经网络模型转换为预设编程语言形式。


2.根据权利要求1所述的方法,其特征在于,所述基于所述神经网络模型的网络结构信息以及所述初始化信息,将所述神经网络模型转换为预设编程语言形式,包括:
确定所述神经网络模型内的网络层匹配的基础算子,所述基础算子由预设编程语言表示;
基于所述神经网络模型的网络结构信息、所述初始化信息和所述基础算子,将所述神经网络模型转换为所述预设编程语言的形式。


3.根据权利要求2所述的方法,其特征在于,所述确定所述神经网络模型内的网络层匹配的基础算子,包括:
基于所述神经网络模型内的所述网络层的类型,确定与所述类型对应的至少一个第一基础算子;
从所述至少一个第一基础算子中选择出符合预设要求的第一基础算子,并将选择出的所述第一基础算子确定为与所述网络层匹配的所述基础算子。


4.根据权利要求3所述的方法,其特征在于,所述从所述至少一个第一基础算子中选择出符合预设要求的第一基础算子,包括以下方式中的至少一种:
根据所述神经网络模型的所述网络层的参数,从所述第一基础算子中选择出符合所述预设要求的第一基础算子;
运行所述神经网络模型,基于所述至少一个第一基础算子的运行参数选择出符合所述预设要求的第一基础算子。


5.根据权利要求3或4所述的方法,其特征在于,所述预设要求包括:运行时间最短和/或占用内存最小。


6.根据权利要求2-5中任意一项所述的方法,其特征在于,所述基于所述神经网络模型的网络结构信息、所述初始化信息和所述基础算子,将所述神经网络模型转换为所述预设编程语言的形式,包括:
利用所述初始化信息中包括的资源,运行所述神经网络模型;
确定运行所述神经网络模型的过程中的第一类数据以及第二类数据,所述第一类数据包括所述神经网络模型中各网络层的结构以及初始权重,所述第二类数据包括各网络层经过优化后的权重;
将所述第一类数据配置为全局只读数据,以及构建表示所述第二类数据的第一结构体,所述第一结构体包括所述第二类数据与所述基础算子对应的输入指针和输出指针;
编译形成由所述第一结构体作为参数的推理函数,并将所述基础算子的调用方法写入所述推理函数;
生成所述推理函数的输入接口和输出接口。


7.根据权利要求1-6中任意一项所述的方法,其特征在于,所述方法还包括:
获取输入数据;
利用所述预设编程语言形式的所述神经网络模型对所述输入数据进行处理,得到预测结果。


8.根据权利要求1-7中任意一项所述的方法,其特征在于,所述神经网络模型包括特征提取神经网络模型、分类神经网络模型以及目标检测神经网络模型中的至少一种。


9.一种神经网络模型部署装置,其特征在于,包括:
加载模块,用于加载神经网络模型;
配置模块,用于为所...

【专利技术属性】
技术研发人员:李南
申请(专利权)人:上海商汤智能科技有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1