pytorch serve开始-Getting started

2023-12-10 11:44
文章标签 pytorch started serve getting

本文主要是介绍pytorch serve开始-Getting started,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

官网链接

Getting started — PyTorch/Serve master documentation

安装TorchServe和torch-model-archiver

安装依赖

注意::对于Conda,运行Torchserve需要Python >=3.8。

对于基于Debian的系统/ MacOS

  • CPU
python ./ts_scripts/install_dependencies.py
  • 对于使用Cuda 12.1的GPU。可选:cu92、cu101、cu102、cu111、cu113、cu116、cu117、cu118、cu121
python ./ts_scripts/install_dependencies.py --cuda=cu121


注意:PyTorch 1.9+不支持cu92和cu101。因此,在PyTorch 1.8.1之前,TorchServe只支持cu92和cu101。安装文件参考https://github.com/pytorch/serve.git

对于Windows系统

请参阅此处的文档。here.

  • 安装torchserve、torch-model-archiver和torch-workflow-archiver

conda 安装

注意:Windows不支持Conda包。请参阅此处的文档here.

conda install torchserve torch-model-archiver torch-workflow-archiver -c pytorch

Pip安装

pip install torchserve torch-model-archiver torch-workflow-archiver

模型服务

本节展示了一个使用TorchServe为模型提供服务的简单示例。要完成这个示例,您必须已经安装了TorchServe和model archiver。

要运行这个例子,克隆TorchServe仓库:

git clone https://github.com/pytorch/serve.git 

然后在存储库根目录的父目录中运行以下步骤。例如,如果您将存储库克隆到/home/my_path/serve,则从/home/my_path运行步骤。

存储模型

要使用TorchServe为模型提供服务,首先将模型归档为MAR文件。您可以使用模型归档程序来打包模型。您还可以创建模型存储来存储您的存档模型。

  1. 创建一个目录来存储模型。
mkdir model_store
  1. 下载一个训练好的模型。
wget https://download.pytorch.org/models/densenet161-8d451a50.pth
  1. 通过使用模型归档器来归档模型。extra-files参数使用了一个来自TorchServe仓库的文件,因此如果有必要,请更新路径。
torch-model-archiver --model-name densenet161 --version 1.0 --model-file ./serve/examples/image_classifier/densenet_161/model.py --serialized-file densenet161-8d451a50.pth --export-path model_store --extra-files ./serve/examples/image_classifier/index_to_name.json --handler image_classifier

有关模型归档器的更多信息,请参见Torch Model archiver for TorchServe

启动TorchServe服务模型

存档和存储模型后,使用torchserve命令为模型提供服务。

torchserve --start --ncs --model-store model_store --models densenet161.mar

注意:如果你在运行TorchServe时指定了模型,它会自动将后端worker的数量扩展到等于可用vcpu的数量(如果你在CPU实例上运行)或可用GPU的数量(如果你在GPU实例上运行)。如果是具有大量计算资源(vcpu或gpu)的强大主机,这个启动和自动扩展过程可能需要相当长的时间。如果你想最小化TorchServe的启动时间,你应该避免在启动时间注册和扩展模型,并通过使用相应的管理API(Management API)将其移动到程序入口点,它允许更细粒度地控制分配给任何特定模型的资源)。

从模型中获得预测结果

要测试模型服务器,请向服务器的 predictions API发送请求。TorchServe通过gRPC和HTTP/REST支持所有的推理和管理api。

通过python客户端使用GRPC api

  • 安装grpc的python依赖:
pip install -U grpcio protobuf grpcio-tools
  • 使用proto文件生成推理客户端
python -m grpc_tools.protoc --proto_path=frontend/server/src/main/resources/proto/ --python_out=ts_scripts --grpc_python_out=ts_scripts frontend/server/src/main/resources/proto/inference.proto frontend/server/src/main/resources/proto/management.proto
  • 使用示例客户端gRPC python客户端运行inference
python ts_scripts/torchserve_grpc_client.py infer densenet161 examples/image_classifier/kitten.jpg

使用REST api

作为一个例子,我们将下载下面这只可爱的小猫

curl -O https://raw.githubusercontent.com/pytorch/serve/master/docs/images/kitten_small.jpg

然后调用预测地址

curl http://127.0.0.1:8080/predictions/densenet161 -T kitten_small.jpg

它将返回以下JSON对象

[{"tiger_cat": 0.46933549642562866},{"tabby": 0.4633878469467163},{"Egyptian_cat": 0.06456148624420166},{"lynx": 0.0012828214094042778},{"plastic_bag": 0.00023323034110944718}
]

所有的交互都将记录在logs/目录中,所以一定要查看它!

在你已经看到了使用TorchServe服务于深度学习模型是多么容易!你想知道更多吗(Would you like to know more?)

停止TorchServe

要停止当前运行的TorchServe实例,运行:

torchserve --stop

检查日志

所有与模型注册、管理、推理相关的输出到stdout的日志都记录在/logs文件夹中。

可以使用基准测试生成吞吐量或百分位精度等高级性能数据,并在报告中可视化。

调试处理程序代码

如果你想调试处理程序代码,可以只使用后端运行TorchServe,因此可以使用任何python调试器。你可以参考这里定义的一个例子(here)

这篇关于pytorch serve开始-Getting started的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/477017

相关文章

Pytorch介绍与安装过程

《Pytorch介绍与安装过程》PyTorch因其直观的设计、卓越的灵活性以及强大的动态计算图功能,迅速在学术界和工业界获得了广泛认可,成为当前深度学习研究和开发的主流工具之一,本文给大家介绍Pyto... 目录1、Pytorch介绍1.1、核心理念1.2、核心组件与功能1.3、适用场景与优势总结1.4、优

conda安装GPU版pytorch默认却是cpu版本

《conda安装GPU版pytorch默认却是cpu版本》本文主要介绍了遇到Conda安装PyTorchGPU版本却默认安装CPU的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目录一、问题描述二、网上解决方案罗列【此节为反面方案罗列!!!】三、发现的根本原因[独家]3.1 p

PyTorch中cdist和sum函数使用示例详解

《PyTorch中cdist和sum函数使用示例详解》torch.cdist是PyTorch中用于计算**两个张量之间的成对距离(pairwisedistance)**的函数,常用于点云处理、图神经网... 目录基本语法输出示例1. 简单的 2D 欧几里得距离2. 批量形式(3D Tensor)3. 使用不

PyTorch高级特性与性能优化方式

《PyTorch高级特性与性能优化方式》:本文主要介绍PyTorch高级特性与性能优化方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、自动化机制1.自动微分机制2.动态计算图二、性能优化1.内存管理2.GPU加速3.多GPU训练三、分布式训练1.分布式数据

判断PyTorch是GPU版还是CPU版的方法小结

《判断PyTorch是GPU版还是CPU版的方法小结》PyTorch作为当前最流行的深度学习框架之一,支持在CPU和GPU(NVIDIACUDA)上运行,所以对于深度学习开发者来说,正确识别PyTor... 目录前言为什么需要区分GPU和CPU版本?性能差异硬件要求如何检查PyTorch版本?方法1:使用命

pytorch自动求梯度autograd的实现

《pytorch自动求梯度autograd的实现》autograd是一个自动微分引擎,它可以自动计算张量的梯度,本文主要介绍了pytorch自动求梯度autograd的实现,具有一定的参考价值,感兴趣... autograd是pytorch构建神经网络的核心。在 PyTorch 中,结合以下代码例子,当你

在PyCharm中安装PyTorch、torchvision和OpenCV详解

《在PyCharm中安装PyTorch、torchvision和OpenCV详解》:本文主要介绍在PyCharm中安装PyTorch、torchvision和OpenCV方式,具有很好的参考价值,... 目录PyCharm安装PyTorch、torchvision和OpenCV安装python安装PyTor

pytorch之torch.flatten()和torch.nn.Flatten()的用法

《pytorch之torch.flatten()和torch.nn.Flatten()的用法》:本文主要介绍pytorch之torch.flatten()和torch.nn.Flatten()的用... 目录torch.flatten()和torch.nn.Flatten()的用法下面举例说明总结torch

使用PyTorch实现手写数字识别功能

《使用PyTorch实现手写数字识别功能》在人工智能的世界里,计算机视觉是最具魅力的领域之一,通过PyTorch这一强大的深度学习框架,我们将在经典的MNIST数据集上,见证一个神经网络从零开始学会识... 目录当计算机学会“看”数字搭建开发环境MNIST数据集解析1. 认识手写数字数据库2. 数据预处理的

Pytorch微调BERT实现命名实体识别

《Pytorch微调BERT实现命名实体识别》命名实体识别(NER)是自然语言处理(NLP)中的一项关键任务,它涉及识别和分类文本中的关键实体,BERT是一种强大的语言表示模型,在各种NLP任务中显著... 目录环境准备加载预训练BERT模型准备数据集标记与对齐微调 BERT最后总结环境准备在继续之前,确