使用FastAPI和Docker为PyTorch模型提供服务
使用FastAPI和Docker为PyTorch模型提供服务的方法
学习如何开发完整的机器学习服务
简介
个人机器/深度学习项目的工作非常有趣。在晚上,面对电脑,您能编写自己喜欢的代码,阅读有趣的论文,而且没有任何需要满足的截止日期。我们都知道,编程只有在不为工作而编写的情况下才好!😂
无论如何,即使这只是个人项目,当其他人开始使用您所做的东西时,最大的满足感就产生了。因此,您需要将自己的模型提供给他人,并学习正确的工具来实现。在本文中,我将向您展示如何使用PyTorch、FastAPI和Docker提供Deep Learning模型的服务。

使用FastAPI设置服务器
首先,我们创建一个计算机视觉模型。该模型将能够识别猫的图像和鱼的图像。为此,我们采用预训练的ResNet50类型的网络,并更改最后的分类层,以使输出结果为二进制。
我将以下代码放入一个名为model.py的文件中
- LLMWare发布了专门用于企业工作流程涉及复杂业务文件的生产级调优模型 RAG特定7B参数LLM
- 这篇AI论文介绍了LLaVA-Plus 一款通用的多模态助手,扩展了大型多模态模型的功能
- 解开复杂性:噪声注入的流形学习的新方法
from torchvision import modelsimport torch.nn as nnCatfishClasses = ["猫", "鱼"]CatfishModel = models.resnet50()CatfishModel.fc = nn.Sequential( nn.Linear(CatfishModel.fc.in_features, 500), nn.ReLU(), nn.Dropout(), nn.Linear(500, 2))
现在,我们使用FastAPI实例化服务器,客户端可以连接到该服务器,并请求我们的模型进行预测。
from PIL import Imagefrom torchvision import transformsimport torchimport osfrom fastapi import FastAPIfrom fastapi.responses import JSONResponsefrom .model import CatfishModel, CatfishClassesfrom io import BytesIOfrom fastapi import HTTPExceptionimport requestsapp = FastAPI()def open_image(image_path): # 在此处添加任何必要的图像预处理逻辑 image = Image.open(image_path) return imagedef load_model(): return [email protected]("/")def status(): return {"status"…