摘要:針對這種情況提供了,可以將訓練好的模型直接上線并提供服務。在年的開發(fā)者上便提出了。在實際的生產環(huán)境中比較廣泛使用的通信手段是基于的,幸運的是從以后,也正式支持通信方式了。
前 ?言
大家習慣使用TensorFlow進行模型的訓練、驗證和預測,但模型完善之后的生產上線流程,就變得五花八門了。針對這種情況Google提供了TensorFlow Servering,可以將訓練好的模型直接上線并提供服務。在2017年的TensorFlow開發(fā)者Summit上便提出了TensorFlow Serving。
但那時候客戶端和服務端的通信只支持gRPC。在實際的生產環(huán)境中比較廣泛使用的C/S通信手段是基于RESTfull API的,幸運的是從TF1.8以后,TF Serving也正式支持RESTfull API通信方式了。
01、服務框架
基于TF Serving的持續(xù)集成框架還是挺簡明的,基本分三個步驟:
模型訓練
這是大家最熟悉的部分,主要包括數據的收集和清洗、模型的訓練、評測和優(yōu)化;
模型上線
前一個步驟訓練好的模型在TF Server中上線;
服務使用
客戶端通過gRPC和RESTfull API兩種方式同TF Servering端進行通信,并獲取服務;
02、TF Serving工作流程
TF Serving的工作流程主要分為以下幾個步驟:
Source會針對需要進行加載的模型創(chuàng)建一個Loader,Loader中會包含要加載模型的全部信息;
Source通知Manager有新的模型需要進行加載;
Manager通過版本管理策略(Version Policy)來確定哪些模型需要被下架,哪些模型需要被加載;
Manger在確認需要加載的模型符合加載策略,便通知Loader來加載的模型;
客戶端像服務端請求模型結果時,可以指定模型的版本,也可以使用模型的結果
03、簡單示例
TF Serving客戶端和服務端的通信方式有兩種(gRPC和RESTfull API)
示例(一):RESTfull API形式
1. 準備TF Serving的Docker環(huán)境
目前TF Serving有Docker、APT(二級制安裝)和源碼編譯三種方式,但考慮實際的生產環(huán)境項目部署和簡單性,推薦使用Docker方式。
docker pull tensorflow/serving
2. 下載官方示例代碼
示例代碼中包含已訓練好的模型和與服務端進行通信的客戶端(RESTfull API形式不需要專門的客戶端)
mkdir -p /tmp/tfserving
cd /tmp/tfserving
git clone https://github.com/tensorflow/serving
3. 運行TF Serving
這里需要注意的是,較早的docker版本沒有“--mount”選項,比如Ubuntu16.04默認安裝的docker就沒有(我的環(huán)境是Ubuntu 18.04)。
docker run -p 8501:8501
? ? --mount type=bind,
? ? source=/tmp/tfserving/serving/tensorflow_serving/servables/tensorflow/testdata/saved_model_half_plus_two_cpu,
? ? target=/models/half_plus_two
? ? -e MODEL_NAME=half_plus_two -t tensorflow/serving &
4. 客戶端驗證
curl -d "{"instances": [1.0, 2.0, 5.0]}"
? ? -X POST http://localhost:8501/v1/models/half_plus_two:predict
5. 返回結果
# { "predictions": [2.5, 3.0, 4.5] }
示例(二):gRPC形式
1. 準備TF Serving的Docker環(huán)境
目前TF Serving有Docker、APT(二級制安裝)和源碼編譯三種方式,但考慮實際的生產環(huán)境項目部署和簡單性,推薦使用Docker方式。
docker pull tensorflow/serving
2. 下載官方示例代碼
mkdir -p /tmp/tfserving
cd /tmp/tfserving
git clone https://github.com/tensorflow/serving
3. 模型編譯
python tensorflow_serving/example/mnist_saved_model.py models/mnist
4. 運行TF Serving
這里需要注意的是,較早的docker版本沒有“--mount”選項,比如Ubuntu16.04默認安裝的docker就沒有(我的環(huán)境是Ubuntu 18.04)。
docker run -p 8500:8500
? ? --mount type=bind,source=$(pwd)/models/mnist,target=/models/mnist
? ? -e MODEL_NAME=mnist -t tensorflow/serving
5. 客戶端驗證
python tensorflow_serving/example/mnist_client.py --num_tests=1000 --server=127.0.0.1:8500
6. 返回結果
Inference error rate: 11.13%
這里需要注意的是,直接運行mnist_client.py會出現找不到“tensorflow_serving”的問題,需要手動安裝,
pip install tensorflow-serving-api
04、資料參考
TF Serving官方文檔:
聲明:文章收集于網絡,如有侵權,請聯系小編及時處理,謝謝!
歡迎加入本站公開興趣群?
商業(yè)智能與數據分析群
興趣范圍包括各種讓數據產生價值的辦法,實際應用案例分享與討論,分析工具,ETL工具,數據倉庫,數據挖掘工具,報表系統等全方位知識
QQ群:81035754
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/4824.html
摘要:它使用機器學習來解釋用戶提出的問題,并用相應的知識庫文章來回應。使用一類目前較先進的機器學習算法來識別相關文章,也就是深度學習。接下來介紹一下我們在生產環(huán)境中配置模型的一些經驗。 我們如何開始使用TensorFlow ?在Zendesk,我們開發(fā)了一系列機器學習產品,比如的自動答案(Automatic Answers)。它使用機器學習來解釋用戶提出的問題,并用相應的知識庫文章來回應。當用戶有...
TensorFlow Serving是一個開源的高性能機器學習模型部署框架,可用于將訓練好的模型部署到生產環(huán)境中進行預測。TensorFlow Serving具有許多有用的功能,如模型版本控制、模型熱更新、模型的灰度發(fā)布和模型可擴展性等,這些功能使得TensorFlow Serving成為生產環(huán)境中部署機器學習模型的理想選擇。本文將介紹如何使用TensorFlow Serving進行模型部署。 ...
摘要:從實驗到生產,簡單快速部署機器學習模型一直是一個挑戰(zhàn)。總結上面我們快速實踐了使用和部署機器學習服務的過程,可以看到,提供了非常方便和高效的模型管理,配合,可以快速搭建起機器學習服務。 從實驗到生產,簡單快速部署機器學習模型一直是一個挑戰(zhàn)。這個過程要做的就是將訓練好的模型對外提供預測服務。在生產中,這個過程需要可重現,隔離和安全。這里,我們使用基于Docker的TensorFlow Se...
摘要:大會以機器學習資料中心和云端安全為主要議題,為未來發(fā)展做戰(zhàn)略規(guī)劃。在年,谷歌開發(fā)了一個內部深度學習基礎設施叫做,這個設施允許谷歌人創(chuàng)建更大的神經網絡和擴容實訓成千上萬個核心。 導言 Google近日3月23-24日在美國舊金山舉辦首次谷歌云平臺(Google Cloud Platform) GCP NEXT大會,參會人數超過2000人。GCP NEXT大會以機器學習、資料中心和云端安全...
閱讀 3485·2021-10-18 13:30
閱讀 2940·2021-10-09 09:44
閱讀 1963·2019-08-30 11:26
閱讀 2287·2019-08-29 13:17
閱讀 756·2019-08-29 12:17
閱讀 2245·2019-08-26 18:42
閱讀 470·2019-08-26 13:24
閱讀 2951·2019-08-26 11:39