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

相关推荐
秋难降9 分钟前
Python 知识点详解(三)
python·编程语言
chao_7891 小时前
二分查找篇——寻找旋转排序数组中的最小值【LeetCode】
python·线性代数·算法·leetcode·矩阵
金玉满堂@bj1 小时前
PyCharm 中 Python 解释器的添加选项及作用
ide·python·pycharm
程序员三藏1 小时前
如何使用Pytest进行测试?
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·pytest
随心点儿2 小时前
使用python 将多个docx文件合并为一个word
开发语言·python·多个word合并为一个
不学无术の码农2 小时前
《Effective Python》第十三章 测试与调试——使用 Mock 测试具有复杂依赖的代码
开发语言·python
sleepybear11132 小时前
在Ubuntu上从零开始编译并运行Home Assistant源码并集成HACS与小米开源的Ha Xiaomi Home
python·智能家居·小米·home assistant·米家·ha xiaomi home
纪伊路上盛名在2 小时前
(鱼书)深度学习入门1:python入门
人工智能·python·深度学习
夏末蝉未鸣012 小时前
python transformers笔记(TrainingArguments类)
python·自然语言处理·transformer
德育处主任Pro2 小时前
「py数据分析」04如何将 Python 爬取的数据保存为 CSV 文件
数据库·python·数据分析