技术开发 频道

如何将机器学习模型成功部署到.Net环境中

  【IT168 技术】Python和R语言是在数据工程师间最流行的编程语言,但是,它并不能适用于应用程序构建的所有部分。这也就是你为什么有时需要找到一种方法,将Python或R编写的机器学习模型部署到基于.NET等语言的环境中。

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

  Enter: Flask

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

如何将机器学习模型成功部署到.Net环境中

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

  创建和训练模型

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

如何将机器学习模型成功部署到.Net环境中

  制作一个简单的API

  这一部分是最有趣的,现在我们有了 PREDICTOR,我们需要一些标准来衡量做出的预测是否有价值。一种方法是从URL参数中获取信息,这些参数是在URL的?之后,例如你导航到http:// localhost:4000 / predict?pclass = 1&sex = 1&age = 18&fare = 500&sibsp = 0,则Flask可以为您检索该数据。

  我们写一条路线来做到这一点:

如何将机器学习模型成功部署到.Net环境中

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

  部署到.NET环境

  在.NET环境中部署Flask有很多选择,它大大依赖于基础架构的选择,下面我们就来看看如何使用Microsoft Azure部署到IIS环境。

  我们先假设你已经:

  创建了一个Azure Cosmos数据库;

  创建了一个Flask Web应用程序(如前所述);

  熟悉Azure和Visual Studio;

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

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

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

如何将机器学习模型成功部署到.Net环境中

  设置 WSGI_HANDLER 在进入 web.config 到 tutorial.app 以配合项目名称,如下图所示:

如何将机器学习模型成功部署到.Net环境中

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

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

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

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

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

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

  在“ 选择扩展”页面中,向下滚动到最新的Python 2.7安装并选择x86或x64位选项,然后单击“ 确定”接受法律条款。

  使用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应用程序。

0
相关文章