Django如何调用机器学习模型进行预测

Django是一个流行的Python Web框架,它可以很方便地集成机器学习模型,进行预测和推理。我将介绍如何在Django项目中调用训练好的机器学习模型,并实现一个预测接口。

准备工作

首先我们需要一个训练好的机器学习模型。这里我们使用Scikit-Learn训练一个简单的线性回归模型作为示例。

python 复制代码
import numpy as np
from sklearn.linear_model import LinearRegression

# 生成训练数据
X = np.array([[1], [2], [3], [4], [5]])  
y = np.array([1, 3, 2, 3, 5])

# 训练模型
model = LinearRegression()
model.fit(X, y)

模型训练完成后,我们需要对模型进行序列化,方便在Django中加载使用。这里使用Joblib进行序列化。

python 复制代码
import joblib

# 序列化模型
joblib.dump(model, 'model.joblib') 

Django集成

在Django项目中,我们创建一个app,在这个app中集成机器学习模型。

首先在app的views.py中加载模型:

python 复制代码
import joblib
from django.conf import settings  
import os

# 加载模型
model_path = os.path.join(settings.BASE_DIR, 'app/models/model.joblib') 
model = joblib.load(model_path)

然后实现预测接口:

python 复制代码
from rest_framework.decorators import api_view
from rest_framework.response import Response

@api_view(['POST'])  
def predict(request):
    data = request.data

    # 进行预测
    X = [[data['input']]] 
    y_pred = model.predict(X)[0]

    result = {
        'prediction': y_pred
    }

    return Response(result)

这里我们实现了一个简单的REST接口,前端可以通过POST请求,在request body中传入输入,获取模型预测结果。

最后在urls.py中配置这个预测接口的路由:

python 复制代码
from django.urls import path
from .views import predict

urlpatterns = [
    path('predict/', predict),
]

测试

运行Django服务器,我们可以测试这个预测接口:

复制代码
curl -X POST -H "Content-Type: application/json" -d '{"input": 10}' http://localhost:8000/predict/

# 返回如下结果
{"prediction":8}

可以看到我们成功调用了机器学习模型进行了预测。通过类似的方式,可以很容易地在Django项目中集成各种机器学习模型,实现预测、推理等功能。

相关推荐
mortimer23 分钟前
Python 文件上传:一个简单却易犯的错误及解决方案
人工智能·python
Juchecar1 小时前
NumPy编程:鼓励避免 for 循环
python
Java陈序员2 小时前
直播录制神器!一款多平台直播流自动录制客户端!
python·docker·ffmpeg
c8i2 小时前
drf 在django中的配置
python·django
这里有鱼汤4 小时前
【花姐小课堂】新手也能秒懂!用「风险平价」打造扛造的投资组合
后端·python
databook17 小时前
Manim实现闪光轨迹特效
后端·python·动效
Juchecar18 小时前
解惑:NumPy 中 ndarray.ndim 到底是什么?
python
用户83562907805119 小时前
Python 删除 Excel 工作表中的空白行列
后端·python
Json_19 小时前
使用python-fastApi框架开发一个学校宿舍管理系统-前后端分离项目
后端·python·fastapi
数据智能老司机1 天前
精通 Python 设计模式——分布式系统模式
python·设计模式·架构