CN111432022A - 模型部署方法、服务器和计算机可读存储介质 - Google Patents
模型部署方法、服务器和计算机可读存储介质 Download PDFInfo
- Publication number
- CN111432022A CN111432022A CN202010266792.2A CN202010266792A CN111432022A CN 111432022 A CN111432022 A CN 111432022A CN 202010266792 A CN202010266792 A CN 202010266792A CN 111432022 A CN111432022 A CN 111432022A
- Authority
- CN
- China
- Prior art keywords
- model
- server
- neural network
- trained neural
- network model
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/145—Network analysis or design involving simulating, designing, planning or modelling of a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Medical Informatics (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种模型部署方法、服务器和计算机可读存储介质,其中,模型部署方法包括:接收所需任务的数据集,根据数据集进行模型训练,得到训练后的神经网络模型;在服务器上部署tensorflow serving服务框架;基于tensorflow serving服务框架,将训练后的神经网络模型部署在服务器上;响应参数设定指令,对tensorflow serving服务框架进行参数设定;响应并发服务请求,基于参数设定后的所述tensorflow serving服务框架调用训练后的神经网络模型,由于tensorflow serving服务框架的队列机制使得GPU无需等待IO处理,因此利用率高,且tensorflow serving服务框架可自动合并请求成批处理,可进一步提升GPU利用率。
Description
技术领域
本发明涉及服务器控制技术领域,具体而言,涉及一种模型部署方法、服务器和计算机可读存储介质。
背景技术
站房是整个工程监控系统的核心区域,大量的计算分析部署在这里,为防止闲杂人等随意进入及系统更新维护责任到人,保证站房系统安全及系统的有效管理,需要对监控站房的上百路甚至上千路摄像头进行实时行人检测。
相关技术方案中,在站房模型训练完之后,需要对其部署供前方服务器调用,常用的部署方案是将tensorflow(tensorflow ensorflow是一个基于数据流编程(dataflowprogramming)的符号数学系统,被广泛应用于各类机器学习(machine learning)算法的编程实现)训练好的ckpt格式的模型冻结转成pb格式的模型,然后利用flask框架进行直接部署,在此方案中,flask进程数与GPU(Graphics Processing Unit,图形处理器)数量绑定,IO(Input/Output,即输入/输出)期间的GPU利用率低,只能处理一定数量的并发请求且服务不够稳定。
发明内容
本发明旨在至少解决现有技术或相关技术中存在的技术问题之一。
为此,本发明的第一方面在于,提供了一种模型部署方法。
本发明的第二方面在于,提供了一种服务器。
本发明的第三方面在于,提供了一种计算机可读存储介质。
有鉴于此,本发明的第一方面,提供了一种模型部署方法,模型部署方法应用于服务器上,模型部署方法包括:接收所需任务的数据集,根据数据集进行模型训练,得到训练后的神经网络模型;在服务器上部署tensorflow serving服务框架;基于tensorflowserving服务框架,将训练后的神经网络模型部署在服务器上;响应参数设定指令,对tensorflow serving服务框架进行参数设定;响应并发服务请求,基于参数设定后的tensorflowserving服务框架调用训练后的神经网络模型。
本发明提出了一种模型部署方法,在根据所需任务的数据集进行训练,并得到训练后的神经网络模型后,将训练后的神经网络模型部署在服务器上,具体地,将模型部署在安装有tensorflow serving服务框架的服务器上,由于tensorflow serving的队列机制使得GPU无需等待IO处理,因此GPU利用率高,且tensorflow serving可自动合并请求成批处理,可进一步提升GPU利用率。
另外,本发明提供的上述技术方案中的模型部署方法还可以具有如下附加技术特征:
在上述技术方案中,在接收所需任务的数据集,根据数据集进行模型训练,得到训练后的神经网络模型的步骤之后,在服务器上部署tensorflowserving服务框架的步骤之前,还包括:确定训练后的神经网络模型的格式与tensorflow serving服务框架限定的格式不一致,对训练后的神经网络模型进行格式转换。
在该技术方案中,通过判断训练后的神经网络模型的格式与tensorflowserving服务框架限定的格式是否一致,并且在不一致的情况下,对训练后的神经网络模型进行格式转换,确保训练好的模型可以部署在安装有tensorflow serving服务框架的服务器上,同时,格式转化的判断过程由服务器来做,减少了人工的参与,便于降低人工成本。
在上述任一技术方案中,在接收所需任务的数据集,根据数据集进行模型训练,得到训练后的神经网络模型的步骤,还包括:记录训练后的神经网络模型的输入张量名称和输出张量名称,在对训练后的神经网络模型进行格式转换的步骤之后,将格式转换后的输入和输出与训练后的神经网络模型的输入张量名称和输出张量名称进行对应。
在该技术方案中,在接收所需任务的数据集,根据数据集进行模型训练,得到训练后的神经网络模型的步骤,还包括:记录训练后的神经网络模型的输入张量名称和输出张量名称,以便在训练后的神经网络模型进行格式转换后,可以将格式转换后的输入和输出与训练后的神经网络模型的输入张量名称和输出张量名称进行对应,以减少在进行格式转换过程中对模型的影响,进而提高运行过程中的可靠性。
在上述任一技术方案中,响应参数设定指令,对tensorflow serving服务框架进行参数设定的步骤,具体包括接收并发服务请求的配置信息,训练后的神经网络模型的模型信息以及服务器的硬件信息;根据并发服务请求的配置信息,训练后的神经网络模型的模型信息以及服务器的硬件信息对tensorflow serving服务框架进行参数设定。
在该技术方案中,由于tensorflow serving服务框架的队列机制使得GPU无需等待IO处理,因此,服务器在运行过程中,可以与并发服务请求的配置信息、训练后的神经网络模型的模型信息以及服务器的硬件信息相关,因此,通过并发服务请求的配置信息、训练后的神经网络模型的模型信息以及服务器的硬件信息对tensorflow serving服务框架进行设定以确保服务器在运行过程中处于最佳的运行状态。
在上述任一技术方案中,并发服务请求的配置信息包括:并发服务请求的数量;训练后的神经网络模型的模型信息包括:模型的存储规格;服务器的硬件信息包括:图形处理器的数量和图形处理器显存规格。
在上述任一技术方案中,还包括:部署Flask;根据Flask对并发服务请求的进程数进行设定。
在该技术方案中,通过在服务器上部署Flask,其中,Flask是一个使用Python(是一种跨平台的计算机程序设计语言)编写的轻量级Web(World Wide Web,全球广域网)应用框架,通过部署的Flask对并发服务调用(即本文中涉及到的并发服务请求)所需进程数进行合理配置,提高服务器运行的稳定性,同时,提供的应用框架可以对脚本的撰写提供服务,使得服务器与用户之间可以进行交互,进而实现对并发服务调用所需进程数进行合理配置,提高服务器运行的可靠性。
在上述任一技术方案中,服务器为Gunicorn服务器;和/或服务器还部署有Nginx,其中,Nginx向发出并发服务请求的客户端提供服务。
在该技术方案中,服务器为Gunicorn服务器,在服务器为Gunicorn服务器时,其中,Gunicorn服务器可以理解为是一个Python WSGI(Python WebServer GatewayInterface,Web服务器网关接口,是为Python语言定义的Web服务器和Web应用程序或框架之间的一种简单而通用的接口)UNIX(Unix是20世纪70年代初出现的一个操作系统)的HTTP(超文本传输协议)服务器,这是一个pre-fork worker的模型,从Ruby的独角兽(Unicorn)项目移植,该Gunicorn服务器大致与各种Web框架兼容,只需非常简单的执行,轻量级的资源消耗,以及相当迅速,在服务器为Gunicorn服务器时,便于实现不同框架之间的兼容性,提高了服务器的稳定性。
而通过在服务器还部署Nginx,其中,Nginx(engine x)是一个高性能的HTTP和反向代理web服务器,在该技术方案中,由于Nginx具有负载均衡、拦截静态请求、高并发等许多功能,通过设置Nginx向发出并发服务请求的客户端提供服务,可以实现负载均衡,确保在并发服务调用的数量较高时,确保服务调用的稳定性。
在上述任一技术方案中,还包括:响应调用测试指令,向目标终端发送测试结果。
在该技术方案中,可以在目标终端上利用locust软件(一种性能测试工具)模拟并发请求进行服务调用测试,也可以采用其他性能测试软件进行测试,以减少测试时对本台服务器资源的占用,确保测试结果可以准确表征服务器的实际情况,提高了测试结果的可靠性。
在本发明的第二方面,提出了一种服务器,包括:存储器,其上存储有计算机程序;控制器,控制器执行计算机程序实现如上述任一项的模型部署方法的步骤。
本发明提出了一种服务器,其中,服务器包括:存储器和控制器,控制器执行计算机程序实现如上述任一项的模型部署方法的步骤,因此,服务器具有上述任一项模型部署方法的全部有益技术效果,在此,不再赘述。
在本发明的第三方面,提出了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被执行时,实现如上述任一项的模型部署方法的步骤,因此,计算机可读存储介质具有上述任一项模型部署方法的全部有益技术效果,在此,不再赘述。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1示出了根据本发明一个实施例的模型部署方法的流程示意图;
图2示出了根据本发明一个实施例的响应参数设定指令,对tensorflowserving服务框架进行参数设定的流程示意图;
图3示出了根据本发明一个实施例的模型部署方法的流程示意图;
图4示出了根据本发明一个实施例的服务器的示意框图。
具体实施方式
为了能够更清楚地理解本发明的上述方面、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
名词解析:
1)Nginx作为一个高性能Web服务器具有负载均衡、拦截静态请求、高并发等许多功能。
2)Gunicorn与各种Web框架兼容,操作简单,轻量级的资源消耗,响应迅速,可配置Gunicorn做生产服务器。
3)Flask是一个python web micro framework,服务所需进程数可自由配置,简洁高效、调试简便,可大幅提升开发效率,利用flask框架可以进行python脚本撰写。
4)tensorflow serving是一个用于机器学习模型serving的高性能开源库。它可以将训练好的机器学习模型部署到线上并充分利用GPU资源,tensorflow serving的队列机制使得GPU无需等待IO处理,因此利用率高,且tensorflow serving可自动合并请求成批处理,可进一步提升GPU利用率。
实施例一
在本发明的一个实施例中,如图1所示,提供了一种模型部署方法,模型部署方法应用于服务器上,模型部署方法包括:
步骤102,接收所需任务的数据集,根据数据集进行模型训练,得到训练后的神经网络模型;
步骤104,在服务器上部署tensorflow serving服务框架;
步骤106,基于tensorflow serving服务框架,将训练后的神经网络模型部署在服务器上;
步骤108,响应参数设定指令,对tensorflow serving服务框架进行参数设定;
步骤110,响应并发服务请求,基于参数设定后的tensorflow serving服务框架调用训练后的神经网络模型。
本发明提出了一种模型部署方法,其中,在根据所需任务的数据集进行训练,并得到训练后的神经网络模型后,将训练后的神经网络模型部署在服务器上,将模型部署在安装有tensorflow serving服务框架的服务器上,由于tensorflow serving服务框架的队列机制使得GPU无需等待IO处理,因此GPU利用率高,且tensorflow serving服务框架可自动合并请求成批处理,可进一步提升GPU利用率。
在其中一个实施例中,如图2所示,响应参数设定指令,对tensorflowserving服务框架进行参数设定的步骤,具体包括:
步骤202,接收并发服务请求的配置信息,训练后的神经网络模型的模型信息以及服务器的硬件信息;
步骤204,根据并发服务请求的配置信息,训练后的神经网络模型的模型信息以及服务器的硬件信息对tensorflow serving服务框架进行参数设定。
在该实施例中,由于tensorflow serving服务框架的队列机制使得GPU无需等待IO处理,因此,服务器在运行过程中,可以与并发服务请求的配置信息、训练后的神经网络模型的模型信息以及服务器的硬件信息相关,因此,通过并发服务请求的配置信息、训练后的神经网络模型的模型信息以及服务器的硬件信息对tensorflow serving服务框架进行设定以确保服务器在运行过程中处于最佳的运行状态。
在上述任一实施例中,并发服务请求的配置信息包括:并发服务请求的数量;训练后的神经网络模型的模型信息包括:模型的存储规格;服务器的硬件信息包括:图形处理器的数量和图形处理器显存规格。
实施例二
在上述任一实施例中,模型部署方法还包括:部署Flask;根据Flask对并发服务请求的进程数进行设定。
在该实施例中,通过在服务器上部署Flask,其中,Flask是一个使用Python(是一种跨平台的计算机程序设计语言)编写的轻量级Web(World Wide Web,全球广域网)应用框架,通过部署的Flask对并发服务调用(即本文中涉及到的并发服务请求)所需进程数进行合理配置,提高服务器运行的稳定性,同时,提供的应用框架可以对脚本的撰写提供服务,使得服务器与用户之间可以进行交互,进而实现对并发服务调用所需进程数进行合理配置,提高服务器运行的可靠性。
在其中一个实施例中,采用Flask对服务进行调用。
实施例三
在上述任一实施例中,服务器为Gunicorn服务器;和/或服务器还部署有Nginx,其中,Nginx向发出并发服务请求的客户端提供服务。
在该实施例中,服务器为Gunicorn服务器,在服务器为Gunicorn服务器时,其中,Gunicorn服务器可以理解为是一个Python WSGI(Python Web Server GatewayInterface,Web服务器网关接口,是为Python语言定义的Web服务器和Web应用程序或框架之间的一种简单而通用的接口)UNIX(Unix是20世纪70年代初出现的一个操作系统)的HTTP(超文本传输协议)服务器,这是一个pre-fork worker的模型,从Ruby的独角兽(Unicorn)项目移植,该Gunicorn服务器大致与各种Web框架兼容,只需非常简单的执行,轻量级的资源消耗,以及相当迅速,在服务器为Gunicorn服务器时,便于实现不同框架之间的兼容性,提高了服务器的稳定性。
而通过在服务器还部署Nginx,其中,Nginx(又称engine x)是一个高性能的HTTP和反向代理web服务器,在该实施例中,由于Nginx具有负载均衡、拦截静态请求、高并发等许多功能,通过设置Nginx向发出并发服务请求的客户端提供服务,可以实现负载均衡,确保在并发服务调用的数量较高时,确保服务调用的稳定性。
在其中一个实施例中,tensorflow serving服务框架采用Docker、APT(二级制安装)和源码编译三种方式中的任意一种进行安装,基于实际的生产环境项目部署和简单性,在该实施例中,采用docker方式进行安装。
在其中一个实施例中,采用pip方式安装tensorflow-serving-api、Flask、Gunicorn,其中,pip是Python包管理工具,该工具提供了对Python包的查找、下载、安装、卸载的功能,通过pip方式进行安装,简化了安装流程,提高了与用户的交互体验。
在其中一个实施例中,采用下载Nginx离线安装包再进行安装的方式实现对Nginx的安装。
实施例四
在上述任一实施例中,接收所需任务的数据集,根据数据集进行模型训练,得到训练后的神经网络模型的步骤之后,在服务器上安装tensorflowserving服务框架的步骤之前,还包括:确定训练后的神经网络模型的格式与tensorflow serving服务框架限定的格式不一致,对训练后的神经网络模型进行格式转换。
在该实施例中,通过判断训练后的神经网络模型的格式与tensorflowserving服务框架限定的格式是否一致,并且在不一致的情况下,对训练后的神经网络模型进行格式转换,确保训练好的模型可以部署在安装有tensorflow serving服务框架的服务器上,同时,格式转化的判断过程由服务器来做,减少了人工的参与,便于降低人工成本。
在上述任一实施例中,在接收所需任务的数据集,根据数据集进行模型训练,得到训练后的神经网络模型的步骤,还包括:记录训练后的神经网络模型的输入张量名称和输出张量名称,在对训练后的神经网络模型进行格式转换的步骤之后,将格式转换后的输入和输出与训练后的神经网络模型的输入张量名称和输出张量名称进行对应。
在该实施例中,在接收所需任务的数据集,根据数据集进行模型训练,得到训练后的神经网络模型的步骤,还包括:记录训练后的神经网络模型的输入张量名称和输出张量名称,以便在训练后的神经网络模型进行格式转换后,可以将格式转换后的输入和输出与训练后的神经网络模型的输入张量名称和输出张量名称进行对应,以减少在进行格式转换过程中对模型的影响,进而提高运行过程中的可靠性。
在其中一个实施例中,还包括:响应调用测试指令,向目标终端发送测试结果。
在其中一个实施例中,目标终端部署有locust软件。
在该实施例中,在目标终端上利用locust软件(一种性能测试工具)模拟并发请求进行服务调用测试,也可以采用其他性能测试软件进行测试,以减少测试时对本台服务器资源的占用,确保测试结果可以准确表征服务器的实际情况,提高了测试结果的可靠性。
实施例五
在本发明的一个实施例中,任务以站房位置的行人检测为例,所需任务的数据集由站房位置的行人信息组成的数据集,如图3所示,模型部署方法包括:
模型训练:
步骤302,根据收集到的数据集进行模型的训练、评测和优化。
具体地,根据收集到的站房数据集进行模型的训练、评测和优化,得到最优的ckpt格式的tensorflow模型并记录模型训练时的input_tensor name(即本文涉及到的输入张量名称)、output_tensor name(即本文涉及到的输出张量名称)。
模型格式转换:
步骤304,将模型格式由ckpt格式转化为tensorflow serving专有格式。
具体地,撰写脚本将第一步得到的tensorflow ckpt格式模型导出为tensorflowserving专用格式即saved_model.pb及variables,其输入输出和第一步的input_tensor、output_tensor name相对应。
环境配置:
步骤306,采用合适安装方式对用到的组件进行安装。
具体地,docker方式安装tensorflow serving(tensorflow Serving有Docker、APT(二级制安装)和源码编译三种方式,但考虑实际的生产环境项目部署和简单性,本专利使用Docker方式),然后pip方式安装tensorflow-serving-api、Flask、Gunicorn,nginx采用下载nginx离线安装包的方式进行安装。
参数配置:
步骤308,根据并发服务请求数量进行相关组件参数配置。
具体地,根据并发服务请求数量、模型大小及GPU数量和显存大小、通过实验对nginx、Gunicorn、Flask、tensorflow Serving进行合理参数配置。
高并发调用测试:
步骤310,在另一台服务上模拟高并发请求进行服务测试服务。
具体地,采用在另一台服务上利用locust软件模拟高并发请求进行服务调用测试,减少本台服务器资源的占用。
工程应用:
步骤312,在工程客户端撰写服务调用代码进行高并发服务调用。
在该实施例中,采用Nginx+Gunicorn+Flask+tensorflow serving框架进行模型部署,使用nginx进行负载均衡,采用Gunicorn作为服务器,利用Flask对高并发服务调用所需进程数进行合理配置及服务脚本撰写,同时利用tensorflow serving进行模型加载和调用,极大提高了GPU利用率,使得单位时间服务支持的路数大幅提高,具体地,tensorflowserving的队列机制使GPU无需等待IO,使GPU利用率大大提高。且tensorflow serving可自动合并请求成批处理,进一步提升GPU利用率。该方案可大幅提高支持高并发服务路数且服务稳定,可同时稳定支持上百路摄像头实时检测,极大提高了实际工程的投入产出比,解决现有的模型部署方案在经济效益投入产出比低等方面存在不足的问题。相对于采用tensorflow serving进行模型部署,只用利用flask框架进行服务调用,不配置Gunicorn和nginx,flask自带的服务器与Gunicorn相比不太稳定,且未配置nginx进行负载均衡使得服务调用的稳定性得不到保证,从而影响高并发服务调用数量及稳定性。
实施例六
在本发明的一个实施例中,如图4所示,提出了一种服务器400,包括:存储器402,其上存储有计算机程序;控制器404,控制器404执行计算机程序实现如:接收所需任务的数据集,根据数据集进行模型训练,得到训练后的神经网络模型;在服务器400上部署tensorflow serving服务框架;基于tensorflow serving服务框架,将训练后的神经网络模型部署在服务器400上;响应参数设定指令,对tensorflow serving服务框架进行参数设定;响应并发服务请求,基于参数设定后的tensorflow serving服务框架调用训练后的神经网络模型。
本发明提出了一种模型部署方法,其中,在根据所需任务的数据集进行训练,并得到训练后的神经网络模型后,将训练后的神经网络模型部署在服务器400上,具体地,部署在安装有tensorflow serving服务框架的服务器400上,由于tensorflow serving服务框架的队列机制使得GPU无需等待IO处理,因此利用率高,且tensorflow serving服务框架可自动合并请求成批处理,可进一步提升GPU利用率。
另外,本发明提供的上述实施例中的服务器400还可以具有如下附加技术特征:
在上述实施例中,接收所需任务的数据集,根据数据集进行模型训练,得到训练后的神经网络模型的步骤之后,在服务器400上安装tensorflowserving服务框架的步骤之前,控制器404执行计算机程序实现如:确定训练后的神经网络模型的格式与tensorflowserving服务框架限定的格式不一致,对训练后的神经网络模型进行格式转换的步骤。
在该实施例中,通过判断训练后的神经网络模型的格式与tensorflowserving服务框架限定的格式是否一致,并且在不一致的情况下,对训练后的神经网络模型进行格式转换,确保训练好的模型可以部署在安装有tensorflow serving服务框架的服务器400上,同时,格式转化的判断过程由服务器400来做,减少了人工的参与,便于降低人工成本。
在上述任一实施例中,在接收所需任务的数据集,根据数据集进行模型训练,得到训练后的神经网络模型的步骤,控制器404执行计算机程序实现如:记录训练后的神经网络模型的输入张量名称和输出张量名称,在对训练后的神经网络模型进行格式转换的步骤之后,将格式转换后的输入和输出与训练后的神经网络模型的输入张量名称和输出张量名称进行对应的步骤。
在该实施例中,在接收所需任务的数据集,根据数据集进行模型训练,得到训练后的神经网络模型的步骤,还包括:记录训练后的神经网络模型的输入张量名称和输出张量名称,以便在训练后的神经网络模型进行格式转换后,可以将格式转换后的输入和输出与训练后的神经网络模型的输入张量名称和输出张量名称进行对应,以减少在进行格式转换过程中对模型的影响,进而提高运行过程中的可靠性。
在上述任一实施例中,控制器404执行计算机程序实现如:接收并发服务请求的配置信息,训练后的神经网络模型的模型信息以及服务器400的硬件信息;根据并发服务请求的配置信息,训练后的神经网络模型的模型信息以及服务器400的硬件信息对tensorflowserving服务框架进行参数设定的步骤。
在该实施例中,由于tensorflow serving服务框架的队列机制使得GPU无需等待IO处理,因此,服务器400在运行过程中,可以与并发服务请求的配置信息、训练后的神经网络模型的模型信息以及服务器400的硬件信息相关,因此,通过并发服务请求的配置信息、训练后的神经网络模型的模型信息以及服务器400的硬件信息对服务框架进行设定以确保服务器400在运行过程中处于最佳的运行状态。
在上述任一实施例中,并发服务请求的配置信息包括:并发服务请求的数量;训练后的神经网络模型的模型信息包括:模型的存储规格;服务器400的硬件信息包括:图形处理器的数量和图形处理器显存规格。
在上述任一实施例中,控制器404执行计算机程序实现如:部署Flask;根据Flask对并发服务请求的进程数进行设定的步骤。
在该实施例中,通过在服务器400上部署Flask,其中,Flask是一个使用Python(是一种跨平台的计算机程序设计语言)编写的轻量级Web(World Wide Web,全球广域网)应用框架,通过部署的Flask对并发服务调用(即本文中涉及到的并发服务请求)所需进程数进行合理配置,提高服务器400运行的稳定性,同时,提供的应用框架可以对脚本的撰写提供服务,使得服务器400与用户之间可以进行交互,进而实现对并发服务调用所需进程数进行合理配置,提高服务器400运行的可靠性。
在上述任一实施例中,服务器400为Gunicorn服务器;和/或服务器400还部署有Nginx,其中,Nginx向发出并发服务请求的客户端提供服务。
在该实施例中,服务器400为Gunicorn服务器,在服务器400为Gunicorn服务器时,其中,Gunicorn服务器可以理解为是一个Python WSGI(Python Web Server GatewayInterface,Web服务器网关接口,是为Python语言定义的Web服务器和Web应用程序或框架之间的一种简单而通用的接口)UNIX(Unix是20世纪70年代初出现的一个操作系统)的HTTP(超文本传输协议)服务器,这是一个pre-fork worker的模型,从Ruby的独角兽(Unicorn)项目移植,该Gunicorn服务器大致与各种Web框架兼容,只需非常简单的执行,轻量级的资源消耗,以及相当迅速,在服务器400为Gunicorn服务器时,便于实现不同框架之间的兼容性,提高了服务器的稳定性。
而通过在服务器400还部署Nginx,其中,Nginx(engine x)是一个高性能的HTTP和反向代理web服务器,在该实施例中,由于Nginx具有负载均衡、拦截静态请求、高并发等许多功能,通过设置Nginx向发出并发服务请求的客户端提供服务,可以实现负载均衡,确保在并发服务调用的数量较高时,确保服务调用的稳定性。
在上述任一实施例中,控制器404执行计算机程序实现如:响应调用测试指令,向目标终端发送测试结果。
在其中一个实施例中,目标终端部署有locust软件。
在该实施例中,在目标终端上利用locust软件(一种性能测试工具)模拟并发请求进行服务调用测试,也可以采用其他性能测试软件进行测试,以减少测试时对本台服务器400资源的占用,确保测试结果可以准确表征服务器400的实际情况,提高了测试结果的可靠性。
实施例七
在本发明的一个实施例中,提出了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被执行时,实现如上述任一项的模型部署方法的步骤,因此,计算机可读存储介质具有上述任一项模型部署方法的全部有益技术效果,在此,不再赘述。
在本发明的描述中,术语“多个”则指两个或两个以上,除非另有明确的限定,术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制;术语“连接”、“安装”、“固定”等均应做广义理解,例如,“连接”可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
在本发明的描述中,术语“一个实施例”、“一些实施例”、“具体实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或特点包含于本发明的至少一个实施例或示例中。在本发明中,对上述术语的示意性表述不一定指的是相同的实施例或实例。而且,描述的具体特征、结构、材料或特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种模型部署方法,其特征在于,所述模型部署方法应用于服务器上,所述模型部署方法包括:
接收所需任务的数据集,根据所述数据集进行模型训练,得到训练后的神经网络模型;
在所述服务器上部署tensorflow serving服务框架;
基于所述tensorflow serving服务框架,将所述训练后的神经网络模型部署在所述服务器上;
响应参数设定指令,对所述tensorflow serving服务框架进行参数设定;
响应并发服务请求,基于参数设定后的所述tensorflow serving服务框架调用所述训练后的神经网络模型。
2.根据权利要求1所述的模型部署方法,其特征在于,所述接收所需任务的数据集,根据所述数据集进行模型训练,得到训练后的神经网络模型的步骤之后,在所述服务器上部署tensorflow serving服务框架的步骤之前,还包括:
确定所述训练后的神经网络模型的格式与所述tensorflow serving服务框架限定的格式不一致,对所述训练后的神经网络模型进行格式转换。
3.根据权利要求2所述的模型部署方法,其特征在于,在所述接收所需任务的数据集,根据所述数据集进行模型训练,得到训练后的神经网络模型的步骤,还包括:
记录所述训练后的神经网络模型的输入张量名称和输出张量名称,
在对所述训练后的神经网络模型进行格式转换的步骤之后,将格式转换后的输入和输出与所述训练后的神经网络模型的输入张量名称和输出张量名称进行对应。
4.根据权利要求1至3中任一项所述的模型部署方法,其特征在于,所述响应参数设定指令,对所述tensorflow serving服务框架进行参数设定的步骤,具体包括:
接收所述并发服务请求的配置信息,所述训练后的神经网络模型的模型信息以及所述服务器的硬件信息;
根据所述并发服务请求的配置信息,所述训练后的神经网络模型的模型信息以及所述服务器的硬件信息对所述tensorflow serving服务框架进行参数设定。
5.根据权利要求4所述的模型部署方法,其特征在于,所述并发服务请求的配置信息包括:并发服务请求的数量;
所述训练后的神经网络模型的模型信息包括:模型的存储规格;
所述服务器的硬件信息包括:图形处理器的数量和所述图形处理器显存规格。
6.根据权利要求4所述的模型部署方法,其特征在于,还包括:
部署Flask;
根据所述Flask对所述并发服务请求的进程数进行设定。
7.根据权利要求6所述的模型部署方法,其特征在于,所述服务器为Gunicorn服务器;和/或
服务器还部署有Nginx,
其中,所述Nginx向发出所述并发服务请求的客户端提供服务。
8.根据权利要求5所述的模型部署方法,其特征在于,还包括:
响应调用测试指令,向目标终端发送测试结果。
9.一种服务器,其特征在于,包括:
存储器,其上存储有计算机程序;
控制器,所述控制器执行所述计算机程序实现如权利要求1至8中任一项所述的模型部署方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被执行时,实现如权利要求1至8中任一项所述的模型部署方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010266792.2A CN111432022A (zh) | 2020-04-07 | 2020-04-07 | 模型部署方法、服务器和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010266792.2A CN111432022A (zh) | 2020-04-07 | 2020-04-07 | 模型部署方法、服务器和计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111432022A true CN111432022A (zh) | 2020-07-17 |
Family
ID=71553619
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010266792.2A Pending CN111432022A (zh) | 2020-04-07 | 2020-04-07 | 模型部署方法、服务器和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111432022A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111880864A (zh) * | 2020-07-30 | 2020-11-03 | 平安国际智慧城市科技股份有限公司 | 基于http的模型调用方法、系统、计算机设备和存储介质 |
CN112015519A (zh) * | 2020-08-28 | 2020-12-01 | 江苏银承网络科技股份有限公司 | 模型线上部署方法及装置 |
CN112230911A (zh) * | 2020-09-27 | 2021-01-15 | 北京通付盾人工智能技术有限公司 | 模型部署方法、装置、计算机设备和存储介质 |
CN112711423A (zh) * | 2021-01-18 | 2021-04-27 | 深圳中兴网信科技有限公司 | 引擎构建方法、入侵检测方法、电子设备和可读存储介质 |
CN113342324A (zh) * | 2021-08-02 | 2021-09-03 | 麒麟软件有限公司 | 一种人工智能操作系统的构建方法 |
CN113988299A (zh) * | 2021-09-27 | 2022-01-28 | 苏州浪潮智能科技有限公司 | 支持多模型多芯片的推理服务器的部署方法、系统及电子设备 |
CN114095768A (zh) * | 2021-11-29 | 2022-02-25 | 四川长虹电器股份有限公司 | 基于机器学习算法的红外遥控器学习方法及系统 |
CN114268661A (zh) * | 2021-11-19 | 2022-04-01 | 科大讯飞股份有限公司 | 一种业务方案部署方法、装置、系统及设备 |
CN116307271A (zh) * | 2023-05-17 | 2023-06-23 | 中国民航大学 | 一种基于航班延误波及预测的交互方法与系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108197633A (zh) * | 2017-11-24 | 2018-06-22 | 百年金海科技有限公司 | 基于TensorFlow的深度学习图像分类与应用部署方法 |
CN109408062A (zh) * | 2018-11-01 | 2019-03-01 | 郑州云海信息技术有限公司 | 一种自动部署模型训练环境的方法和装置 |
CN110516090A (zh) * | 2019-08-09 | 2019-11-29 | 广东浪潮大数据研究有限公司 | 一种物体检测方法、装置、设备及计算机可读存储介质 |
-
2020
- 2020-04-07 CN CN202010266792.2A patent/CN111432022A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108197633A (zh) * | 2017-11-24 | 2018-06-22 | 百年金海科技有限公司 | 基于TensorFlow的深度学习图像分类与应用部署方法 |
CN109408062A (zh) * | 2018-11-01 | 2019-03-01 | 郑州云海信息技术有限公司 | 一种自动部署模型训练环境的方法和装置 |
CN110516090A (zh) * | 2019-08-09 | 2019-11-29 | 广东浪潮大数据研究有限公司 | 一种物体检测方法、装置、设备及计算机可读存储介质 |
Non-Patent Citations (2)
Title |
---|
SALARY_ONLY_17K: "TensorFlow Serving入门", 《CSDN》 * |
TIANYUNZQS: "TensorFlow Serving模型转换与部署", 《CSDN》 * |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111880864B (zh) * | 2020-07-30 | 2023-12-26 | 平安国际智慧城市科技股份有限公司 | 基于http的模型调用方法、系统、计算机设备和存储介质 |
CN111880864A (zh) * | 2020-07-30 | 2020-11-03 | 平安国际智慧城市科技股份有限公司 | 基于http的模型调用方法、系统、计算机设备和存储介质 |
CN112015519A (zh) * | 2020-08-28 | 2020-12-01 | 江苏银承网络科技股份有限公司 | 模型线上部署方法及装置 |
CN112230911A (zh) * | 2020-09-27 | 2021-01-15 | 北京通付盾人工智能技术有限公司 | 模型部署方法、装置、计算机设备和存储介质 |
CN112230911B (zh) * | 2020-09-27 | 2023-12-29 | 北京通付盾人工智能技术有限公司 | 模型部署方法、装置、计算机设备和存储介质 |
CN112711423A (zh) * | 2021-01-18 | 2021-04-27 | 深圳中兴网信科技有限公司 | 引擎构建方法、入侵检测方法、电子设备和可读存储介质 |
CN113342324A (zh) * | 2021-08-02 | 2021-09-03 | 麒麟软件有限公司 | 一种人工智能操作系统的构建方法 |
CN113342324B (zh) * | 2021-08-02 | 2021-11-19 | 麒麟软件有限公司 | 一种人工智能操作系统的构建方法 |
CN113988299A (zh) * | 2021-09-27 | 2022-01-28 | 苏州浪潮智能科技有限公司 | 支持多模型多芯片的推理服务器的部署方法、系统及电子设备 |
CN113988299B (zh) * | 2021-09-27 | 2024-01-23 | 苏州浪潮智能科技有限公司 | 支持多模型多芯片的推理服务器的部署方法、系统及电子设备 |
CN114268661A (zh) * | 2021-11-19 | 2022-04-01 | 科大讯飞股份有限公司 | 一种业务方案部署方法、装置、系统及设备 |
CN114268661B (zh) * | 2021-11-19 | 2024-04-30 | 科大讯飞股份有限公司 | 一种业务方案部署方法、装置、系统及设备 |
CN114095768A (zh) * | 2021-11-29 | 2022-02-25 | 四川长虹电器股份有限公司 | 基于机器学习算法的红外遥控器学习方法及系统 |
CN116307271A (zh) * | 2023-05-17 | 2023-06-23 | 中国民航大学 | 一种基于航班延误波及预测的交互方法与系统 |
CN116307271B (zh) * | 2023-05-17 | 2023-08-25 | 中国民航大学 | 一种基于航班延误波及预测的交互方法与系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111432022A (zh) | 模型部署方法、服务器和计算机可读存储介质 | |
CN110795219B (zh) | 适用于多种计算框架的资源调度方法及系统 | |
CN108737168B (zh) | 一种基于容器的微服务架构应用自动构建方法 | |
CN107135390A (zh) | 一种电视应用的自动化测试方法及系统 | |
US20150100832A1 (en) | Method and system for selecting and executing test scripts | |
US20150100830A1 (en) | Method and system for selecting and executing test scripts | |
CN110955589A (zh) | 基于浏览器的无头模式的测试方法、系统、设备及介质 | |
CN112395736B (zh) | 一种分布交互仿真系统的并行仿真作业调度方法 | |
CN112685035A (zh) | 项目开发方法及装置、计算机可读存储介质、电子设备 | |
US20150100831A1 (en) | Method and system for selecting and executing test scripts | |
CN111737073B (zh) | 自动化测试方法、装置、设备及介质 | |
CN109828921A (zh) | Html5网页自动化功能测试方法、系统和电子设备 | |
CN111813671A (zh) | 一种ima软件仿真测试系统 | |
CN110096422A (zh) | 一种基于容器的服务器计算性能测试方法与装置 | |
CN112764875B (zh) | 一种面向智能计算的轻量级入口容器微服务系统及方法 | |
CN104679651A (zh) | 一种自动化测试方法及执行节点 | |
CN110188043A (zh) | 一种控制多台设备测试的方法及控制设备 | |
CN112765028A (zh) | 基于群控机制的Android应用程序测试方法及系统 | |
CN111290934A (zh) | 基于Jenkins的车载网络产品云测试方法及系统 | |
CN113849399A (zh) | 多国产化平台下的多机协同软件的自动化测试系统和方法 | |
CN113568791A (zh) | 一种基于多cpu架构的服务器操作系统自动化测试工具及方法 | |
CN101969442B (zh) | 基于进程运行环境感知与迁移的网络模拟框架实现方法 | |
CN115794355B (zh) | 任务处理方法、装置、终端设备及存储介质 | |
Gartziandia et al. | Microservices for continuous deployment, monitoring and validation in cyber-physical systems: an industrial case study for elevators systems | |
CN108073389B (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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200717 |
|
WD01 | Invention patent application deemed withdrawn after publication |