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

相关推荐
东莞市云毅网络有限公司6 小时前
AI 引用句逐条回指原文:让回答可回溯的校验实现
python·数据清洗·rag·企业知识库·文档解析
数字融合7 小时前
透明化视频三维矿山井下照明重建技术
人工智能·python·数码相机
yi0118 小时前
LeetCode 219:存在重复元素 II——哈希表记录“最近一次出现的位置”
数据结构·人工智能·笔记·python·算法·leetcode·哈希表
Marst Code9 小时前
上位机开发日记 · 第 2 篇 · 架构先行:六层分层与边界
python
李日华大战鸡红10 小时前
FOC状态空间方程模型推导(学习记录)
python·学习·线性代数
小蒋观天下10 小时前
专项方案:大场景港口AI安防、多干扰环境下的算法调优与落地实操
人工智能·深度学习·算法·安全·机器学习·计算机视觉·ai大模型
外收内放12 小时前
Python基础语法练习题(57-58)
开发语言·python
wuyk55512 小时前
ROS2 Humble 从入门实战教程:第六章:节点:机器人的工作细胞
机器学习
朝朝辞暮i12 小时前
VLA 系统学习第 3 课:从一次机器人示范,到真正送进神经网络的 Batch
人工智能·python·深度学习·神经网络·vla
小鹿的周先生13 小时前
第11章-Structured-Output
开发语言·人工智能·python