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

相关推荐
985小水博一枚呀1 小时前
【深度学习|可视化】如何以图形化的方式展示神经网络的结构、训练过程、模型的中间状态或模型决策的结果??
人工智能·python·深度学习·神经网络·机器学习·计算机视觉·cnn
CyreneSimon1 小时前
使用 LoRA 进行模型微调的步骤
python·transformer
ymchuangke1 小时前
数据清洗-缺失值处理-缺失值可视化图(竖线)
python·算法·数学建模
计算机学姐2 小时前
基于python+django+vue的旅游网站系统
开发语言·vue.js·python·mysql·django·旅游·web3.py
程序员小羊!2 小时前
Python语言基础教程(下)4.0
开发语言·python
huanxiangcoco2 小时前
73. 矩阵置零
python·leetcode·矩阵
一晌小贪欢3 小时前
Python基础知识——字典排序(不断补充)
python·json·python基础·字典·字典排序·python学习
YOLO数据集工作室3 小时前
Python介绍
开发语言·python
Hiweir ·4 小时前
机器翻译之创建Seq2Seq的编码器、解码器
人工智能·pytorch·python·rnn·深度学习·算法·lstm
不染_是非4 小时前
Django学习实战篇六(适合略有基础的新手小白学习)(从0开发项目)
后端·python·学习·django