NVIDIA Triton系列07-image_client 用户端参数

1.triton镜像使用 1)拉取镜像2)启动容器指定模型仓库时可以执行server下的./fetch_model.sh,见2.2部分GPU版本的启动CPU版本的启动区别只在于--gpus=1这个参数注意:docker19.03之前的版本使用gpu要指定显卡硬件名,docker19.03之后的需要安装nvidia-container-toolkit或nvidia-container-runtime安装之后要重启docker查看gpus参数是否安装成功重新执行我遇到了如下错误先使用非GPU版本的。 阅读详情

NVIDIA Triton系列07-image_client 用户端参数

B站:肆十二-的个人空间-肆十二-个人主页-哔哩哔哩视频 (bilibili.com)

博客:肆十二-优快云博客

问答:(10 封私信 / 72 条消息) 肆十二 - 知乎 (zhihu.com)

作为服务器的最重要任务,就是要接受来自不同终端所提出的各种请求,然后根据要求执行对应的计算,再将计算结果返回给终端。

当 Triton 推理服务器运行起来之后,就进入等待请求的状态,因此我们所要提出的请求内容,就必须在用户端软件里透过参数去调整请求的内容,这部分在 Triton 相关使用文件中并没有提供充分的说明,因此本文的重点就在于用 Python 版的 image_client.py 来说明相关参数的内容,其他用户端的参数基本上与这个端类似,可以类比使用。

本文的实验内容,是将 Triton 服务器安装在 IP 为 192.168.0.10 的 Jetson AGX Orin 上,将 Triton 用户端装在 IP 为 192.168.0.20 的树莓派上,读者可以根据已有的设备资源自行调配。

在开始进行实验之前,请先确认以下两个部分的环境:

在服务器设备上启动 Triton 服务器,并处于等待请求的状态:

如果还没启动的话,请直接执行以下指令:

# 根据实际的模型仓根目录位置设定TRITON_MODEL_REPO路径$ export TRITON_MODEL_REPO= H O M E / t r i t o n / s e r v e r / d o c s / e x a m p l e s / m o d e l r e p o s i t o r y 执行 T r i t o n 服务器 {HOME}/triton/server/docs/examples/model_repository执行Triton服务器 HOME/triton/server/docs/examples/modelr​epository执行Triton服务器 docker run --rm --net=host -v ${TRITON_MODEL_REPO}:/models nvcr.io/nvidia/tritonserver:22.09-py3 tritonserver --model-repository=/models

在用户端设备下载 Python 的用户端范例,并提供若干张要检测的图片:

先执行以下指令,确认Triton服务器已经正常启动,并且从用户端设备可以访问:

$ curl -v 192.168.0.10:8000/v2/health/ready

只要后面出现的信息中有“HTTP/1.1 200 OK”部分,就表示一切正常。

如果还没安装 Triton 的 Python 用户端环境,并且还未下载用户端范例的话,请执行以下指令:

$ cd H O M E / t r i t o n {HOME}/triton HOME/triton git clone https://github.com/triton-inference-server/client$ cd client/src/python/examples# 安装 Triton 的 Python用户端环境$ pip3 install tritonclient[all] attrdict -i https://pypi.tuna.tsinghua.edu.cn/simple

最后记得在用户端设备上提供几张图片,并且放置在指定文件夹(例如~/images)内,准备好整个实验环境,就可以开始下面的说明。

现在执行以下指令,看一下 image_client 这个终端的参数列表:

$ python3 image_client.py

会出现以下的信息:

img

接下来就来说明这些参数的用途与用法。

用“-u”参数对远程服务器提出请求:

如果用户端与服务器端并不在同一台机器上的时候,就可以用这个参数对远程 Triton 服务器提出推理请求,请执行以下指令:

$ python3 image_client.py -m inception_graphdef -u 192.168.0.10:8000 -s INCEPTION ${HOME}/images/mug.jpg

由于 Triton 的跨节点请求主要透过 HTTP/REST 协议处理,需要透过 8000 端口进行传输,因此在“-u”后面需要接上“IP:8000”就能正常使用。

请自行检查回馈的计算结果是否正确!

2. 用“-m”参数去指推理模型:

从“python3 image_client.py”所产生信息的最后部分,可以看出用“-m”参数去指定推理模型是必须的选项,但是可以指定哪些推理模型呢?就得从 Triton 服务器的启动信息中去寻找答案。

下图是本范例是目前启动的 Triton 推理服务器所支持的模型列表:

img

这里显示有的 8 个推理模型,就是启动服务器时使用“–model-repository=”参数指定的模型仓内容,因此客户端使用“-m”参数指定的模型,必须是在这个表所列的内容之列,例如“-m densenet_onnx”、“-m inception_graphdef”等等。

现在执行以下两道指令,分别看看使用不同模型所得到的结果有什么差异:

$ python3 image_client.py -m densenet_onnx -u 192.168.0.10:8000 -s INCEPTION H O M E / i m a g e s / m u g . j p g {HOME}/images/mug.jpg HOME/images/mug.jpg python3 image_client.py -m inception_graphdef -u 192.168.0.10:8000 -s INCEPTION ${HOME}/images/mug.jpg

使用 densenet_onnx 模型与 inception_graphdef 模型所返回的结果,分别如下:

img

虽然两个模型所得到的检测结果一致,但是二者所得到的置信度表达方式并不相同,而且标签编号并不一样(504 与 505)。

这个参数后面还可以使用“-x”去指定“版本号”,不过目前所使用的所有模型都只有一个版本,因此不需要使用这个参数。

3. 使用“-s”参数指定图像缩放方式:

有些神经网络算法在执行推理之前,需要对图像进行特定形式的缩放(scaling)处理,因此需要先用这个参数指定缩放的方式,如果没有指定正确的模式,会导致推理结果的错误。目前这个参数支持{NONE, INSPECTION, VGG}三个选项,预设值为“NONE”。

在本实验 Triton 推理服务器所支持的 densenet_onnx 与 inception_graphdef 模型,都需要选择 INSPECTION 缩放方式,因此执行指令中需要用“-s INSPECTION”去指定,否则会得到错误的结果。

请尝试以下指令,省略前面指定中的“-s INSPECTION”,或者指定为 VGG 模式,看看结果如何?

$ python3 image_client.py -m inception_graphdef -u 192.168.0.10:8000 -s VGG ${HOME}/images/mug.jpg

4. 对文件夹所有图片进行推理

如果有多个要进行推理计算的标的物(图片),Triton 用户端可用文件夹为单位来提交要推理的内容,例如以下指令就能一次对 ${HOME}/images 目录下所有图片进行推理:

$ python3 image_client.py -m inception_graphdef -u 192.168.0.10:8000 -s INCEPTION ${HOME}/images

例如我们在文件夹中准备了 car.jpg、mug.jpg、vulture.jpg 三种图片,如下:

img

执行后反馈的结果如下:

img

显示推理检测的结果是正确的!

5. 用“-b”参数指定批量处理的值

执行前面指令的结果可以看到“batch size 1”,表示用户端每次提交一张图片进行推理,所以出现 Request 1、Request 2 与 Request 3 总共提交三次请求。

现在既然有 3 张图片,可否一次提交 3 张图片进行推理呢?我们可以用“-b”参数来设定,如果将前面的指令中添加“-b 3”这个参数,如下:

$ python3 image_client.py -m inception_graphdef -u 192.168.0.10:8000 -s INCEPTION ${HOME}/images -b 3

现在显示的结果如下:

img

现在看到只提交一次“batch size 3”的请求,就能对三张图片进行推理。如果 batch 值比图片数量大呢?例如改成“-b 5”的时候,看看结果如何?如下:

img

现在可以看到所推理的图片数量是 5,其中 1/4、2/5 是同一张图片,表示重复使用了。这样就应该能清楚这个“batch size”值的使用方式。

但如果这里将模型改成 densenet_onnx 的时候,执行以下指令:

$ python3 image_client.py -m densenet_onnx -u 192.168.0.10:8000 -s INCEPTION ${HOME}/images -b 3

会得到“ERROR: This model doesn’t support batching.”的错误信息,这时候就回头检查以下模型仓里 densenet_onnx 目录下的 config.pbtxt 配置文件,会发现里面设置了“max_batch_size : 0”,并不支持批量处理。

而 inception_graphdef 模型的配置文件里设置“max_batch_size : 128”,如果指令给定“-b”参数大于这个数值,也会出现错误信息。

6. 其他:

另外还有指定通讯协议的“-i”参数、使用异步推理 API 的“-a”参数、使用流式推理 API 的“–streaming”参数等等,属于较进阶的用法,在这里先不用过度深入。

以上所提供的 5 个主要参数,对初学者来说是非常足够的,好好掌握这几个参数就已经能开始进行更多图像方面的推理实验。

TensorRT&Triton学习笔记(一):triton和模型部署+client 前言 先介绍TensorRT、Triton的关系和区别: TensorRT:为inference(推理)为生,是NVIDIA研发的一款针对深度学习模型在GPU上的计算,显著提高GPU上的模型推理性能。即一种专门针对高性能推理的模型框架,也可以解析其他框架的模型如tensorflow、torch。 主要优化手段如下: Triton:类似于TensorFlow Serving,但triton包括server和client。 triton serving能够实现不同模型的统一部署和服务,提供http和grpc协 阅读详情

相关推荐

NVIDIA Triton客户端安装与连接测试指南

深度学习推理服务中,客户端与服务器的协同工作是实现高效模型部署的关键环节。NVIDIA Triton作为主流推理服务器框架,其客户端支持多种协议和编程语言接口,通过标准化通信协议实现跨平台交互。从技术实现看,客户端通过HTTP/gRPC等协议与服务器交换张量数据,利用版本兼容性检查和数据编码机制确保通信可靠性。在工程实践中,Python客户端因其易用性成为首选,通过pip安装即可快速集成到AI应用流水线中。典型应用场景包括实时图像分类、视频流分析和自然语言处理等,其中版本匹配、连接池管理和性能调优是保障生产

weixin_33139275的博客 353

NVIDIA NGC使用记录

NGC 介绍 参考 1,登陆(需要翻墙) 2,安装 NGC CLI 根据平台选择相应的下载,我是AMD64 先择执行下面的命令(关闭翻墙下载更快) wget -O ngccli_cat_linux.zip https://ngc.nvidia.com/downloads/ngccli_cat_linux.zip && unzip -o ngccli_cat_linux.zip && chmod u+x ngc md5sum -c ngc.md5 echo "expo

jaffe的博客 2097

Triton模型服务实战:医疗AI生产环境的稳定性保障

模型服务化是机器学习落地的核心环节,其本质是将离线训练好的模型转化为高可用、低延迟、可观测的在线API服务。理解Triton Inference Server的松耦合架构、动态批处理机制与模型仓库规范,是实现GPU资源高效利用和跨硬件推理一致性的关键技术基础。结合Feast特征服务构建物理隔离的特征-模型双通道,可显著提升系统容错性与性能可预测性。在医保、医疗影像等强合规场景中,P99延迟、特征新鲜度、预测漂移等SLO指标比准确率更具业务决定性。本文基于省级医保智能审核系统72小时上线实战,详解Triton

jlins_you的专栏 418

使用Nvidia Triton进行大模型推理的实战指南

在人工智能领域,尤其是大规模语言模型(LLM)的应用中,高效的推理(Inference)是关键。Nvidia的Triton推理服务器为托管LLM模型提供了API访问接口,大大加速了推理操作。本文将介绍如何安装和使用Triton推理服务器,并提供具体的示例代码。

qq_29929123的博客 947

Triton:Triton 是最终用户将运行的项目部分的代号

海卫一 Triton 是最终用户将运行的项目部分的代号。 部分 这段代码分为三个部分: Lib :这是大部分代码所在的地方,并在项目的所有方面共享。 它包含很大程度上独立于平台的代码。 Client-PC :这包含运行以在 PC 上执行应用程序的代码。 Client-PI :这包含运行以在 Raspberry Pi 上执行应用程序的代码。 设置环境 首先,下载- 这是对学生免费的,您应该使用您的 @cam 电子邮件地址创建一个帐户。 接下来,安装 - 在 Linux 上只需sudo apt-get install git 。 现在,设置- 您将使用 SSH 进行克隆。 现在,克隆存储库。 在终端中,切换到 WildPetScience 的项目目录,然后: $ git clone git@github.com:WildPetScience/Triton.git 回购现在被克

BIM模型轻量化避坑指南:Revit导出GLTF常见问题及解决方案

本文深入探讨了BIM模型轻量化过程中,从Revit导出GLTF格式时遇到的常见问题与解决方案。针对文件体积膨胀、材质丢失、属性信息缺失等核心痛点,提供了从数据预处理、Draco几何压缩、纹理优化到Web端性能调优的全流程实战指南,帮助工程师高效实现BIM模型在WebGL环境中的流畅展示与交互。

wdx012345的博客 171

Nvidia Triton 使用入门教程

所谓自定义backend就是自己写推理过程,正常情况下整个推理过程是通过模型直接解决的,但是有一些推理过程还会包含一些业务逻辑,比如:整个推理过程需要2个模型,其中要对第一个模型的输出结果做一些逻辑判断然后修改输出才能作为第二个模型的输入,最简单的做法就是我们调用两次triton服务,先调用第一个模型获取输出然后进行业务逻辑判断和修改,然后再调用第二个模型。不过在triton中我们可以自定义一个backend把整个调用过程写在里面,这样就简化调用过程,同时也避免了一部分http传输时延。

JineD的博客 3202

头歌工程实训答案-机器学习篇之手写体识别篇

第2关:激活函数'''x:负无穷到正无穷的实数'''if x<=0:return 0else:return x#***第3关:反向传播算法import os。

m0_71537260的博客 2518

NVIDIA Triton系列08-用户端其他特性

以上就是 Triton 用户端会用到的基本功能,不过缺乏足够的说明文件,因此其他功能函数的内容必须自行在开源文件内寻找,像 C++ 版本的功能得在 src/c++/library 目录下的 common.h、grpc_client.h 与 http_client.h 里找到细节,Python 版本的函数分别在 src/python/library/triton_client 下的 grpc、http、utils 下的。对 Triton 推理服务器而言,并不能确认所收到的推理要求是否为密集型的计算。

dejahu的博客 1143

手把手教你用VMware虚拟机搭建PCAN开发环境:从Ubuntu安装到CAN通讯实战

本文详细指导如何在VMware虚拟机中搭建PCAN开发环境,涵盖从Ubuntu系统安装、VMware精细配置、PCAN-USB设备直通,到Linux驱动编译、can-utils工具集使用及完整CAN通讯测试的全过程。通过实战步骤与故障排查技巧,帮助开发者快速构建稳定高效的CAN总线开发与测试沙盒,特别适合车载诊断与嵌入式通讯应用。

weixin_29216353的博客 223

高通引导文件获取全攻略:ELF/MBN提取与EDL救砖实战

在智能手机底层维护中,引导加载程序(Bootloader)是系统启动的第一道关卡。高通平台通过PBL、SBL1/XBL等阶段完成硬件初始化和安全校验,一旦引导分区损坏,设备便可能陷入黑砖状态。此时,掌握ELF与MBN格式的引导镜像获取方法,成为维修工程师和刷机用户的核心技能。通过官方固件包解包或借助EDL模式直接从设备分区备份,均能获得原厂匹配的引导文件。配合Firehose工具和9008端口通信,即可实现分区级读写与救砖恢复。本文从启动链路原理出发,对比两种获取路径的适用场景,并针对驱动识别、文件校验、分

weixin_30175731的博客 421

NVIDIA Triton客户端安装与配置指南

AI推理服务在现代机器学习应用中扮演着关键角色,而NVIDIA Triton作为高性能推理服务器,其客户端软件是实现与服务器通信的核心组件。客户端安装涉及CUDA工具包、cuDNN库等基础环境配置,支持pip直接安装、源码编译和Docker容器三种方式。其中,pip安装适合快速部署,源码编译便于自定义功能调试,Docker则提供环境隔离优势。合理选择安装方式能显著提升开发效率,特别是在需要处理图像分类、视频流等实际应用场景时。本文重点介绍NVIDIA Triton客户端的安装步骤、常见问题排查及性能调优技巧

weixin_34327761的博客 429

别再为reg2icg的setup违例头疼了!手把手教你用ICC2/Innovus这3招搞定(附实战数据对比)

本文详细介绍了在ICC2/Innovus中解决reg2icg的setup违例的三种高效方法,包括早期时钟树预估、精准控制时钟延迟与门控检查以及ICG专用优化选项组合。通过实战数据对比,展示了不同策略的效果差异,帮助工程师快速优化时序路径,提升芯片性能。

weixin_42569329的博客 407

Triton+FastAPI构建高可用AI推理服务实战

机器学习模型服务化是MLOps落地的核心环节,其本质是将离线训练成果转化为稳定、可观测、可伸缩的在线推理能力。关键在于解决模型封装、异构硬件适配、多模型协同、资源隔离与灰度发布等工程挑战。Triton Inference Server凭借对ONNX/TensorRT/PyTorch的原生支持、Ensemble流水线和开箱即用的GPU指标,成为高性能推理引擎首选;FastAPI则以轻量、异步和强类型校验优势,承担协议转换、安全守门与可观测性补全职责。二者组合在电商大促、金融风控、IoT边缘等真实场景中验证了低

abo1977的博客 397

Nvidia Isaac Sim图形界面 入门教程 2024(3)

在使用Isaac Sim时,最先接触到的应该是它的图形界面,此处将简单介绍图形界面中常用的一些组件:Isaac Sim的界面的常用内容可以分为几个板块。

m0_56661101的博客 4547

手机移动端-纯js浏览器h5调用摄像头扫描识别解析 条形码+二维码

一、场景 h5原生js 浏览器端解决识别二维码条形码功能; 不借助Hbuilder.需要自己打包成APP,比如用Hbuilder打包,浏览器端项目h5无打包成app部署X不采用 不借助微信扫一扫,调用微信js-jdk有多麻烦,还要认证服务号,也不适用其它浏览器打开X不采用 二、思路 1.思路一:input(相机拍照)+条形码或二维码识别js支持库 通过h5-input[camera]调用相机进行拍照成图片,通过条形码等识别库解析出数据; <input @cha...

徐子厚的博客 3万+

生产级机器学习服务:从Notebook到高可用模型API的落地实践

机器学习模型服务化是将训练好的模型转化为稳定、可监控、可伸缩API的关键过程。其核心原理在于突破单次推理范式,构建具备资源隔离、动态批处理、健康自愈与版本编排能力的服务架构。技术价值体现在显著提升GPU利用率、降低P99延迟、保障业务连续性,并支撑A/B测试与灰度发布等工程实践。典型应用场景覆盖金融风控实时评分、电商个性化推荐及IoT设备边缘预测。本文聚焦Triton推理服务器与KServe模型编排层的协同落地,深入解析模型加载策略、特征服务协同、结构化日志与分布式追踪等生产必备能力。

weixin_34242819的博客 349

国产化操作系统shell常用脚本

国产操作系统常用脚本:统信、麒麟。

Reyn_观极 598

机器学习生产化实战:从模型部署到稳定运维的工程闭环

机器学习模型上线不是终点,而是工程化交付的起点。本文围绕模型服务在真实生产环境中的稳定性、可观测性与可持续演进展开,深入解析数据漂移、资源约束、依赖耦合等核心挑战,强调‘可运维性’优先于‘高性能’的设计哲学。结合Triton推理服务、Feast特征存储、Prometheus监控等主流技术栈,系统阐述如何构建具备数据契约、动态批处理、多级降级、健康探针和自动化验证能力的ML生产系统。内容覆盖模型服务化、特征一致性保障、SLO驱动架构、GPU资源治理及故障注入实践,为算法工程师与MLOps工程师提供可落地的生产

weixin_34080571的博客 382

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

tritonserver学习之八:redis_caches实践

triton redis_cache实践

liupenglove的专栏 1502

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

通过一个例子演示gNMI订阅服务的实现

通过gNMI来订阅服务器内存使用率信息,订阅形式为sample,每10秒向客户端推送一次,1分钟后自动关闭推送通道。

ljyfree的专栏 1010

debian系统 gnxi/gnmi server和client配置和使用

本文为原创文章,转载请注明出处! gnxi/gnmi提供gnmi服务端和客户端工具,其中gnmi_target为服务端, gnmi_get为其中一个客户端, gnmi_cli_py为Python工具,可以作为客户端,也可以作为服务端,本文使用gnmi_target作为服务端,gnmi_get和gnmi_cli_py作为客户端,分别从gnmi_target获取配置信息 1、配置go和python2....

u012603457的博客 2415

深度学习模型部署-triton

链接:https://www.zhihu.com/question/517971355/answer/2721126560老潘用triton有两年多了,一直想写个教程给大家。顺便自己学习学习,拖了又拖,趁着这次换版本的机会,终于有机会了写了。triton作为一个NVIDIA开源的商用级别的服务框架,个人认为很好用而且很稳定,API接口的变化也不大,我从2020年的20.06切换到2022年的22.06,两个大版本切换,一些涉及到代码的工程变动很少,稍微修改修改就可以直接复用,很方便。本系列讲解重点是结合实际

张伟的专栏 2357

英伟达triton---简介与安装

1,简介 NVIDIA Triton推理服务器(NVIDIA Triton Inference Server),此前称为TensorRT推理服务器(TensorRT Inference Server),现可通过NVIDIA NGC或GitHub访问。 NVIDIA Triton推理服务器能够帮助开发人员和IT/DevOps轻松地在云端、本地数据中心或边缘部署高性能推理服务器。该服务器通过HTTP/REST或GRPC端点提供推理服务,允许客户端请求对服务器管理的任何模型进行推理。 开发人员和AI公司可以使用N

南沙的星星 1万+

NVIDIA之Triton Inference Server环境部署安装

0 背景 Triton是什么?Triton是 NVIDIA 推出的 Inference Server,专门做 AI 模型的部署服务。客户端可以同伙HTTP/REST或gRPC的方式来请求服务,特性包括以下方面: 支持多种框架,例如 Tensorflow、TensoRT、Pytorch、ONNX甚至自定义框架后端; 支持 GPU 和 CPU 方式运行,能最大化利用硬件资源; 容器化部署,集成 k8s,可以方便的进行编排和扩展; 支持并发模型,支持多种模型或同一模型的不同实例在同一GPU上运行 支持

ZONGXP的博客 1万+

nvidia triton server 快速启动随记

0、环境 1)ubuntu20.04 2)docker 3)cuda 11.5 4)jetson4.6.1 5)T4 和驱动 1、quickstart: 1)NVIDIA Container Toolkit curl https://get.docker.com | sh \ && sudo systemctl --now enable docker distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \ &a...

howesao的专栏 1514
上一篇: NVIDIA Triton系列06-安装用户端软件
下一篇: NVIDIA Triton系列08-用户端其他特性
肆十二
肆十二 优质创作者: 人工智能技术领域 优质创作者: 人工智能技术领域
博客等级 码龄9年 2万+粉丝 241原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肆十二

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值