本发明涉及人工智能模型的技术领域,特别是涉及一种高效的深度学习后端模型部署框架。
背景技术:
众所周知,近几年人工智能的飞速发展,模型也越来越大、越来越多,许多与识别、检测等相关的成套业务可以部署到服务器上,但是模型要求也越来越高,速度与精度的追求也涌现出许多优秀的方案和产品。而人工智能模型的高效运行是人工智能产品中繁琐且重要的环节,为了提高模型的效率发明了一种高效的深度学习模型部署框架,该框架使用java、c++开发并部署模型。目前在人工智能领域中,存在许多优秀的深度学习模型部署框架,如tensorflow、mxnet等,但该类的深度学习模型部署框架更多的是考虑内部使用,因此无法适用其它框架的模型;现有的深度学习模型部署框架仍处于开发和优化阶段,将其用于产品的开发可能存在隐患且不利于后期维护;且现有的模型运行效率较低。
技术实现要素:
为解决上述技术问题,本发明提供一种融合最优算法,能够支持多框架模型训练,模型部署灵活方便,便于维护管理的高效的深度学习后端模型部署框架。
本发明的一种高效的深度学习后端模型部署框架,包括算法模块、优化模块、转换模块、加速模块、算法库模块和部署模块,算法模块、优化模块、转换模块、加速模块、算法库模块和部署模块为呈金字塔结构的关系,算法模块为框架提供基础的算法,优化模块在模型框架的基础上很少损失精度的情况下加速模型,转换模块统一模型结构,加速模块为整个深度学习模型进行第二次封装加速,算法库模块为模型与后台提供对接桥梁,部署模块用于部署模型处理数据及逻辑、向外提供请求。
本发明的一种高效的深度学习后端模型部署框架,算法模块包括卷积、池化、全连接、图像处理等算法,算法模块使用python、c++编写并训练模型作为深度学习框架的最底层,为整个深度学习框架提供算法基础。
本发明的一种高效的深度学习后端模型部署框架,优化模块根据模型大小、精度及运行速度进行模型优化。
本发明的一种高效的深度学习后端模型部署框架,转换模块根据模型训练框架编写支持onnx导出代码,统一模型文件,优化模型。
本发明的一种高效的深度学习后端模型部署框架,加速模块通过tensorrt对onnx模型文件进行包装加速。
本发明的一种高效的深度学习后端模型部署框架,算法库模块记录和实现了目前使用热门的数据处理方式,算法库模块支持java、c++端调用,同时也支持opencv预处理,优化处理后期结果。
本发明的一种高效的深度学习后端模型部署框架,部署模块负责进行算法库的调用,service部署、高并发处理、日志处理、异常处理、逻辑处理、向外扩展等。
本发明的一种高效的深度学习后端模型部署框架,整个深度学习框架以算法模块为基础,算法库模块为核心,各模块间相互独立、互不影响。
与现有技术相比本发明的有益效果为:以当前市面上最优的算法作为基础,以算法库文件为纽带,将算法以指定顺序执行,实现了深度学习主干网络在服务器上的加速运行,实现了深度学习模型由python端部署至服务器的功能,同时模型模块实现了实用模型算法的迁移检测、识别和系统部署,是深度学习模型部署至服务器的巨大创新发明,在实际开发部署中,开发人员只需要根据自己的模型部署到任何服务器,降低了深度学习模型部署的难度,提高了开发人员的工作效率以及深度学习模型算法的落地能力,模型部署采用onnx文件,当模型网络结构发生变化时,只需要相应的修改onnx文件即可完成重新部署。
附图说明
图1是本发明框架各模块间关系及结构示意图;
图2是本发明框架的使用流程示意图;
附图中标记:1、算法模块;2、优化模块;3、转换模块;4、加速模块;5、算法库模块;6、部署模块。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
如图1至图2所示,本发明的一种高效的深度学习后端模型部署框架,包括算法模块1、优化模块2、转换模块3、加速模块4、算法库模块5和部署模块6,算法模块1、优化模块2、转换模块3、加速模块4、算法库模块5和部署模块6为呈金字塔结构的关系,算法模块1收集当下通用算法及深度学习中最优的基础算法、图像处理算法及神经网络算法,并将其编写为基础算法作为整个深度学习框架的基础,使用对用的深度学习框架进行模型训练分为配置信息、网络结构、训练参数和模型性能四部分:
配置信息包括网络输入尺寸和网络输出尺寸;
网络结构包括卷积层信息、池化层信息、全连接层信息、batchnormalization层信息、separable卷积层信息、depthwiseconvolution卷积层信息、激活函数信息、残差网络结构信息、inception网络结构信息;
训练参数包括学习率、优化器算法、优化器参数、损失函数信息、正则函数、正则系数、批次信息、训练次数、随机种子;
模型性能包括训练集总样本数、训练集各类样本数、验证集总样本数、验证集各类样本数、模型总map、模型各类别map;
根据框架使用情况及模型情况进行int8量化、剪枝等操作,编写一键转换模型,将pth、h5、pb等模型文件统一输出为onnx文件,统一加载及优化,使用tensorrt包裹onnx文件,进行nvida硬件加速,在c/c++端,编写程序调用基本数字图像处理库,封装模型预处理及输出处理,优化处理速度,提供javaapi、c/c++api及http接口,在java端,通过部署模型,调用c库,优化并发处理、提供api接口及http接口、处理log日志、提高接口性能等。
本发明的一种高效的深度学习后端模型部署框架,其在工作时,在完成上述动作之前,首先将移动到用户需要的位置。
本发明的一种高效的深度学习后端模型部署框架,以上所述所有部件的安装方式、连接方式或设置方式均为常见机械方式,并且其所有部件的具体结构、型号和系数指标均为其自带技术,只要能够达成其有益效果的均可进行实施,故不在多加赘述。
本发明的一种高效的深度学习后端模型部署框架,在未作相反说明的情况下,“上下左右、前后内外以及垂直水平”等包含在术语中的方位词仅代表该术语在常规使用状态下的方位,或为本领域技术人员理解的俗称,而不应视为对该术语的限制,与此同时,“第一”、“第二”和“第三”等数列名词不代表具体的数量及顺序,仅仅是用于名称的区分,而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变型,这些改进和变型也应视为本发明的保护范围。
1.一种高效的深度学习后端模型部署框架,其特征在于,包括算法模块(1)、优化模块(2)、转换模块(3)、加速模块(4)、算法库模块(5)和部署模块(6),算法模块(1)、优化模块(2)、转换模块(3)、加速模块(4)、算法库模块(5)和部署模块(6)为呈金字塔结构的关系,算法模块(1)为框架提供基础的算法,优化模块(2)在模型框架的基础上很少损失精度的情况下加速模型,转换模块(3)统一模型结构,加速模块(4)为整个深度学习模型进行第二次封装加速,算法库模块(5)为模型与后台提供对接桥梁,部署模块(6)用于部署模型处理数据及逻辑、向外提供请求。
2.如权利要求1所述的一种高效的深度学习后端模型部署框架,其特征在于,算法模块(1)包括卷积、池化、全连接、图像处理等算法,算法模块(1)使用python、c++编写并训练模型作为深度学习框架的最底层,为整个深度学习框架提供算法基础。
3.如权利要求2所述的一种高效的深度学习后端模型部署框架,其特征在于,优化模块(2)根据模型大小、精度及运行速度进行模型优化。
4.如权利要求3所述的一种高效的深度学习后端模型部署框架,其特征在于,转换模块(3)根据模型训练框架编写支持onnx导出代码,统一模型文件,优化模型。
5.如权利要求4所述的一种高效的深度学习后端模型部署框架,其特征在于,加速模块(4)通过tensorrt对onnx模型文件进行包装加速。
6.如权利要求5所述的一种高效的深度学习后端模型部署框架,其特征在于,算法库模块(5)记录和实现了目前使用热门的数据处理方式,算法库模块(5)支持java、c++端调用,同时也支持opencv预处理,优化处理后期结果。
7.如权利要求6所述的一种高效的深度学习后端模型部署框架,其特征在于,部署模块(6)负责进行算法库的调用,service部署、高并发处理、日志处理、异常处理、逻辑处理、向外扩展等。
8.如权利要求7所述的一种高效的深度学习后端模型部署框架,其特征在于,整个深度学习框架以算法模块(1)为基础,算法库模块(5)为核心,各模块间相互独立、互不影响。