手把手教你使用Flask轻松部署机器学习模型(附代码链接) | CSDN博文精选
作者 | Abhinav Sagar
翻译 | 申利彬
校对 | 吴金笛
来源 | 数据派THU(ID:DatapiTHU)
- 容易上手使用
- 内置开发工具和调试工具
- 集成单元测试功能
- 平稳的请求调度
- 详尽的文档
<!DOCTYPE html>
<html ><head>
<meta charset="UTF-8">
<title>Deployment Tutorial 1</title>
<link href='https://fonts.googleapis.com/css?family=Pacifico' rel='stylesheet' type='text/css'>
<link href='https://fonts.googleapis.com/css?family=Arimo' rel='stylesheet' type='text/css'>
<link href='https://fonts.googleapis.com/css?family=Hind:300' rel='stylesheet' type='text/css'>
<link href='https://fonts.googleapis.com/css?family=Open+Sans+Condensed:300' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="{{ url_for('static', filename='css/style.css') }}"></head><body style="background: #000;">
<div><h1>Sales Forecasting
</h1>
<!-- Main Input For Receiving Query to our ML -->
<form action="{{ url_for('predict')}}"method="post">
<input type="text" name="rate" placeholder="rate" required="required" />
<input type="text" name="sales in first month" placeholder="sales in first month" required="required" />
<input type="text" name="sales in second month" placeholder="sales in second month" required="required" />
<button type="submit" class="btn btn-primary btn-block btn-large">Predict sales in third month</button>
</form>
<br>
<br> {{ prediction_text }}
</div>
</body>
</html>
@import url(https://fonts.googleapis.com/css?family=Open+Sans);
html { width: 100%; height:100%; overflow:hidden;
}body {width: 100%;height:100%;font-family: 'Helvetica';background: #000;
color: #fff;
font-size: 24px;
text-align:center;
letter-spacing:1.4px;}.login {position: absolute;
top: 40%;
left: 50%;
margin: -150px 0 0 -150px;
width:400px;
height:400px;}
login h1 { color: #fff;
text-shadow: 0 0 10px rgba(0,0,0,0.3);
letter-spacing:1px;
text-align:center;
}input {width: 100%;
margin-bottom: 10px;
background: rgba(0,0,0,0.3);
border: none;
outline: none;
padding: 10px;
font-size: 13px;
color: #fff;
text-shadow: 1px 1px 1px rgba(0,0,0,0.3);
border: 1px solid rgba(0,0,0,0.3);
border-radius: 4px;
box-shadow: inset 0 -5px 45px rgba(100,100,100,0.2), 0 1px 1px rgba(255,255,255,0.2);
-webkit-transition: box-shadow .5s ease;
-moz-transition: box-shadow .5s ease;
-o-transition: box-shadow .5s ease;
-ms-transition: box-shadow .5s ease;
transition: box-shadow .5s ease;
}
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import pickle
dataset = pd.read_csv('sales.csv')
dataset['rate'].fillna(0, inplace=True)
dataset['sales_in_first_month'].fillna(dataset['sales_in_first_month'].mean(), inplace=True)
X = dataset.iloc[:, :3]
def convert_to_int(word):
word_dict = {'one':1, 'two':2, 'three':3, 'four':4, 'five':5, 'six':6, 'seven':7, 'eight':8,
'nine':9, 'ten':10, 'eleven':11, 'twelve':12, 'zero':0, 0: 0}
return word_dict[word]
X['rate'] = X['rate'].apply(lambda x : convert_to_int(x))
y = dataset.iloc[:, -1]
from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor.fit(X, y)
pickle.dump(regressor, open('model.pkl','wb'))
model = pickle.load(open('model.pkl','rb'))
print(model.predict([[4, 300, 500]]))
import numpy as np
from flask import Flask, request, jsonify, render_template
import pickle
app = Flask(__name__)model = pickle.load(open('model.pkl', 'rb'))
@app.route('/')
def home():
return render_template('index.html')
@app.route('/predict',methods=['POST'])
def predict():
int_features = [int(x) for x in request.form.values()]
final_features = [np.array(int_features)]
prediction = model.predict(final_features)
output = round(prediction[0], 2)
return render_template('index.html', prediction_text='Sales should
be $ {}'.format(output))
@app.route('/results',methods=['POST'])
def results():
data = request.get_json(force=True)
prediction = model.predict([np.array(list(data.values()))])
output = prediction[0]
return jsonify(output)
if __name__ == "__main__":
app.run(debug=True)
import requests
url = 'http://localhost:5000/results'
r = requests.post(url,json={'rate':5,
'sales_in_first_month':200, 'sales_in_second_month':400})
print(r.json()) Results
扫码查看原文
▼▼▼
(*本文为AI科技大本营转载文章,转载请联系原作者)
◆
精彩推荐
◆
推荐阅读
手把手教你使用Flask轻松部署机器学习模型(附代码链接) | CSDN博文精选相关推荐
- 独家 | 手把手教你如何使用Flask轻松部署机器学习模型(附代码链接)
作者:Abhinav Sagar 翻译:申利彬 校对:吴金笛 本文约2700字,建议阅读7分钟. 本文可以让你把训练好的机器学习模型使用Flask API 投入生产环境. 本文旨在让您把训练好的机器学 ...
- python代码示例图形-纯干货:手把手教你用Python做数据可视化(附代码)
原标题:纯干货:手把手教你用Python做数据可视化(附代码) 导读:制作提供信息的可视化(有时称为绘图)是数据分析中的最重要任务之一.可视化可能是探索过程的一部分,例如,帮助识别异常值或所需的数据转 ...
- python画图代码大全-纯干货:手把手教你用Python做数据可视化(附代码)
原标题:纯干货:手把手教你用Python做数据可视化(附代码) 导读:制作提供信息的可视化(有时称为绘图)是数据分析中的最重要任务之一.可视化可能是探索过程的一部分,例如,帮助识别异常值或所需的数据转 ...
- 独家 | 手把手教你在试验中修正机器学习模型(附学习资源)
作者:Seth DeLand 翻译:王威力 校对:万文菁 本文约1800字,建议阅读8分钟. 本文是一个循序渐进的指南,包括如何预处理数据和从中生成特征.并且还包含其他示例资源的链接,以帮助您探索有关 ...
- 独家 | 手把手教你组织数据科学项目!(附代码)
作者:kdnuggets 翻译:和中华 校对:丁楠雅 本文约4200字,建议阅读10分钟. 本文介绍了一个工具可以帮助迅速构建一个标准但灵活的数据科学项目结构,便于实施和分享数据科学工作. 由Driv ...
- 傻瓜教程:手把手教你解决多个应用实例(附代码、手绘图)
来源:大数据文摘 本文约20000字,建议阅读18分钟. 长文预警!本文从七桥问题引入,将会讲到图论在Airbnb房屋查询.推特推送更新时间.Netflix和亚马逊影片/商品个性化推荐.Uber寻找最 ...
- 手把手教你安装深度学习软件环境(附代码)
来源:机器之心 本文长度为2800字,建议阅读5分钟. 本文向你解释如何在一台新装的 Ubuntu 机器上安装 Python 和 Nvidia 硬件驱动.各类库和软件包. 为了进行强化学习研究,我最近 ...
- iir数字滤波器_手把手教系列之一阶数字滤波器设计实现(附代码)
[导读] 前面分享了 IIR/FIR/mean/梳状数字滤波器的具体设计实现,这几种使用起来或许觉得计算量大,相对复杂.实际工程应用中通常有必要过滤来自传感器或音频流的数据,以抑制不必要的噪声.有的应 ...
- 手把手教你使用Dygraphs可视化时间序列数据(附代码、链接)
作者:Margo Schaedel 翻译:张一豪 校对:丁楠雅 本文约1200字,建议阅读5分钟. 本文将介绍如何使用JavaScript的图形库Dygraphs来动态地可视化存储在InfluxDB( ...
最新文章
- asp.net mvc Post上传文件大小限制 (转载)
- oracle查询转insert语句,oracle中将查出来的数据转化为insert into语句
- Android ListView滑动后背景变黑
- [转载] Java笔试题集锦
- c语言实现语音检测vad_TWS+AI?国芯发布超低功耗语音芯片,可能是目前最理想方案...
- range作用于对象global失败_彻底弄懂JavaScript作用域问题
- jquery-jquery对向与dom标签对向
- html 左边固定右边自动,七种实现左侧固定,右侧自适应两栏布局的方法
- C语言家谱管理程序,C语言实现家谱管理
- 又延伸到socket去了。
- java 执行class文件
- 华为平板解锁工具_华为平板M6 10.8英寸首发评测 办公+影音+智能全面开花
- 抖音快手短视频 影视后期制作工具网址大全
- 热度php代码,爬取知乎热度搜索标题并数据分析及可视化(示例代码)
- Ubuntu18.04 编译Android 10源码 并烧录源码到pixel3的避坑指南
- 平均获客成本_互联网金融获客成本
- 我的Java学习之路
- mysql数据字段属性
- 计算机组成与系统结构实验-基于微程序控制的CPU设计
- O2OA框架使用笔记