在一条线上提供一个API模型。

pytorch-deplo的Python项目详细描述


火炬部署

安装

要安装:

pip install pytorch-deploy

您还必须安装torchtorchvision。你可以这样做here。在

使用

部署预先训练的ResNet-18:

^{pr2}$

默认主机和端口为0.0.0.0:8000。在

端点

您可以访问位于主机:端口/文档“在运行python server.py之后。在

/预测

请求正文:application/json 响应体:application/json

下面是一个如何使用/predict端点的示例。在

importrequestsfromPILimportImageimportnumpyasnpfromtorchvisionimporttransformsim=Image.open('palm.jpg')resize=transforms.Resize(224)to_tensor=transforms.ToTensor()normalize=transforms.Normalize(mean=[0.485,0.456,0.406],std=[0.229,0.224,0.225])tensor=normalize(to_tensor(resize(im))).unsqueeze(0)body={"inputs":tensor.tolist()}r=requests.post("http://127.0.0.1:8000/predict",json=body)response=r.json()output=np.array(response["output"])

注意您需要在请求JSON主体中的字段“inputs”下发送模型输入。 如果你想在请求中发送一个张量或者numpy数组,你需要先把它变成一个列表。在

模型的输出将在响应JSON主体的“output”字段下。在

回复格式示例:

response={"output":(yournumpyarrayasalisthere)}

/预测图像

请求正文:多部分/表单数据 响应体:application/json

下面是一个如何使用/predict_image端点的示例。在

importrequestsimportnumpyasnpfilename="../palm.jpg"files={'file':open(filename,"rb")}r=requests.post("http://127.0.0.1:8000/predict_image",files=files)response=r.json()output=np.array(response["output"])print(np.argmax(output))

文件以内容类型“multipart/formdata”上载。这只需要在客户端完成最少的工作,并且与标准的文件上载请求兼容。在

文件

torch_deploy.deploy(model:nn.Module,pre:Union[List[Callable],Callable]=None,post:Union[List[Callable],Callable]=None,host:str="0.0.0.0",port:int=8000,ssl_keyfile:str=None,ssl_certfile:str=None,ssl_ca_certs:str=None,logdir:str="./deploy_logs/",inference_fn:str=None)

轻松地将Pythorch模型转换为API以供生产使用。在

  • model:一个亚类的PyTorch模型nn.模块而且是可以赎回的。用于API的模型。在
  • pre:要应用于输入的函数或函数列表。在
  • post:在作为响应发送之前应用于模型输出的函数或函数列表。在
  • host:为模型提供服务的地址。在
  • port:为模型提供服务的端口。在
  • ssl_keyfilessl_certfilessl_ca_certs:传递给uvicorn的SSL配置
  • logfile:Filename创建一个文件,该文件存储API的每次访问的日期、ip地址和输入大小。如果None,则不会创建任何文件。在
  • inference_fn:应该为输入调用的模型方法的名称。如果None,则模型本身将被调用(如果modelnn.Module,那么它相当于调用model.forward(inputs))。在

示例

examples/目录中有一些示例代码。在

目前正在进行中

仍在使用OAuth2登录系统,该系统需要正确的用户凭据才能使用torch deploy。在

依赖关系

torch, torchvision, fastapi, uvicorn, requests, numpy, pydantic

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在log4j中禁用调试?   java高级数据库修改“脚本”怎么办   java使JSlider thumb在单击track时出现   java中的数组几何布朗运动   java netty重试连接客户端将冻结   用户界面如何在Java中设置JButton的背景色?   java远程访问ejabberd   java是同步eclipse开发人员环境和集成环境的最佳方法?   Java中带有任意返回类型和Jackson序列化程序的json泛型方法   java ViewPager片段目标获取活动片段上下文   java一次从JavaFX TableView中删除多行的问题   将ArrayList对象分配给实例变量java   将参数从http头检索到java   java如何使用netbeans使用数据库语句计数   java如何在倒计时内更改txtcolor   java如何在Eclipse中查找不在工作区中的文件中的文本?