日萌社
人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度學習實戰(不定時更新)
7.7 TensorFlow Serving模型部署
學習目標
- 目標
- 無
- 應用
- 應用TensorFlow Serving完成模型服務運行
7.7.1 TensorFlow Serving
TensorFlow Serving是一種靈活的高性能服務系統,適用於機器學習模型,專爲生產環境而設計。TensorFlow Serving可以輕鬆部署新算法和實驗,同時保持相同的服務器架構和API。TensorFlow Serving提供與TensorFlow模型的開箱即用集成,但可以輕鬆擴展以提供其他類型的模型和數據。
7.7.1.1 安裝Tensorflow Serving
安裝過程詳細參考官網
- 使用Docker安裝進行,首先你的電腦當中已經安裝過docker容器
7.7.2 TensorFlow Serving Docker
-
獲取最新TF Serving docker鏡像
docker pull tensorflow/serving
-
查看docker鏡像
docker images
-
運行tf serving(即創建一個docker容器來運行)
docker run -p 8501:8501 -p 8500:8500 --mount type=bind,source=/home/ubuntu/detectedmodel/commodity,target=/models/commodity -e MODEL_NAME=commodity -t tensorflow/serving
說明:
-p 8501:8501
爲端口映射,-p 主機端口:docker容器程序(tf serving)使用端口
,訪問主機8501端口就相當於訪問了tf serving程序的8501端口- tf serving 使用8501端口對外提供HTTP服務,使用8500對外提供gRPC服務,這裏同時開放了兩個端口的使用
--mount type=bind,source=/home/ubuntu/detectedmodel/commodity,target=/models/commodity
爲文件映射,將主機(source)的模型文件映射到docker容器程序(target)的位置,以便tf serving使用模型,target
參數爲/models/我的模型
-e MODEL_NAME=commodity
設置了一個環境變量,名爲MODEL_NAME
,此變量被tf serving讀取,用來按名字尋找模型,與上面target參數中我的模型
對應-t
爲tf serving創建一個僞終端,供程序運行tensorflow/serving
爲鏡像名
7.7.3 案例操作:wdl模型服務運行
- 1、運行命令
docker run -p 8501:8501 -p 8500:8500 --mount type=bind,source=/root/toutiao_project/reco_sys/server/models/serving_model/wdl,target=/models/wdl -e MODEL_NAME=wdl -t tensorflow/serving
- 2、查看是否運行
itcast:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ed3a36a07ba8 tensorflow/serving "/usr/bin/tf_serving…" About a minute ago Up About a minute 0.0.0.0:8500-8501->8500-8501/tcp vigorous_goodall