在机器学习问题中,通常从定义问题开始,然后是数据收集和准备,理解数据,以及模型构建。但最终,希望模型能够为最终用户所用,以便他们能够利用它。本文将介绍如何使用Flask框架和Heroku平台部署机器学习模型,包括模型的保存、Web应用的创建以及代码的GitHub存储。
模型部署有多种方式,包括Web托管框架、无服务器计算和特定于云平台的框架。本文将重点介绍使用Flask框架进行机器学习模型部署。Flask是一个轻量级的Web服务框架,可以在Python中轻松创建Web API。
Flask是一个Python中的Web服务开发框架。通过Flask,可以创建一个简单的Web-API,当接收到特定的URL时,会产生特定的输出。例如,以下代码创建了一个简单的Web-API,当访问localhost:5000/时,会显示“欢迎来到ML API”。
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "欢迎来到ML API"
if __name__ == '__main__':
app.run(debug=True)
部署模型时,需要将训练好的模型参数序列化到磁盘,这可以通过JSON、Pickle和joblib来实现。此外,还需要将预处理步骤作为模型序列化的一部分。
以下是使用Flask部署模型的步骤:
GitHub仓库包含两个项目:“heroku_Flask_sal_deployment”和“DeployMLmodelUsing_Flask”,本文选择基于经验、测试分数和面试分数的薪资预测回归模型进行演示。
项目包含四个主要部分:
在命令提示符中运行以下命令:
python model.py
这将使用pickle序列化模型,并创建一个名为model.pkl的序列化版本。
启动Flask API:
python app.py