【Python】fastapi框架之Web部署机器学习模型

简介: 【Python】fastapi框架之Web部署机器学习模型

fastapi框架之Web部署机器学习模型


随着机器学习的广泛应用,如何高效的把训练好的机器学习的模型部署在Web端。


效果展示


fastapi之Web部署机器学习模型


安装第三方库


pip install fastapi -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
pip install sklearn -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
pip install jinja2 -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
pip install uvicorn -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
pip install python-multipart -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple some-package


训练模型


做了个小例子。用numpy随机生成训练集,使用线性回归进行训练,使用pickle库保存model模型。如下图所示

1684134263094.jpg

makeModel.py

import pickle
import numpy as np
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt
#创建数据
x=np.linspace(0,1,100).reshape(-1,1)
y=[i*np.random.uniform(0.5,0.7) for i in np.linspace(0,1,100)]
y=np.array(y)
model=LinearRegression()
model.fit(x,y)
y_pred=model.predict(x)
plt.plot(x,y)
plt.plot(x,y_pred)
plt.show()
with open('model.pickle', 'wb') as file:
    pickle.dump(model, file)

1684134290542.jpg


app.py

from fastapi import FastAPI,Form,Request
import uvicorn
from fastapi.templating import Jinja2Templates
import pickle
import numpy as np
app = FastAPI()
templates = Jinja2Templates(directory="templates")
@app.get('/')
def index(request: Request):
    return templates.TemplateResponse("index.html",{"request": request,'y':''})
@app.post('/')
def yPred(request: Request,argument=Form(...)):
    argument = argument
    lis = [[argument]]
    lis = np.array(lis).reshape(-1, 1)
    with open('model.pickle', 'rb') as f:
        model=pickle.load(f)
        y_pred=model.predict(lis)
    return templates.TemplateResponse("index.html",{"request": request,'y':{'x':argument,'y_pred':y_pred[0]}})
if __name__ == '__main__':
    uvicorn.run('app:app', port=8000)


index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form action="/" method="post">
        <input name="argument">
        <button>提交</button>
        {{y}}
    </form>
</body>
</html>

项目完整代码请点击我的云盘

提取码:6a1k

如有任何问题,欢迎在下方留言,谢谢!

相关文章
|
6月前
|
人工智能 自然语言处理 IDE
模型微调不再被代码难住!PAI和Qwen3-Coder加速AI开发新体验
通义千问 AI 编程大模型 Qwen3-Coder 正式开源,阿里云人工智能平台 PAI 支持云上一键部署 Qwen3-Coder 模型,并可在交互式建模环境中使用 Qwen3-Coder 模型。
1110 109
|
7月前
|
人工智能 自然语言处理 运维
【新模型速递】PAI-Model Gallery云上一键部署Kimi K2模型
月之暗面发布开源模型Kimi K2,采用MoE架构,参数达1T,激活参数32B,具备强代码能力及Agent任务处理优势。在编程、工具调用、数学推理测试中表现优异。阿里云PAI-Model Gallery已支持云端部署,提供企业级方案。
415 0
【新模型速递】PAI-Model Gallery云上一键部署Kimi K2模型
|
5月前
|
开发框架 前端开发 Go
【GoGin】(0)基于Go的WEB开发框架,GO Gin是什么?怎么启动?本文给你答案
Gin:Go语言编写的Web框架,以更好的性能实现类似Martini框架的APInet/http、Beego:开源的高性能Go语言Web框架、Iris:最快的Go语言Web框架,完备的MVC支持。
524 1
|
7月前
|
运维 数据可视化 C++
2025 热门的 Web 化容器部署工具对比:Portainer VS Websoft9
2025年热门Web化容器部署工具对比:Portainer与Websoft9。Portainer以轻量可视化管理见长,适合技术团队运维;Websoft9则提供一站式应用部署与容器管理,内置丰富开源模板,降低中小企业部署门槛。两者各有优势,助力企业提升容器化效率。
495 1
2025 热门的 Web 化容器部署工具对比:Portainer VS Websoft9
|
8月前
|
机器学习/深度学习 算法 安全
差分隐私机器学习:通过添加噪声让模型更安全,也更智能
本文探讨在敏感数据上应用差分隐私(DP)进行机器学习的挑战与实践。通过模拟DP-SGD算法,在模型训练中注入噪声以保护个人隐私。实验表明,该方法在保持71%准确率和0.79 AUC的同时,具备良好泛化能力,但也带来少数类预测精度下降的问题。研究强调差分隐私应作为模型设计的核心考量,而非事后补救,并提出在参数调优、扰动策略选择和隐私预算管理等方面的优化路径。
562 3
差分隐私机器学习:通过添加噪声让模型更安全,也更智能
|
7月前
|
人工智能 自然语言处理 运维
【新模型速递】PAI-Model Gallery云上一键部署gpt-oss系列模型
阿里云 PAI-Model Gallery 已同步接入 gpt-oss 系列模型,提供企业级部署方案。
|
8月前
|
机器学习/深度学习 人工智能 算法
Post-Training on PAI (4):模型微调SFT、DPO、GRPO
阿里云人工智能平台 PAI 提供了完整的模型微调产品能力,支持 监督微调(SFT)、偏好对齐(DPO)、强化学习微调(GRPO) 等业界常用模型微调训练方式。根据客户需求及代码能力层级,分别提供了 PAI-Model Gallery 一键微调、PAI-DSW Notebook 编程微调、PAI-DLC 容器化任务微调的全套产品功能。
|
8月前
|
机器学习/深度学习 分布式计算 Java
Java 大视界 -- Java 大数据机器学习模型在遥感图像土地利用分类中的优化与应用(199)
本文探讨了Java大数据与机器学习模型在遥感图像土地利用分类中的优化与应用。面对传统方法效率低、精度差的问题,结合Hadoop、Spark与深度学习框架,实现了高效、精准的分类。通过实际案例展示了Java在数据处理、模型融合与参数调优中的强大能力,推动遥感图像分类迈向新高度。
|
8月前
|
机器学习/深度学习 存储 Java
Java 大视界 -- Java 大数据机器学习模型在游戏用户行为分析与游戏平衡优化中的应用(190)
本文探讨了Java大数据与机器学习模型在游戏用户行为分析及游戏平衡优化中的应用。通过数据采集、预处理与聚类分析,开发者可深入洞察玩家行为特征,构建个性化运营策略。同时,利用回归模型优化游戏数值与付费机制,提升游戏公平性与用户体验。
|
8月前
|
安全 JavaScript Java
java Web 项目完整案例实操指南包含从搭建到部署的详细步骤及热门长尾关键词解析的实操指南
本项目为一个完整的JavaWeb应用案例,采用Spring Boot 3、Vue 3、MySQL、Redis等最新技术栈,涵盖前后端分离架构设计、RESTful API开发、JWT安全认证、Docker容器化部署等内容,适合掌握企业级Web项目全流程开发与部署。
686 0

热门文章

最新文章

相关产品

  • 人工智能平台 PAI