Docker 部署机器学习模型

1.编写机器学习代码

(1)新建一个 mlmodel.py

import numpy as np
import pandas as pd
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, classification_report, confusion_matrix
import joblib

# Load sample dataset
iris = load_iris()
X = iris.data
y = iris.target

# Split into features and target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# Train a Logistic Regression model
model = LogisticRegression(max_iter=200)
model.fit(X_train,y_train)

# Evaluate the model
y_pred=model.predict(X_test)
print(f"Accuracy: {accuracy_score(y_test, y_pred)}")
joblib.dump(model,'logistic_regression_model.pkl')

执行上述代码,生成模型文件;

2. 编写机器学习服务

在mlmodel.py同级目录下,新建一个app.py文件,插入如下内容:

from flask import Flask,request, jsonify
import joblib

model = joblib.load('logistic_regression_model.pkl')

app = Flask(__name__)

@app.route('/predict', methods=['POST'])
def predict():
  data = request.get_json()
  prediction = model.predict([data['features']])
  return jsonify({'prediction': int(prediction[0])})

if __name__ == '__main__':
  app.run(debug=True,port=6000,host="0.0.0.0")

注意这里host必须设置为0.0.0.0

3.编写Dockerfile文件

在app.py同级目录下,新建一个Dockerfile文件,插入如下内容:

FROM python:3.9-slim

WORKDIR /app

COPY . /app

RUN  pip install -r requirements.txt

EXPOSE 6000

CMD ["python", "app.py"]

4.编写依赖文件

在app.py同级目录下,新建一个requirements.txt文件,插入如下内容(该文件包含app.py运行所需要的库):

flask
joblib
scikit-learn

5.构建Docker镜像和运行容器

打开终端,进入app.py同级目录下,
(1) 构建Docker镜像

docker build -t ml-model-api .

(2)运行Docker容器

docker run -p 5000:5000 ml-model-api

到此,你就可以通过api工具,如:apifox,去调用你的docker服务了。

要使用flask部署机器学习模型,可以按照以下步骤进行操作: 1. 准备模型和数据:首先,准备好训练好的机器学习模型以及用于预测的数据。确保模型可以正常工作并具有适当的输入和输出。 2. 安装Flask:使用pip或conda安装Flask,并确保安装过程中所需的依赖项也被正确安装。 3. 创建Flask应用程序:在Python文件中创建一个简单的Flask应用程序。导入必要的模块并创建一个Flask实例。 4. 定义路由和视图函数:通过定义Flask应用程序的路由和关联的视图函数,为模型部署创建端点。例如,可以使用@app.route装饰器定义一个路由,并编写一个处理该路由的视图函数。 5. 加载模型:在视图函数中加载先前准备好的机器学习模型。使用模型加载函数将模型加载到内存中。 6. 处理输入数据:根据模型的要求,处理来自请求的输入数据。可以在视图函数中获取请求参数,对其进行转换、归一化或其他必要的预处理操作。 7. 进行预测:使用加载的模型对预处理后的数据进行预测。调用模型的预测函数,并将处理后的数据传递给它。 8. 返回结果:将预测结果返回给客户端。可以将结果转换为JSON格式,并使用Flask的内置函数将其发送回客户端。 9. 运行应用程序:使用Flask的run()方法运行应用程序。在终端上执行python文件名.py打开服务,并访问相应的URL以调用预测。 通过以上步骤,就可以使用Flask部署机器学习模型。通过将模型和Flask应用程序结合起来,可以创建一个可以接收输入数据并返回预测结果的API。可以通过将此应用程序发布到云服务器或任何其他适当的部署地点来使其对外可用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值