如何将机器学习的模型部署到NET环境中?

【IT168 资讯】对于以数据为中心的工程师来说,Python和R是数据中心最流行的编程语言之一。但是,它们并不总是构建应用程序的其余部分的语言。这就是为什么你有时需要找到一种方法,将用Python或R编写的机器学习模型部署到基于.NET等语言的环境中。

在本文中,将为大家展示如何使用Web API将机器学习模型集成到.NET编写的应用程序中。

输入:Flask

我们可以使用Flask作为共享和主持机器学习预测的一种方式。让我们使用来自著名的Kaggle比赛的Titanic 数据集。首先,创建一个新文件,并将其称为titanic_app.py(或任何你想要的名字)。导入并初始化Flask应用程序,然后在底部启动服务器。在中间留出空间,以便稍后在中间添加模型和路线。

请注意,我们指定了我们运行的希望应用程序的主机和端口。

创建并训练一个模型

加载Titanic 数据集并在其上创建一个模型:

制作一个简单的API

这是比较有趣的部分。现在有一个预测,需要一些值来预测,一种方法是从URL参数中获取信息,在这之后出现的值对是关键?在一个URL中。例如,如果您导航到http:// localhost:4000 / predict?pclass = 1&sex = 1&age = 18&fare = 500&sibsp = 0,则Flask可以为你检索该数据。

保存文件并启动你的应用程序。现在就有一个简单的API模型了!

部署到NET环境

在NET环境中部署Flask有很多选择,它们将大大依赖于你的基础架构的选择。为了了解这个过程,我们来看看使用Microsoft Azure部署到IIS环境。

假设:

·你已经创建了一个Azure Cosmos数据库(这篇文章的范围之外)。

·已经创建了一个Flask Web应用程序(正如我们上面所述的)。

·熟悉Azure和Visual Studio。

如果你已正确设置环境,则可以将你的Web应用程序部署到Azure。这可以通过创建一个web.config文件来更新Web服务器上的文件来匹配你的实例中的文件。为此,请执行以下步骤:

·在Visual Studio解决方案资源管理器中,右键单击该项目并选择添加新建项目。在出现的对话框中,选择Azure web.config(Fast CGI)模板,然后选择确定。这会在项目根目录下创建一个web.config文件。

·修改web.config,使路径与Python安装相匹配。例如,对于Python 2.7 x64,条目应该如下所示:

·将web.config中的WSGI_HANDLER条目设置为tutorial.app,以匹配项目名称,如下所示:

·在Visual Studio Solution Explorer中,展开tutorial文件夹,右键单击静态文件夹,选择Add> New Item,选择Azure静态文件web.config模板,然后选择OK。此操作将在禁用该文件夹的Python处理的静态文件夹中创建另一个web.config。该配置将静态文件的请求发送到默认Web服务器,而不是使用Python应用程序。

·保存文件,然后右键单击解决方案资源管理器中的项目(确保你还没有在本地运行),然后选择发布。

·在“发布”对话框中,选择“Microsoft Azure应用程序服务”,选择“新建”,然后单击“发布”。

·在“创建应用程序服务”对话框中,输入Web应用程序的名称以及订阅、资源组和应用程序服务计划。然后,点击创建。

·几秒钟后,Visual Studio完成将文件复制到服务器,并在http://.azurewebsites.net/页面上显示以下错误消息:“由于发生内部服务器错误,无法显示页面”。

·在Azure门户中,打开你的新的应用程序服务帐户。在导航菜单中,向下滚动到开发工具部分,选择扩展,然后单击添加。

·在Choose Extension页面中,向下滚动到最新的Python 2.7安装并选择x86或x64位选项,然后单击OK接受合法的条款。

·使用Kudu控制台,你可以通过https://scm.azurewebsites.net/DebugConsole找到它,以安装应用程序的requirements.txt文件中列出的软件包。为此,在Kudu诊断控制台中,导航到D: home Python27中的Python文件夹,然后按照Kudu控制台部分中所述运行以下命令:

D: home Python27> python -m pip install --upgrade -r /home/site/wwwroot/requirements.txt

·通过按下重新启动按钮来安装新软件包之后,在Azure门户中重新启动App Service。

一旦完整配置服务器环境后,刷新浏览器中的页面,即可显示Web应用程序。

本文来自企鹅号 - IT168媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏运维一切

正向代理访问腾讯云cos时http405的问题

当使用正向代理请求cos资源的时候,cos对http协议的支持会比较严谨,“宽容性”不够。可能对http协议更加谨慎一点反而更好吧

2317
来自专栏java架构师

Hadoop添加节点datanode

1.部署hadoop 和普通的datanode一样。安装jdk,ssh 2.修改host 和普通的datanode一样。添加namenode的ip 3.修改na...

2796
来自专栏后端技术探索

Nginx从入门到学会(4.事件处理)

有人可能要问了,nginx采用多worker的方式来处理请求,每个worker里面只有一个主线程,那能够处理的并发数很有限啊,多少个worker就能处理多少个并...

731
来自专栏phodal

如何以“正确的姿势”阅读开源软件代码

之前想过写这篇文章,但是没有想到一个好的内容、好的突破点。在《GitHub 漫游指南》指南里,我们提到过《如何在GitHub“寻找灵感(fork)”》,但是并不...

20910
来自专栏zhangdd.com

linux服务器性能检测工具nmon使用

今天介绍一款linux系统服务器性能检测的工具-nmon及nmon_analyser (生成性能报告的免费工具),亲测可用。 一.介绍 nmon 工具可以帮...

2943
来自专栏陈满iOS

iOS开发技巧·傻瓜式从工程文件导出类关系图(UML) -- OmniGraffle方案

前言:一些复杂的工程可以通过查看工程的UML图快速分析个各个类之间的关系。当然,网上也有很多其它的方案,不过要么设置麻烦,要么用最新版本Xcode并不支持的插件...

2472
来自专栏hotqin888的专栏

ONLYOFFICE权限开发之一

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hotqin888/article/det...

2374
来自专栏撸码那些事

使用缓存的正确姿势

缓存是现在系统中必不可少的模块,并且已经成为了高并发高性能架构的一个关键组件。这篇博客我们来分析一下使用缓存的正确姿势。

4926
来自专栏杨建荣的学习笔记

Oracle Data Guard压缩归档测试(二)(r12笔记第27天)

昨天对Data Guard的归档压缩进行了一个初步的测试,我今天又做了一些补充。 1.昨天测试的是默认50M的redo,如果redo增大,在IO boun...

3498
来自专栏技术小黑屋

超简单生成微博微信应用签名

集成微博或者微信的SDK时,编辑应用信息要求填写应用签名,官方推荐下载一个apk工具。有那么复杂么,直接终端就可以搞定。

1432

扫码关注云+社区

领取腾讯云代金券