返回顶部
首页 > 资讯 > 精选 >怎么用PyTorch部署模型
  • 379
分享到

怎么用PyTorch部署模型

2023-06-29 03:06:51 379人浏览 独家记忆
摘要

本篇内容介绍了“怎么用PyTorch部署模型”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!使用Docker安装安装torchserve最好的

本篇内容介绍了“怎么用PyTorch部署模型”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

使用Docker安装

安装torchserve最好的方法是使用docker。你只需要把镜像拉下来。

可以使用以下命令保存最新的镜像。

docker pull pytorch/torchserve:latest

Handlers

处理程序负责使用模型对一个或多个Http请求进行预测。

默认 handlers

Torchserve支持以下默认 handlers

  • image_classifier

  • object_detector

  • text_classifier

  • image_segmenter

但是请记住,它们都不支持batching请求!

自定义 handlers

torchserve提供了一个丰富的接口,可以做几乎所有你想做的事情。一个Handler是一个必须有三个函数的类。

  • preprocess

  • inference

  • postprocess

你可以创建你自己的类或者子类BaseHandler。子类化BaseHandler 的主要优点是可以在self.model上访问加载的模型。下面的代码片段展示了如何子类化BaseHandler

怎么用PyTorch部署模型

子类化BaseHandler以创建自己的handler

回到图像分类的例子。我们需要

  • 从每个请求中获取图像并对其进行预处理

  • 从模型中得到预测

  • 发送回一个响应

预处理

.preprocess函数接受请求数组。假设我们正在向服务器发送一个图像,可以从请求的databody字段访问序列化的图像。因此,我们可以遍历所有请求并单独预处理每个图像。完整的代码如下所示。

怎么用PyTorch部署模型

预处理每个请求中的每个图像

self.transfORM是我们的预处理变换,没什么花哨的。对于在ImageNet上训练的模型来说,这是一个经典的预处理步骤。

怎么用PyTorch部署模型

我们的transform

在我们对每个请求中的每个图像进行预处理之后,我们将它们连接起来创建一个pytorch张量。

推理

怎么用PyTorch部署模型

在模型上进行推理

这一步很简单,我们从 .preprocess得到张量。然后对每幅图像提取预测结果。

后处理

现在我们有了对每个图像的预测,我们需要向客户返回一些内容。Torchserve总是返回一个数组BaseHandler也会自动打开一个.JSON 文件带有index -> label的映射(稍后我们将看到如何提供这样的文件),并将其存储self.mapping中。我们可以为每个预测返回一个字典数组,其中包含labelindex 的类别。

怎么用PyTorch部署模型

把所有的东西打包到一起,我们的handler是这样的:

怎么用PyTorch部署模型

怎么用PyTorch部署模型

因为所有的处理逻辑都封装在一个类中,所以你可以轻松地对它进行单元测试

导出你的模型

Torchserve 需要提供一个.mar文件,简而言之,该文件只是把你的模型和所有依赖打包在一起。要进行打包,首先需要导出经过训练的模型。

导出模型

有三种方法可以导出torchserve的模型。到目前为止,我发现的最好的方法是trace模型并存储结果。这样我们就不需要向torchserve添加任何额外的文件。

让我们来看一个例子,我们将部署一个经过充分训练的ResNet34模型。

怎么用PyTorch部署模型

按照顺序,我们:

  • 加载模型

  • 创建一个dummy输入

  • 使用torch.jit.trace来trace模型的输入

  • 保存模型

创建 .mar 文件

你需要安装torch-model-arcHiver

git clone https://GitHub.com/pytorch/serve.gitcd serve/model-archiverpip install .

然后,我们准备好通过使用下面的命令来创建.mar文件。

torch-model-archiver --model-name resnet34 \--version 1.0 \--serialized-file resnet34.pt \--extra-files ./index_to_name.json,./MyHandler.py \--handler my_handler.py  \--export-path model-store -f

按照顺序。变量--model-name定义了模型的最终名称。这是非常重要的,因为它将是endpoint的名称空间,负责进行预测。你还可以指定一个--version--serialized-file指向我们之前创建的存储的 .pt模型。--handler 是一个python文件,我们在其中调用我们的自定义handler。一般来说,是这样的:

怎么用PyTorch部署模型

my_handler.py

它暴露了一个handle函数,我们从该函数调用自定义handler中的方法。你可以使用默认名称来使用默认handler(例如,--handler image_classifier)。

--extra-files中,你需要将路径传递给你的handlers正在使用的所有文件。在本例中,我们必须向.json文件中添加路径。使用所有人类可读标签名称,并在MyHandler.py 中定义每个类别。

如果你传递一个index_to_name.json文件,它将自动加载到handler ,并通过self.mapping访问。

--export-path就是 .mar存放的地方,我还添加了-f来覆盖原有的文件。

如果一切顺利的话,你可以看到resnet34.mar存放在./model-store路径中。

用模型进行服务

这是一个简单的步骤,我们可以运行带有所有必需参数的torchserve docker容器

docker run --rm -it \-p 3000:8080 -p 3001:8081 \-v $(pwd)/model-store:/home/model-server/model-store pytorch/torchserve:0.1-cpu \torchserve --start --model-store model-store --models resnet34=resnet34.mar

我将容器端口8080和8081分别绑定到3000和3001(8080/8081已经在我的机器中使用)。然后,我从./model-store 创建一个volume。最后,我通过padding  model-store并通过key-value列表的方式指定模型的名称来调用torchserve

这里,torchserve有一个endpoint  /predictions/resnet34,我们可以通过发送图像来预测。这可以使用curl来实现。

curl -X POST http://127.0.0.1:3000/predictions/resnet34 -T inputs/kitten.jpg

回复:

{  "label": "tiger_cat",  "index": 282}

工作正常!

“怎么用PyTorch部署模型”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: 怎么用PyTorch部署模型

本文链接: https://lsjlt.com/news/322311.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么用PyTorch部署模型
    本篇内容介绍了“怎么用PyTorch部署模型”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!使用Docker安装安装torchserve最好的...
    99+
    2023-06-29
  • 教你用PyTorch部署模型的方法
    目录导读使用Docker安装Handlers导出你的模型用模型进行服务总结导读 演示了使用PyTorch最近发布的新工具torchserve来进行PyTorch模型的部署。 最近,...
    99+
    2024-04-02
  • PyTorch的模型部署方式是什么
    PyTorch模型的部署方式通常有以下几种: 部署到本地计算机:可以在本地计算机上使用PyTorch的预训练模型或自己训练的模型...
    99+
    2024-03-14
    PyTorch
  • PyTorch模型安卓部署流程(NCNN)
            上一篇介绍了PyTorch模型部署流程(Onnx Runtime)的相关部署流程,再来简单的回顾一下~ 深度学习模型部署介绍         模型部署指让训练好的深度学习模型在特定环境中运行的过程。模型部署会面临的难题: 运...
    99+
    2023-08-31
    pytorch 人工智能 python
  • pytorch 使用半精度模型部署的操作
    背景 pytorch作为深度学习的计算框架正得到越来越多的应用. 我们除了在模型训练阶段应用外,最近也把pytorch应用在了部署上. 在部署时,为了减少计算量,可以考虑使用16位浮...
    99+
    2024-04-02
  • 如何在pytorch中部署半精度模型
    如何在pytorch中部署半精度模型?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。具体方法在pytorch中,一般模型定义都继承torch.nn.Moudle,...
    99+
    2023-06-15
  • 详解 PyTorch Lightning模型部署到生产服务中
    目录导读使用PyTorch Lightning模型进行推理的各种方法1. 直接打包部署PyTorch Lightning模型2. 导出为ONNX并通过ONNX Runtime进行服务...
    99+
    2024-04-02
  • PyTorch中如何进行模型的部署和推理
    在PyTorch中进行模型的部署和推理通常有以下几个步骤: 加载已经训练好的模型: import torch import to...
    99+
    2024-03-05
    PyTorch
  • c++部署yolov5模型
    C++部署yolov5模型 前言一、准备模型二、Fastdeploy准备三 调用总结 前言 不可否认,yolov5在目标检测方面大杀四方,在 SOTA 榜上留下过万众瞩目的成绩,但是官网代...
    99+
    2023-09-04
    c++ YOLO python
  • 怎么使用flask将模型部署为服务
    这篇文章将为大家详细讲解有关怎么使用flask将模型部署为服务,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1. 加载保存好的模型为了方便起见,这里我们就使用简单的分词模型,相关代码如下:model.py...
    99+
    2023-06-15
  • pytorch怎么用gpu训练模型
    在PyTorch中使用GPU进行模型训练可以极大地加速训练过程。以下是一些简单的步骤来使用GPU训练模型: 检查是否有可用的GPU...
    99+
    2024-04-02
  • 如何将pytorch模型部署到安卓上的方法示例
    目录模型转化安卓部署新建项目导入包页面文件模型推理这篇文章演示如何将训练好的pytorch模型部署到安卓设备上。我也是刚开始学安卓,代码写的简单。 环境: pytorch版本:1.1...
    99+
    2024-04-02
  • 【模型部署】TensorRT的安装与使用
    文章目录 1.TensorRT的安装1.1 cuda/cudnn以及虚拟环境的创建1.2 根据cuda版本安装相对应版本的tensorRT 2. TensorRT的使用2.1 直接构建2....
    99+
    2023-09-03
    python tensorRT 模型部署
  • tensorflow模型部署的方法是什么
    在TensorFlow中,有几种常见的方法可以部署模型: 使用TensorFlow Serving:TensorFlow Ser...
    99+
    2024-03-13
    tensorflow
  • Gradio机器学习模型快速部署工具怎么应用
    这篇文章主要介绍了Gradio机器学习模型快速部署工具怎么应用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Gradio机器学习模型快速部署工具怎么应用文章都会有所收获,下面我们一起来看看吧。1.嵌入 IFra...
    99+
    2023-07-05
  • parameter与buffer怎么在Pytorch模型中使用
    本篇文章给大家分享的是有关parameter与buffer怎么在Pytorch模型中使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。第一种参数有两种方式我们可以直接将模型的成...
    99+
    2023-06-15
  • 怎么部署深度学习模型到云服务器
    要部署深度学习模型到云服务器,通常可以按照以下步骤进行: 准备模型和数据:首先需要将训练好的深度学习模型以及相关的数据准备好,可以...
    99+
    2024-05-21
    深度学习
  • Gradio机器学习模型快速部署工具quickstart怎么使用
    本文小编为大家详细介绍“Gradio机器学习模型快速部署工具quickstart怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Gradio机器学习模型快速部署工具quickstart怎么使用”文章能帮助大家解决疑惑,下面跟着小编的...
    99+
    2023-07-05
  • 如何使用flask将模型部署为服务
    目录1. 加载保存好的模型2. 使用flask起服务3. 发送请求并得到结果4. 效果呈现1. 加载保存好的模型 为了方便起见,这里我们就使用简单的分词模型,相关代码如下:mode...
    99+
    2024-04-02
  • tensorflow模型上线部署的方法是什么
    TensorFlow模型部署主要有以下几种方法: TensorFlow Serving:TensorFlow Serving是一个...
    99+
    2024-03-13
    tensorflow
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作