在前面的文章中,已經帶著讀者創建好 Triton 的模型倉、安裝并執行 Triton 推理服務器軟件,接下來就是要安裝 Triton 用戶端軟件,對服務器提出推理請求(requests),才能觸發服務器執行推理計算的任務。
由于用戶端的功能是在向服務器提出推理需求,本身并不參與計算,因此不用考慮設備性能或者是否裝載 GPU 設備,即便是一臺最基本的 Windows 上網本都能使用,只要安裝合適的用戶端軟件就可以。
為了適應更多種使用場景,Triton 用戶端支持 C++/Python/Java/GO 等通用性高的在編程語言,底層還支持 HTTP/REST 與 gRPC 通訊協議,甚至還支持 SSL/TLS 加密選項,以及多種在線壓縮(on-wire compression)算法,內容是相當豐富并且多元化,完整的內容可以在https://github.com/triton-inference-server/client 開源倉里找到,本文只先提供 Python 用戶端的部分。
與服務器的安裝方式類似,NVIDIA 提供以下 4 種安裝方式:
1. 源代碼編譯
這種方式需要從https://github.com/triton-inference-server/client 下載源代碼,執行步驟在https://github.com/triton-inference-server/client#build-using-cmake 環節,通常會遇到的麻煩是步驟繁瑣,并且出錯率較高,因此并不推薦使用這個方法。
2. 可執行文件
Triton 開發團隊為使用者提供編譯好的可執行文件,包括 Ubuntu 20.04、Jetpack 與 Windows 平臺,可以在 https://github.com/triton-inference-server/server/releases/上獲取,每個版本都會提供對應 NGC 容器的版本,如下圖:
然后到下面的“Assets”選擇合適的版本:
以裝載 Jetpack 5 的 Orin 為例,就下載 tritonserver2.26.0-jetpack5.0.2.tgz(1.13GB) 壓縮文件到本機上,然后解壓縮到指定目錄下就可以,例如 ${HOME}/triton 目錄,會生成
現在要使用 image_client 這個最基礎的識別終端軟件,對 qa/images/mug.jpg(下圖)這張圖片進行推理。
請先確認 Triton 服務器軟件已經啟動并且處于等待請求的狀態,現在請開啟另一個命令終端,輸入以下指令提交推理請求:
cd ${HOME}/triton
./clients/bin/image_client-mdensenet_onnx-c3-sINCEPTIONqa/images/mug.jpg
這道指令使用 clients/bin/image_client 終端,請求服務器使用 densenet_onnx 推理模型,對 qa/images/mug.jpg(下圖)進行識別。這里的參數“-c 3”是要求識別的分類最多可以到 3 項,指令執行結果如下,表示正確識別圖像的 3 個可能分類:
其他終端軟件會在后面文章中說明。
3. Docker容器版用戶端
在安裝 Triton 服務器軟件一文中已經提過,可以在 NGC 服務器上可以找到 Triton 的相關鏡像,其中 year-xy-py3-sdk 里就有提供用戶端軟件。這里同樣在 Jetson AGX Orin 上用 22.09-py3-sdk 鏡像做示范,請先執行以下指令下載這個鏡像并進入這個容器:
nvcr.io/nvidia/tritonserver:22.09-py3-sdk
docker run -it --rm --net=host nvcr.io/nvidia/tritonserver:22.09-py3-sdk
進入容器之后,執行以下指令進行圖像推理任務:
./install/bin/image_client-mdensenet_onnx-c3-sINCEPTION./images/mug.jpg
執行結果應該會看到如下截屏的內容,表示在這里對 Triton 服務器提出的推理請求,得到正確的計算結果。
同樣的,在容器內 install/bin 目錄下也有將近 30 個編譯好的終端可執行文件,內容與前一項壓縮文件所提供的內容是一致的,在下一篇文章中進行說明。
4. Python 版用戶端
由于 Python 是目前在深度學習領域中最重要的編程語言之一,NVIDIA 為 Triton 提供可直接安裝的 Python 庫,只要執行以下指令就能輕松安裝:
pip3 install tritonclient[all] attrdict -i https://pypi.tuna.tsinghua.edu.cn/simple
這個過程會安裝以下內容:
http
grpc[service_pb2,service_pb2_grpc,model_config_pb2]
如果您在前面下載第 2 部分的壓縮文件并且解壓縮,在該目錄之下的 clients/python 里就提供 30 多個 Triton 的 Python 用戶端腳本;如果沒有下載前面的壓縮文件,現在可以執行以下指令去復制 Triton 項目的 client 開源倉:
git clone https://github.com/triton-inference-server/client
然后在 client 開源倉下的 src/python/examples 里有 30 多個 Triton 的 Python 用戶端腳本。
現在進到 Python 用戶端腳本的目錄里,執行以下指令:
python3 image_client.py -m inception_graphdef -s INCEPTION
${HOME}/triton/server/qa/images/mug.jpg
執行后會顯示如下的結果:
得到推理的結果為“COFEE MUG”為正確的,表示 Triton 的 Python 用戶端使用環境是正確的。
以上介紹 4 種安裝 Triton 用戶端軟件的方式,本文只使用 image_client 這個最簡單的圖像分類用戶端工具,另外還有幾個比較重要的用戶端工具,后面會有針對性的深入講解與示范。
推薦閱讀
NVIDIA Jetson Nano 2GB 系列文章(1):開箱介紹
NVIDIA Jetson Nano 2GB 系列文章(2):安裝系統
NVIDIA Jetson Nano 2GB 系列文章(3):網絡設置及添加 SWAPFile 虛擬內存
NVIDIA Jetson Nano 2GB 系列文章(4):體驗并行計算性能
NVIDIA Jetson Nano 2GB 系列文章(5):體驗視覺功能庫
NVIDIA Jetson Nano 2GB 系列文章(6):安裝與調用攝像頭
NVIDIA Jetson Nano 2GB 系列文章(8):執行常見機器視覺應用
NVIDIA Jetson Nano 2GB 系列文章(9):調節 CSI 圖像質量
NVIDIA Jetson Nano 2GB 系列文章(10):顏色空間動態調節技巧
NVIDIA Jetson Nano 2GB 系列文章(11):你應該了解的 OpenCV
NVIDIA Jetson Nano 2GB 系列文章(12):人臉定位
NVIDIA Jetson Nano 2GB 系列文章(13):身份識別
NVIDIA Jetson Nano 2GB 系列文章(14):Hello AI World
NVIDIA Jetson Nano 2GB 系列文章(15):Hello AI World 環境安裝
NVIDIA Jetson Nano 2GB 系列文章(16):10行代碼威力
NVIDIA Jetson Nano 2GB 系列文章(17):更換模型得到不同效果
NVIDIA Jetson Nano 2GB 系列文章(18):Utils 的 videoSource 工具
NVIDIA Jetson Nano 2GB 系列文章(19):Utils 的 videoOutput 工具
NVIDIA Jetson Nano 2GB 系列文章(20):“Hello AI World” 擴充參數解析功能
NVIDIA Jetson Nano 2GB 系列文章(21):身份識別
NVIDIA Jetson Nano 2GB 系列文章(22):“Hello AI World” 圖像分類代碼
NVIDIA Jetson Nano 2GB 系列文章(23):“Hello AI World 的物件識別應用
NVIDIAJetson Nano 2GB 系列文章(24): “Hello AI World” 的物件識別應用
NVIDIAJetson Nano 2GB 系列文章(25): “Hello AI World” 圖像分類的模型訓練
NVIDIAJetson Nano 2GB 系列文章(26): “Hello AI World” 物件檢測的模型訓練
NVIDIAJetson Nano 2GB 系列文章(27): DeepStream 簡介與啟用
NVIDIAJetson Nano 2GB 系列文章(28): DeepStream 初體驗
NVIDIAJetson Nano 2GB 系列文章(29): DeepStream 目標追蹤功能
NVIDIAJetson Nano 2GB 系列文章(30): DeepStream 攝像頭“實時性能”
NVIDIAJetson Nano 2GB 系列文章(31): DeepStream 多模型組合檢測-1
NVIDIAJetson Nano 2GB 系列文章(32): 架構說明與deepstream-test范例
NVIDIAJetsonNano 2GB 系列文章(33): DeepStream 車牌識別與私密信息遮蓋
NVIDIA Jetson Nano 2GB 系列文章(34): DeepStream 安裝Python開發環境
NVIDIAJetson Nano 2GB 系列文章(35): Python版test1實戰說明
NVIDIAJetson Nano 2GB 系列文章(36): 加入USB輸入與RTSP輸出
NVIDIAJetson Nano 2GB 系列文章(37): 多網路模型合成功能
NVIDIAJetson Nano 2GB 系列文章(38): nvdsanalytics視頻分析插件
NVIDIAJetson Nano 2GB 系列文章(39): 結合IoT信息傳輸
NVIDIAJetson Nano 2GB 系列文章(40): Jetbot系統介紹
NVIDIAJetson Nano 2GB 系列文章(41): 軟件環境安裝
NVIDIAJetson Nano 2GB 系列文章(42): 無線WIFI的安裝與調試
NVIDIAJetson Nano 2GB 系列文章(43): CSI攝像頭安裝與測試
NVIDIAJetson Nano 2GB 系列文章(44): Jetson的40針引腳
NVIDIAJetson Nano 2GB 系列文章(46): 機電控制設備的安裝
NVIDIAJetson Nano 2GB 系列文章(47): 組裝過程的注意細節
NVIDIAJetson Nano 2GB 系列文章(48): 用鍵盤與搖桿控制行動
NVIDIAJetson Nano 2GB 系列文章(49): 智能避撞之現場演示
NVIDIAJetson Nano 2GB 系列文章(50): 智能避障之模型訓練
NVIDIAJetson Nano 2GB 系列文章(51): 圖像分類法實現找路功能
NVIDIAJetson Nano 2GB 系列文章(52): 圖像分類法實現找路功能
NVIDIAJetson Nano 2GB 系列文章(53): 簡化模型訓練流程的TAO工具套件
NVIDIA Jetson Nano 2GB 系列文章(54):NGC的內容簡介與注冊密鑰
NVIDIA Jetson Nano 2GB 系列文章(55):安裝TAO模型訓練工具
NVIDIA Jetson Nano 2GB 系列文章(56):啟動器CLI指令集與配置文件
NVIDIA Jetson Nano 2GB 系列文章(57):視覺類腳本的環境配置與映射
NVIDIA Jetson Nano 2GB 系列文章(58):視覺類的數據格式
NVIDIA Jetson Nano 2GB 系列文章(59):視覺類的數據增強
NVIDIA Jetson Nano 2GB 系列文章(60):圖像分類的模型訓練與修剪
NVIDIA Jetson Nano 2GB 系列文章(61):物件檢測的模型訓練與優化
NVIDIA Jetson Nano 2GB 系列文章(62):物件檢測的模型訓練與優化-2
NVIDIA Jetson Nano 2GB 系列文章(63):物件檢測的模型訓練與優化-3
NVIDIA Jetson Nano 2GB 系列文章(64):將模型部署到Jetson設備
NVIDIA Jetson Nano 2GB 系列文章(65):執行部署的 TensorRT 加速引擎
NVIDIA Jetson 系列文章(1):硬件開箱
NVIDIA Jetson 系列文章(2):配置操作系統
NVIDIA Jetson 系列文章(3):安裝開發環境
NVIDIA Jetson 系列文章(4):安裝DeepStream
NVIDIA Jetson 系列文章(5):使用Docker容器的入門技巧
NVIDIA Jetson 系列文章(6):使用容器版DeepStream
NVIDIA Jetson 系列文章(7):配置DS容器Python開發環境
NVIDIA Jetson 系列文章(8):用DS容器執行Python范例
NVIDIA Jetson 系列文章(9):為容器接入USB攝像頭
NVIDIA Jetson 系列文章(10):從頭創建Jetson的容器(1)
NVIDIA Jetson 系列文章(11):從頭創建Jetson的容器(2)
NVIDIA Jetson 系列文章(12):創建各種YOLO-l4t容器
NVIDIA Triton系列文章(1):應用概論
NVIDIA Triton系列文章(2):功能與架構簡介
NVIDIA Triton系列文章(3):開發資源說明
NVIDIA Triton系列文章(4):創建模型倉
NVIDIA Triton 系列文章(5):安裝服務器軟件
原文標題:NVIDIA Triton 系列文章(6):安裝用戶端軟件
文章出處:【微信公眾號:NVIDIA英偉達企業解決方案】歡迎添加關注!文章轉載請注明出處。
-
英偉達
+關注
關注
22文章
3749瀏覽量
90856
原文標題:NVIDIA Triton 系列文章(6):安裝用戶端軟件
文章出處:【微信號:NVIDIA-Enterprise,微信公眾號:NVIDIA英偉達企業解決方案】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論