怎么把python模型部署到线上_如何将机器学习模型成功部署到.Net环境中

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

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

Enter: Flask

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

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

创建和训练模型

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

制作一个简单的API

这一部分是最有趣的,现在我们有了 PREDICTOR,我们需要一些标准来衡量做出的预测是否有价值。一种方法是从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(快速CGI)模板,然后选择确定。这将使web.config在项目的根目录中创建一个 文件。

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/490148.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

刚刚上班才回来,今天和你说说hash数组

hash算法: 专门接受一个字符串,并计算出一个尽量不重复的编号。相同字符串,计算出的号一定相同!不同字符串,计算的号几乎不相同。 添加元素时: 将下标名称交给hash算法,计算出一个唯一的序号,将值保存到数组…

C++ set insert的返回值

pair<iterator,bool> insert (const value_type& val); 返回布尔对以表示是否发生插入&#xff0c;如果重复插入一个元素会返回false。返回迭代器指向新插入元素。

【GNN】一份完全解读:是什么使神经网络变成图神经网络?

图1&#xff1a;来自(Bruna等人&#xff0c;ICLR&#xff0c;2014)的图&#xff0c;描绘了3D领域内的MNIST图像。虽然卷积网络很难对球面数据进行分类&#xff0c;但是图网络可以很自然地处理它。可以把它当做是一个处理工具&#xff0c;但在实际应用程序中会出现许多类似的任务…

TTU智能配电终端_分布式dtu智能配电终端10KV配网自动化专用介绍

SGE300FD 系列分布式配电自动化终端&#xff08;以下简称装置&#xff09;采用了先进的数字信号处理技术、高速工业网络通信技术、嵌入式工业芯片组和多任务实时操作系统&#xff0c;稳定性强、可靠性高、实时性好、环境性广、功能强大、维护简易、操作方便。与20KV及以下电压等…

python程序员怎么面试_Python程序员面试,这些问题你必须提前准备!

近些年随着Python语言越来越流行&#xff0c;越来越多的人选择Python语言作为自己的职业方向。如何在心仪公司的面试中获得好成绩&#xff0c;并最终成功获得offer是每一个Python开发者都要慎重对待的事情&#xff0c;如下是笔者整理的Python程序员在面试中经常被问到的问题&am…

C++ priority_queue对链表节点建立小根堆

链表的节点为&#xff1a; struct ListNode {int val;ListNode *next;ListNode() : val(0), next(nullptr) {}ListNode(int x) : val(x), next(nullptr) {}ListNode(int x, ListNode *next) : val(x), next(next) {}}; 首先对链表节点建立一个结构体&#xff0c;结构体包含节…

python基础学习1-内置函数

#!/usr/bin/env python # -*- coding:utf-8 -*- 系统内置函数n abs(-1) #绝对值 print(n)#bytes()函数 s"离开" re bytes(s,encoding"utf-8") # bytes() 把字符串 转换成字节 print(re)res str(re,encoding"utf-8") #转换回字符串 print(res) …

数学与 AI「融通」 ,徐宗本院士进行超强“迁移学习”

来源&#xff1a; AI科技评论 编辑 | 唐里徐宗本院士在数学与 AI 之间进行了一次超强的“迁移学习”。9 月 21 日至 22 日&#xff0c;为期两天的 CCAI 2019 正在秋意浓浓的中国青岛胶州隆重举行。本次会议选址室外体育馆召开&#xff0c;为原本严肃的学术会议增添了几分活泼、…

mac怎么合并两个容器_Mac怎么合并文件夹?macz不容错过的苹果mac教程分享

关于合并文件夹&#xff0c;与Windows操作不同的是&#xff1a;Mac中很可能会出现文件丢失。 因为它对相同名称文件的实际操作是替换而不是另命名复制&#xff01;你的Mac电脑是否有重复文件想要合并&#xff1f;想了解Mac电脑合并文件夹而不丢失文件&#xff1f;那一定不要错过…

C++ 指向子类的指针转型为指向父类类型指针之后指向的对象地址不变

C 指向子类的指针转型为指向父类类型指针之后指向的对象地址不变 例子&#xff1a; class A{int a;int b; };class B:public A{int c; };int main(){B* pnew B();cout<<p<<endl;cout<<static_cast<A*>(p)<<endl;return 0; }

JMX学习笔记(一)-MBean

JMX学习笔记(一)-MBean 标签&#xff1a; jmxstringjavainterfaceexceptionclass2010-12-07 22:20 15360人阅读 评论(5) 收藏 举报分类&#xff1a;JMX&#xff08;11&#xff09; JMX 即 Java Management Extensions Java管理扩展MBean 即 managed beans …

关于大脑未必是破解智能和意识之谜的钥匙探讨

来源&#xff1a;刘锋的未来课堂“人脑能创造11维结构”是瑞士的研究机构蓝脑&#xff08;Blue Brain&#xff09;的一个研究结论&#xff0c;蓝脑&#xff08;Blue Brain&#xff09;研究所主要目标是建立一个由超级计算机驱动的人脑模型。这篇短文主要是由《崛起的超级智能》…

结构化分析和面向对象分析的区别 例子_管理游戏测评例子

在测评中心技术中&#xff0c;有一个非常有趣的场景的模拟测评&#xff0c;打造敏捷高绩效团队&#xff0c;提高执行力(包括人才测评)&#xff0c;旨在帮助学生培养自主性&#xff0c;了解自己&#xff0c;以独立的意见做出决策&#xff0c;采取果断的行动&#xff1b;培养赋权…

C++获取多维数组维数

#include <iostream> using namespace std;int main(void) { int a[3][4];cout<<sizeof(a)/sizeof(a[0])<<endl; //3cout<<sizeof(a[0])/sizeof(a[0][0])<<endl; //4return 0; }

python编程购物车_python编写购物车新写法

用另一种方式完成购物车的功能实现#!/usr/bin/pythonzijin input("请输入资金&#xff1a;")if zijin.isdigit():zijin int(zijin)else:print("请输入数字&#xff01;")exit_flag Falseprint("欢迎来到本人的购物小店".center(40,"-&qu…

qtablewidget 选中不改变背景_C4D制作不一样的核壳结构

在科研绘图中&#xff0c;三维模型图相对于二维平面图片可以展示更多的信息&#xff0c;尤其是在做纳米结构设计和制备时&#xff0c;三维模型图可以直观地表现出材料的设计思路和合成路径。比如在这篇发表于Joule杂志的高水平、高颜值、将纳米美学展现的淋漓尽致的paper中(Ref…

Ubuntu学习小结(一) 基础知识,系统安装,软件安装,解压缩

这段时间&#xff0c;抽空研究了一下Ubuntu&#xff0c;虽然也有过到目前为止使用计算机最作死的经历&#xff0c;但目前已经学会了一些最基本的操作。在这里简单的记录一下&#xff0c;算是吸取的教训&#xff0c;供其他人借鉴。 1.装Ubuntu系统。装Ubuntu系统的网上教程很多&…

城科会刘朝晖:从互联网大脑模型看城市大脑

刘朝晖中国城市科学研究会城市大数据专业委员会副主任委员中国生态城市研究院首席科学家按照凯文凯利的观点&#xff0c;技术体和生命体都是一种进化现象。刘锋博士的《崛起中的超级智能》显然秉承了类似的视角&#xff0c;基于哲学高度和宇宙现象对我们这个时代正在爆发的人工…

docker如何部署python项目_Docker如何部署Python项目的实现详解

Docker 是一个开源项目&#xff0c;为开发人员和系统管理员提供了一个开放平台&#xff0c;可以将应用程序构建、打包为一个轻量级容器&#xff0c;并在任何地方运行。Docker 会在软件容器中自动部署应用程序。IBV免费资源网在本篇中&#xff0c;我将介绍如何 docker 化一个 Py…

C++ 最小堆实现

#include <bits/stdc.h> using namespace std; //[4,3,5,2,1] void tiao(vector<int>& v, int node, int leng){int left,right;int Min;while(1){leftnode*21; //左节点rightnode*22; //右节点if(left<leng){ //如果有左节点Minmin(v[node],v[left]); …