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项目中集成各种机器学习模型,实现预测、推理等功能。

相关推荐
GuWenyue4 小时前
写Agent还要重复封装工具?一套MCP多服务方案,3个能力让AI自动查地图、读写文件、操控浏览器
人工智能·机器学习·开源
大模型码小白7 小时前
【Python零基础教程】继承、多态与魔法函数:面向对象编程三大核心特性详解
java·大数据·开发语言·人工智能·python·ai编程
麻雀飞吧8 小时前
最新量化学习路径,交易认知和技术实现要并行
人工智能·python
一只小bit9 小时前
LangGraph 记忆、人机交互、时间旅行和核心能力
机器学习·langchain·人机交互·langgraph
C^h12 小时前
python函数学习
人工智能·python·机器学习
Fanta丶12 小时前
4.Python set()集合、dict(字典、映射)、 数据容器的通用功能
python
决战灬12 小时前
langgraph之interrupt(理论篇)
人工智能·python·agent
兜客互动12 小时前
2026年AI关键词拓展挖掘软件,高效助力内容创作精准获流
人工智能·python
weixin_5386019712 小时前
智能体测开Day30pytest测试框架
python
MC皮蛋侠客12 小时前
uv 系列(七):CI/CD、Docker 与私有索引——生产级交付
python·ci/cd·docker·uv