深度学习系列70:模型部署torchserve

1. 流程说明

ts文件夹下,
从launcher.py进入,执行jar文件。
入口为model_server.py的start()函数。内容包含:

  1. 读取args,创建pid文件
    在这里插入图片描述
  2. 找到java,启动model-server.jar程序,同时读取log-config文件,TEMP文件夹地址,TS_CONFIG_FILE文件
  3. 根据cpu核数、gpu个数,启动多进程。每个进程有一个socket_name和socket_type,执行model_service_worker.py,创建TorchModelServiceWorker类,并执行run_server方法。run_server不断执行handle_connection方法,handle_connection不断执行predict(cmd为I时)或者load_model(cmd为L时)任务。
  4. load_model可以返回service对象,而service可以执行predict函数。如果handler中间包含冒号,则用后面的function作为_entry_point,否则默认用handle函数作为_entry_point。
  5. service的定义如下。其中manifest是一个字典,记录在MAR包里面的MAR_INF/MANIFEST.json中,包含modelName,serializedFile,handler,modelVersion等信息。这些信息也是modelArchiver打包模型时需要的内容。
class Service(object):"""Wrapper for custom entry_point"""def __init__(self,model_name,model_dir,manifest,entry_point,gpu,batch_size,limit_max_image_pixels=True,metrics_cache=None,):
  1. 接下来看一下predict函数。首先是调用retrieve_data_for_inference方法获取input_batch,其格式为{parameter["name"]: parameter["value"]}。然后是调用ret = self._entry_point(input_batch, self.context),这里的_entry_point就是我们自己定义的handler.handle方法。默认的handle方法执行三步:
data_preprocess = self.preprocess(data)
output = self.inference(data_preprocess)
output = self.postprocess(output)

2. 运行

  1. 首先安装java,然后pip install torchserve torch-model-archiver
  2. 接着将模型和参数打包:torch-model-archiver --model-name test --version 1.0 --serialized-file test.torchscript.pt --handler handler_test.py --export-path model_store
  3. 启动服务torchserve --start --ncs --model-store model_store --models test.mar --disable-token-auth --ts-config config.properties
  4. 停止服务torchserve --stop
  5. 调用:
res = requests.post("http://127.0.0.1:8080/predictions/test",files = {"data":data})

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据库表结构创建

一、原型图 二、分析 1、天气,值字段只有实测值,可用一个字段表示(单位、来源同上) 2、气温有默认值与实测值两个选项,一个字段无法表示默认值与实测值(单位,来源同上) 3、因为有…

【Kettle实现神通(数据库)MPP增量、全量数据ETL,同步任务Linux运行(通用)】

1、背景介绍 具体Kettle操作步骤不做过多介绍,主要技术方案说明,Kettle8.2版本放在底部链接提取,本次采用Kettle实现源端:神通数据通用库、目标端:神通MPP增量数据同步,并在服务器端运行Job。 2、windows…

【AIGC】构建自己的谷歌搜索引擎服务并使用

一、谷歌 谷歌的搜索引擎需要自己创建服务才能启用检索api。(需自行翻墙和创建自己的谷歌账号) 1.1 API服务创建 1)登陆https://console.cloud.google.com/: 2) 选择新建项目,取号项目名即可(比如:Olin…

在 Windows 搭建 flink 运行环境并模拟流数据处理

一、引入 在大数据场景中,开发者追求高效与灵活,Linux 系统以其稳定性成为众多组件的首选,但在资源有限的情况下,在本机搭建一个 Linux 虚拟机集群却显得过于笨重,启动、运行占资源,需要配置网络,无法和windows共享资源,尤其是对只有 8GB 内存的 Windows 系统用户来说…

钙成像数据建模为行为事件

摘要 我在触摸屏盒中记录了小鼠在进行行为学习任务时的钙映像数据。 我想找到一种方法来整合神经数据(100 个个体细胞随时间的活动(约 30,000 x 约 30 毫秒时间段))和行为数据(动物在行为任务期间做出的时间戳动作和决…

电脑如何进行录屏?电脑录屏无压力!

在数字时代,屏幕录制已成为我们日常生活和工作中不可或缺的一部分。无论你是想要制作教程、记录游戏过程,还是捕捉在线会议的精彩瞬间,掌握屏幕录制的方法都显得尤为重要。本文将为你详细介绍电脑如何进行录屏,帮助你轻松捕捉屏幕…

MySql 触发器、存储器练习

一: 触发器 1、建立两个表:goods(商品表)、orders(订单表) 查看数据库:mysql> show databases; 使用数据库:mysql> use mydb16_trigger; 创建goods表: mysql> create table goods(gid char(8) not null primary key, …

免费【2024】springboot 畅游游戏销售平台

博主介绍:✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术范围:SpringBoot、Vue、SSM、HTML、Jsp、PHP、Nodejs、Python、爬虫、数据可视化…

AnyMP4 Data Recovery for Mac v1.5.8免激活版:高效数据恢复新选择

AnyMP4 Data Recovery for Mac是一款专为Mac用户设计的高效数据恢复软件,凭借其强大的功能和简洁的操作界面,为用户提供了快速、安全的数据恢复体验。 该软件支持恢复多种文件类型,包括照片、视频、音频、文档等,无论是常见的图片…

pytorch-梯度下降

梯度下降 y x 2 ∗ s i n ( x ) y ′ 2 x s i n x x 2 c o s x x 1 x − Δ y ′ ( x ) 其中 Δ 表示学习率, y ′ ( x ) 代表 y 在 x 点处关于 x 的梯度。 y x^2 * sin(x) \\ y 2xsinxx^2cosx \\ x_1 x - \Delta y(x) \\ 其中 \Delta 表示学习率&#xff0c…

python机器学习8--自然语言处理(2)

1.移除用词 在很多情况下,有一些文章内的英文字符、标点符号分词的结果不符合自己的预期,会出现一些不想要的分词,此时就能通过以下的函数自己设定用词,并且删除。 jieba.analyse.set_stop_words("stop_words.tx…

uniapp引入自定义图标

目录 一、选择图标,加入购物车 二、下载到本地 三、导入项目 四、修改字体引用路径 五、开始使用 这里以扩展iconfont图标为例 官网:iconfont-阿里巴巴矢量图标库 一、选择图标,加入购物车 二、下载到本地 直接点击下载素材&#xff0…

地球的2亿年轮回:彗星雨下的地质巨变与未来展望

在浩瀚的宇宙中,地球正悄然经历着一次巨大的轮回。你是否曾想过,地球为何拥有如此活跃的板块构造和与众不同的大陆?科学家们发现,每隔大约2亿年,地球便会遭遇一场彗星雨,这场彗星淋浴不仅改变了地球的面貌&…

【TAROT学习日记】韦特体系塔罗牌学习(8)——战车 THE CHARIOT VII

韦特体系塔罗牌学习(8)——战车 THE CHARIOT VII 目录 韦特体系塔罗牌学习(8)——战车 THE CHARIOT VII牌面分析1. 基础信息2. 图片元素 正位牌意1. 关键词/句2.爱情婚姻3. 学业事业4. 人际财富5. 其他象征意 逆位牌意1. 关键词/句…

yolov5使用flask部署至前端,实现照片\视频识别

初学yolo flask时,需要此功能,Csdn、Github、B站找到许多代码,效果并不满意。 近期,再度尝试,实现简单功能。 实现功能: 上传图片并识别,可以点击图片放大查看 上传视频并识别 识别后的文件下载功能 …

Windows电脑如何启动RTSP服务实现本地摄像头数据共享

技术背景 提起Windows共享本地摄像头,好多人想到的是通过ffmepg或vlc串流到服务器,实际上,用轻量级RTSP服务更简单,本文就介绍下,如何用大牛直播SDK的Windows轻量级RTSP服务,采集摄像头,生成本…

人工智能历史:从梦想到现实的变革之路

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

Git 安装教程

1、登录git 官方网站:https://git-scm.com/ 点击左边的 Downloads 或者 右边标识的下载标志,它根据电脑操作系统自动匹配版本 Downloads for Windows 2、以 windows 为例下载对应版本 网络有时可能不大好,阿里镜像下载超快。 下载好以后&a…

Tensorflow中高维矩阵的乘法运算tf.matmul(tf.linalg.matmul)详悉

1.问题由来 在tensorflow框架下,经常会用到矩阵的乘法运算,特别是高(多)维的矩阵运算,在这些矩阵运算时,经常使用到其中的tf.matmul或tf.linalg.matmul等函数。但高维矩阵在内部怎么运算的?其内…

【深度学习入门】安装conda/miniconda、所需包类、CUDA与conda/Miniconda间的关系

深度学习入门 须知 本教程跟随李沐老师课程随笔,课程链接点击此处。 CUDA和Anaconda的关系 CUDA Toolkit是由Nvidia官方提供的完整工具包,其中提供了Nvidia驱动程序、开发CUDA程序相关的开发工具包等。 Anaconda在安装Pytorch等会用到的CUDA的框架时…