pytorch serve開始-Getting started

官網鏈接

Getting started — PyTorch/Serve master documentation

安裝TorchServe和torch-model-archiver

安裝依賴

注意::對于Conda,運行Torchserve需要Python >=3.8。

對于基于Debian的系統/ MacOS

  • CPU
python ./ts_scripts/install_dependencies.py
  • 對于使用Cuda 12.1的GPU。可選:cu92、cu101、cu102、cu111、cu113、cu116、cu117、cu118、cu121
python ./ts_scripts/install_dependencies.py --cuda=cu121


注意:PyTorch 1.9+不支持cu92和cu101。因此,在PyTorch 1.8.1之前,TorchServe只支持cu92和cu101。安裝文件參考https://github.com/pytorch/serve.git

對于Windows系統

請參閱此處的文檔。here.

  • 安裝torchserve、torch-model-archiver和torch-workflow-archiver

conda 安裝

注意:Windows不支持Conda包。請參閱此處的文檔here.

conda install torchserve torch-model-archiver torch-workflow-archiver -c pytorch

Pip安裝

pip install torchserve torch-model-archiver torch-workflow-archiver

模型服務

本節展示了一個使用TorchServe為模型提供服務的簡單示例。要完成這個示例,您必須已經安裝了TorchServe和model archiver。

要運行這個例子,克隆TorchServe倉庫:

git clone https://github.com/pytorch/serve.git 

然后在存儲庫根目錄的父目錄中運行以下步驟。例如,如果您將存儲庫克隆到/home/my_path/serve,則從/home/my_path運行步驟。

存儲模型

要使用TorchServe為模型提供服務,首先將模型歸檔為MAR文件。您可以使用模型歸檔程序來打包模型。您還可以創建模型存儲來存儲您的存檔模型。

  1. 創建一個目錄來存儲模型。
mkdir model_store
  1. 下載一個訓練好的模型。
wget https://download.pytorch.org/models/densenet161-8d451a50.pth
  1. 通過使用模型歸檔器來歸檔模型。extra-files參數使用了一個來自TorchServe倉庫的文件,因此如果有必要,請更新路徑。
torch-model-archiver --model-name densenet161 --version 1.0 --model-file ./serve/examples/image_classifier/densenet_161/model.py --serialized-file densenet161-8d451a50.pth --export-path model_store --extra-files ./serve/examples/image_classifier/index_to_name.json --handler image_classifier

有關模型歸檔器的更多信息,請參見Torch Model archiver for TorchServe

啟動TorchServe服務模型

存檔和存儲模型后,使用torchserve命令為模型提供服務。

torchserve --start --ncs --model-store model_store --models densenet161.mar

注意:如果你在運行TorchServe時指定了模型,它會自動將后端worker的數量擴展到等于可用vcpu的數量(如果你在CPU實例上運行)或可用GPU的數量(如果你在GPU實例上運行)。如果是具有大量計算資源(vcpu或gpu)的強大主機,這個啟動和自動擴展過程可能需要相當長的時間。如果你想最小化TorchServe的啟動時間,你應該避免在啟動時間注冊和擴展模型,并通過使用相應的管理API(Management API)將其移動到程序入口點,它允許更細粒度地控制分配給任何特定模型的資源)。

從模型中獲得預測結果

要測試模型服務器,請向服務器的 predictions API發送請求。TorchServe通過gRPC和HTTP/REST支持所有的推理和管理api。

通過python客戶端使用GRPC api

  • 安裝grpc的python依賴:
pip install -U grpcio protobuf grpcio-tools
  • 使用proto文件生成推理客戶端
python -m grpc_tools.protoc --proto_path=frontend/server/src/main/resources/proto/ --python_out=ts_scripts --grpc_python_out=ts_scripts frontend/server/src/main/resources/proto/inference.proto frontend/server/src/main/resources/proto/management.proto
  • 使用示例客戶端gRPC python客戶端運行inference
python ts_scripts/torchserve_grpc_client.py infer densenet161 examples/image_classifier/kitten.jpg

使用REST api

作為一個例子,我們將下載下面這只可愛的小貓

curl -O https://raw.githubusercontent.com/pytorch/serve/master/docs/images/kitten_small.jpg

然后調用預測地址

curl http://127.0.0.1:8080/predictions/densenet161 -T kitten_small.jpg

它將返回以下JSON對象

[{"tiger_cat": 0.46933549642562866},{"tabby": 0.4633878469467163},{"Egyptian_cat": 0.06456148624420166},{"lynx": 0.0012828214094042778},{"plastic_bag": 0.00023323034110944718}
]

所有的交互都將記錄在logs/目錄中,所以一定要查看它!

在你已經看到了使用TorchServe服務于深度學習模型是多么容易!你想知道更多嗎(Would you like to know more?)

停止TorchServe

要停止當前運行的TorchServe實例,運行:

torchserve --stop

檢查日志

所有與模型注冊、管理、推理相關的輸出到stdout的日志都記錄在/logs文件夾中。

可以使用基準測試生成吞吐量或百分位精度等高級性能數據,并在報告中可視化。

調試處理程序代碼

如果你想調試處理程序代碼,可以只使用后端運行TorchServe,因此可以使用任何python調試器。你可以參考這里定義的一個例子(here)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/211219.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/211219.shtml
英文地址,請注明出處:http://en.pswp.cn/news/211219.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Hadoop】高可用集群搭建

知識目錄 一、寫在前面💕二、Zookeeper安裝?三、Hadoop配置?四、Hadoop HA自動模式?五、HA腳本分享?七、結語💕 一、寫在前面💕 大家好!這篇文章是我在搭建Hdfs的HA(高可用)時寫下的詳細筆記與感想,希望能幫助到大…

Notes數據直接在Excel中統計

大家好,才是真的好。 我希望你看過前面兩篇內容《Domino REST API安裝和運行》和《Domino REST API安裝和運行》,因為今天我們正是使用REST API方式在Excel中查詢和統計Notes數據。 不過首先你得知道一個OData協議,全名Open Data Protocol(…

五花八門客戶問題(BUG) - 用好strace2

目錄 前言 strace與gdb的沖突 細看strace 前言 上文通過strace trace它自個看到了strace的原理:確實是調用了ptrace函數實現的。今天我們再細看一看。 strace與gdb的沖突 既然它兩底層都是用ptrace,那么一定不能同時用在同一個進程上。實例驗證: [root]# strace sleep…

布隆過濾器,Redis之 bitmap,場景題【如果微博某個大V發了一條消息,怎么統計有多少人看過了】

文章目錄 一、什么是 bitmap1-1、Bitmap 相關命令二、bitmap 和 set 對比2-1、數據準備2-2、內存對比2-3、性能對比三、布隆過濾器3-1、理論主要作用如何將數據放到過濾器內呢?注意事項布隆過濾器 有兩個重要的參數3-2、代碼實現3-3、Java中的hash函數最近面試,面試官問了一個…

Windows系統Java開發環境安裝

總結一下Java軟件開發工程師常見的環境的安裝,僅限Windows環境。 以下下載鏈接均來自官網,網絡條件自己克服。 目錄 1. JDKJDK Oracle 官網下載地址配置系統環境變量 2. Mavenapache maven 官網地址本地倉庫和中央倉庫配置配置系統環境變量 3. GitGit 官…

springboot3 liquibase SQL執行失敗自動回滾,及自動打tag

一&#xff1a; 自動執行回滾&#xff0c; 已執行成功的忽略&#xff0c;新sql執行失敗則執行新sql文件中的回滾sql pom.xml <dependency> <groupId>org.liquibase</groupId> <artifactId>liquibase-core</artifactId> <version>4.25.0&…

【工廠方法】設計模式項目實踐

前言 以采集數據處理邏輯為例&#xff0c;數據采集分為不同種類如&#xff1a;MQTT、MODBUS、HTTP等&#xff0c;不同的采集數據有不同的解析處理邏輯。但總體解析處理步驟是固定的。可以使用工廠方法設計模式簡化代碼&#xff0c;讓代碼變得更加優雅。 代碼實踐 抽象類 總體…

分布式環境下的session 共享-基于spring-session組件和Redis實現

1、問題概述 不是所有的項目都是單機模式的&#xff0c;當一個項目服務的局域比較廣&#xff0c;用戶體量比較大&#xff0c;數據量較大的時候&#xff0c;我們都會將項目部署到多臺服務器上&#xff0c;這些個服務器都是分布在不同的區域&#xff0c;這樣實現了項目的負載和并…

Redis有序集合對象

一.編碼 有序集合的編碼可以是ziplist或者skiplist。 ziplist編碼的有序集合對象使用壓縮列表作為底層實現&#xff0c;每一個集合元素使用緊挨在一起的兩個壓縮列表節點來保存。第一個節點保存元素的成員(member)&#xff0c;而第二個元素則保存元素的分值(score)。 127.0.0.…

鴻蒙app獲取文本控件按鈕控件_修改控件名稱_按鈕觸發事件_提示信息顯示

鴻蒙app獲取文本控件按鈕控件_修改控件名稱_按鈕觸發事件_ 點擊啟動&#xff1a;提示信息顯示 package com.example.myapplication.slice;import com.example.myapplication.ResourceTable; import ohos.aafwk.ability.AbilitySlice; import ohos.aafwk.content.Intent; impor…

12.1電梯控制器——文檔記錄

《數字邏輯》實驗報告 實驗名稱 項目三 電梯控制器設計 一、實驗目的 設計一個多樓層的電梯控制器系統&#xff0c;并能在開發板上模擬電梯運行狀態。可以利用按鍵作為呼叫按鍵&#xff0c;數碼管顯示電梯運行時電梯所在樓層&#xff0c;led燈顯示樓層叫梯狀態。 二、實…

太良心了!微軟面向初學者,開源機器學習、數據科學、AI、LLM

大家好&#xff0c;推薦幾個質量上乘且完全免費的微軟開源課程&#xff0c;由粉絲小伙伴梳理&#xff0c;分享給大家。 文末可以加我們粉絲群 面向初學者的機器學習課程 ML for beginners banner 地址&#xff1a;https://microsoft.github.io/ML-For-Beginners/#/ 學習經典…

[Linux] Web基礎知識與http協議

一、HTML 1.1 HTML 的概念 HTML被稱為超文本標記語言。 它是規范和標準. 它通過標記符號來標記網頁中出現的各個部分。網頁文件本身就是一種文本文件。 通過向文本文件添加標記&#xff0c;您可以告訴瀏覽器如何顯示其中的內容。 HTML命令可以描述文本、圖形、動畫、聲音、表格…

講解把一個文件夾里面的內容復制到另一個文件夾中的操作

&#x1f38a;專欄【Java小練習】 &#x1f354;喜歡的詩句&#xff1a;天行健&#xff0c;君子以自強不息。 &#x1f386;音樂分享【如愿】 &#x1f384;歡迎并且感謝大家指出小吉的問題&#x1f970; 文章目錄 &#x1f354;需求?思路?代碼?效果 &#x1f384;如果要復制…

Vue3:表格單元格內容由:圖標+具體內容 構成

一、背景 在Vue3項目中&#xff0c;想讓單元格的內容是由 &#xff1a;圖標具體內容組成的&#xff0c;類似以下效果&#xff1a; 二、圖標 Element-Plus 可以在Element-Plus里面找是否有符合需求的圖標iconfont 如果Element-Plus里面沒有符合需求的&#xff0c;也可以在這…

MySQL 數據庫操作指南:LIMIT,OFFSET 和 JOIN 的使用

限制結果 您可以通過使用"LIMIT"語句來限制查詢返回的記錄數量。以下是一個示例&#xff0c;獲取您自己的Python服務器中"customers"表中的前5條記錄&#xff1a; import mysql.connectormydb mysql.connector.connect(host"localhost",user&…

Proteus仿真--基于NM24C08的EEPROM仿真設計

本文介紹基于NM24C08的EEPROM仿真設計&#xff08;完整仿真源文件及代碼見文末鏈接&#xff09; 其中NM24C08是標準的2線總線接口的串行EEPROM&#xff0c;開機畫面在LCD12864上顯示 仿真圖如下 仿真運行視頻 Proteus仿真--基于NM24C08的EEPROM仿真設計 附完整Proteus仿真資料…

零一萬物模型折騰筆記:官方 Yi-34B 模型基礎使用

當爭議和流量都消失后&#xff0c;或許現在是個合適的時間點&#xff0c;來拋開情緒、客觀的聊聊這個 34B 模型本身&#xff0c;尤其是實踐應用相關的一些細節。來近距離看看這個模型在各種實際使用場景中的真實表現和對硬件的性能要求。 或許&#xff0c;這會對也想在本地私有…

Docker本地部署Drupal內容管理框架并實現公網遠程訪問

文章目錄 前言1. Docker安裝Drupal2. 本地局域網訪問3 . Linux 安裝cpolar4. 配置Drupal公網訪問地址5. 公網遠程訪問Drupal6. 固定Drupal 公網地址7. 結語 前言 Dupal是一個強大的CMS&#xff0c;適用于各種不同的網站項目&#xff0c;從小型個人博客到大型企業級門戶網站。它…

bat腳本之findstr

findstr 是 Windows 操作系統中用于文本搜索的命令&#xff0c;它可以在文件中查找指定的字符串或正則表達式&#xff0c;并輸出匹配的行或行號。findstr 命令可以在命令提示符下直接使用&#xff0c;也可以在批處理腳本中嵌套使用。 以下是 findstr 命令的基本語法&#xff1…