K8s环境部署Triton实现云端模型推理

news2025/1/18 10:40:59

前置条件:K8集群、helm

1、以模型名作为目录名,创建目录

mkdir resnet50_pytorch

2、将模型文件、配置文件(输入、输出等)存到刚创建的目录下,resnet50_pytorch目录下文件层级结构如下

model-respository/
└── resnet50_pytorch            # 模型名字,需要和config.txt中名字一致
    ├── 1                       # 模型版本号
    │   └── model.pt            # 上面保存的模型
    ├── config.pbtxt            # 模型配置文件,必需
    ├── labels.txt              # 可选,分类标签信息,注意格式
    ├── resnet_client.py        # 客户端脚本,可以不放在这里
    └── resnet_pytorch.py       # 生成 model.pt 的脚本,可以不放在这里

3、生成模型model.pt的脚本resnet_pytorch.py如下

import torch
import torchvision.models as models

resnet50 = models.resnet50(pretrained=True)
resnet50.eval()
image = torch.randn(1, 3, 244, 244)
resnet50_traced = torch.jit.trace(resnet50, image)
resnet50(image)
resnet50_traced.save('model.pt')

4、模型配置文件config.pbtxt示例如下,模型的输入是[ N, 3, -1, -1 ] 的图片,输出是 [ N, 1000 ] 维度的分类向量,并指定了分类的文件名,用于获取分类结果

name: "resnet50_pytorch"
platform: "pytorch_libtorch"
max_batch_size: 128
input [
  {
    name: "INPUT__0"
    data_type: TYPE_FP32
    dims: [ 3, -1, -1 ]
  }
]
output [
  {
    name: "OUTPUT__0"
    data_type: TYPE_FP32
    dims: [ 1000 ]
    label_filename: "labels.txt"
  }
]

5、通过http调用Triton推理服务的脚本:resnet_client.py示例

import numpy as np
import tritonclient.http as httpclient
import torch
from PIL import Image


if __name__ == '__main__':
    triton_client = httpclient.InferenceServerClient(url='10.114.242.30:30381')#dev环境
    #triton_client = httpclient.InferenceServerClient(url='20.102.236.169:8000')#生产环境
    image = Image.open('./cat.jpg')
    
    image = image.resize((224, 224), Image.ANTIALIAS)
    image = np.asarray(image)
    image = image / 255
    image = np.expand_dims(image, axis=0)
    image = np.transpose(image, axes=[0, 3, 1, 2])
    image = image.astype(np.float32)

    inputs = []
    inputs.append(httpclient.InferInput('INPUT__0', image.shape, "FP32"))
    inputs[0].set_data_from_numpy(image, binary_data=False)
    outputs = []
    outputs.append(httpclient.InferRequestedOutput('OUTPUT__0', binary_data=False, class_count=3)) 

    results = triton_client.infer('resnet50_pytorch', inputs=inputs, outputs=outputs)
    output_data0 = results.as_numpy('OUTPUT__0')
    print(output_data0.shape)
    print(output_data0)

执行命令python3 resnet_client.py输出如下,根据传入的图片,可以识别出图片内容

参考文章:

https://github.com/zzk0/triton/tree/master/quick/resnet50_pytorch

https://www.cnblogs.com/zzk0/p/15543824.html

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

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

相关文章

攫取 RGB图像 和 PCM音频 数据

一、获取源码 1. 下载地址 Github: https://github.com/Gaaagaa/MediaGrabber 2. 编译提醒 这个测试程序,是使用 QtCreator 写的 Qt 界面程序,调用我封装好的 vlc_mgrabber_t 类实现了一个简单的播放器。MFC的我也写过相应的测试程序,这里…

Web安全:Redis 未授权访问漏洞 测试.

Web安全:Redis 未授权访问漏洞 测试. Redis 默认情况下绑定在 6379 端口,然后如果没有进行添加防火墙规则避免其他非信任来源 IP 访问等相关安全策略,直接暴露在公网上。然后再没有设置密码或者设置了弱密码,因此导致此漏洞的产生…

第12届蓝桥杯Scratch省赛真题集锦

编程题 第 1 题 问答题 下雨 题目说明 编程实现: 下雨。 具体要求: 1).点击绿旗,角色与背景如下图所示呈现在对应位置; 2).小猫说:“快下雨了,赶快回家”,小狗说:“我再玩一会”; 3).开始下雨,雨滴持续下落, 4).小猫…

【WinForm】继承窗体

1、VS创建2个界面,分别为Form1、Form2 2、重新生成后,将Form的父类改为Form1 3、观察设计界面,Form2继承了Form1窗体的控件,且处于锁定状态 4、在Form1中创建点击事件,改写标签信息,验证此时的类对象 …

Qt文件系统源码分析—第六篇QSaveFile

深度 本文主要分析Windows平台,Mac、Linux暂不涉及 本文只分析到Win32 API/Windows Com组件/STL库函数层次,再下层代码不做探究 本文QT版本5.15.2 类关系图 QTemporaryFile继承QFile QFile、QSaveFile继承QFileDevice QFileDevice继承QIODevice Q…

Linux:软件管理器yum编辑器vim

软件管理器yum&&编辑器vim 🔆软件管理器yum软件包是什么rzsz网络通畅性验证查看软件包怎么安装软件安装yum扩展源怎么卸载软件 🔆编辑器vim基本概念基本操作正常模式指令集末行模式指令集简单配置vim配置文件的位置常用配置选项使用插件参考资料…

初阶数据结构(6)(队列的概念、常用的队列方法、队列模拟实现【用双向链表实现、用数组实现】、双端队列 (Deque)、OJ练习【用队列实现栈、用栈实现队列】)

接上次博客:初阶数据结构(5)(栈的概念、栈的模拟实现、栈的应用及练习【改变元素的序列 、 将递归转化为循环、括号匹配、逆波兰表达式求值、出栈入栈次序匹配、最小栈】、链栈和顺序栈栈、虚拟机栈、栈帧的区别)_di-D…

2023年天猫618活动iPhone苹果手机800元优惠券怎么领取?2023天猫618红包预售满减活动时间是从几号什么时候开始?

2023年淘宝天猫618活动期间Apple iPhone 14 Pro Max无疑是一款令人期待的顶级智能手机。从其出色的设计、强大的性能到出色的摄像功能和整合的生态系统,它将成为我们追求科技潮流和卓越体验的理想选择。如果你也想拥有一部顶级的智能手机,不妨关注iPhone…

从月薪8k到月薪30k,自动化测试究竟该怎样学...

绝大多数测试工程师都是从功能测试做起的,工作忙忙碌碌,每天在各种业务需求学习和点点中度过,过了好多年发现自己还只是一个功能测试工程师。 随着移动互联网的发展,从业人员能力的整体进步,软件测试需要具备的能力要…

大学生数学建模题论文

大学生数学建模题论文篇1 浅论高中数学建模与教学设想 论文关键词:数学建模 数学 应用意识 数学建模教学 论文摘要:为增强学生应用数学的意识,切实培养学生解决实际问题的能力,分析了高中数学建模的必要性,并通过对高中…

【Linux】1、systemd 超详细介绍

文章目录 一、背景二、系统管理2.1 systemctl2.1.1 State: degraded2.2 systemd-analyze2.3 hostnamectl2.4 localectl2.5 timedatectl2.6 loginctl 三、Unit3.1 含义3.2 展示3.3 状态3.4 管理3.5 依赖关系 四、Unit 的配置文件4.1 配置文件层级4.2 配置文件的状态4.3 配置文件…

多大的串扰算大?

串扰是三个重要的噪声源之一,它会使接收信号失真并使电压噪声引起误码。多大算大显然取决于我们实际的应用。但是,如果只需要粗略估计的话,应该是多少呢? 在单端系统中,从所有源头设计的最大串扰量应小于信号摆幅的5&a…

Nautilus Chain上线主网,为DeFi和流支付的未来构建基础

近日,加密行业权威平台 Coinmarketcap 发表了一篇名为“Zebec 模块化 Layer3 链 Nautilus Chain上线主网,为 DeFi 和流支付的未来构建基础”的文章,文中对 Zebec 生态公链 Nautilus Chain 的生态进展进行了简要的报道,并对其进行了…

x86游戏逆向之实战游戏线程发包与普通发包的逆向

网游找Call的过程中难免会遇到不方便通过数据来找的或者仅仅查找数据根本找不到的东西,但是网游中一般的工程肯定要发给服务器,比如你打怪,如果都是在本地处理的话就特别容易产生变态功能,而且不方便与其他玩家通信,所…

Mysql中json类型数据查询

mysql在5.7版本之后就开始支持json数据类型,并且mysql8.0版本对json的处理已经做的非常完善了。json数据类型的优点缺点可自己查询,本文主要介绍一些关于json数据类型的查询操作。 下面用这个表来执行查询演示: CREATE TABLE users (id int unsigned N…

保洁巡检表如何生成二维码?轻松一招快速制作二维码

各大商场每天都需要保洁人员定时清理,为了方便统计管理可将保洁巡检表做成二维码。扫码就能在线填写保洁信息,实时更新信息内容。这种,二维码图片是怎么制作的呢? 一、什么工具能够生成二维码? 机智熊二维码生成器&…

优化带排序的分页查询

优化带排序的分页查询 浅分页: select user_no,user_name,socre from student order by score desc limit 5,20 深分页: select user_no,user_name,socre from student order by score desc limit 80000,20 因为偏移量深分页更大,所以深分页执…

chatgpt赋能python:Python改定位:从脚本语言到全栈语言的转变

Python 改定位:从脚本语言到全栈语言的转变 Python 作为一门面向对象的高级编程语言,一直以来被认为是一种脚本语言。但随着时间的推移,Python 逐渐从科学计算和自动化脚本领域出发,逐步地向全栈领域发展。 Python 的脚本语言起…

【数据结构】特殊的二叉树及其两种存储结构

文章目录 一、二叉树的定义二、特殊的二叉树三、二叉树的存储结构1.顺序结构存储2.链式结构存储 一、二叉树的定义 ​ 了解到树结构之后,介绍一下二叉树,首先我们来做个游戏,我在纸上巳经写好了一个l00以内的正整数数字,请大家想…

1166:求f(x,n) 和1167:再求f(x,n)

1166&#xff1a;求f(x,n) 看起来有点意思的函数题&#xff0c;递归即可 想听题解推荐&#xff1a;《信息学奥赛一本通》题解_1166_求f(x,n) #include <iostream> #include <vector> #include <queue> #include <deque> #include <forward_list>…