tensorflow serving部署模型

tensorflow serving部署模型

1.安裝grpc

pip install grpcio
安裝tensorflow-serving 依賴關係
sudo yum install -y
build-essential
curl
libcurl3-dev
git
libfreetype6-dev
libpng12-dev
libzmq3-dev
pkg-config
python-dev
python-numpy
python-pip
software-properties-common
swig
zip
zlib1g-dev
安裝TensorFlow Serving Python API PIP package
pip install tensorflow-serving-api
準備tensorflow-servingde docker環境
docker pull tensorflow/serving

2.根據tensorflow-serving的要求生成相應結構的模型

代碼:
在這裏插入圖片描述
生成模型:
在這裏插入圖片描述
注意,這裏將模型保存在了"demo_model/版本號"文件夾中,而不是直接保存在了"demo_model"文件夾中,這是因爲TensorFlow Serving要求在模型目錄下加一層版本目錄,來進行版本維護、熱更新等。

3.啓動tensorflow-serving docker容器

有兩種方式:Restful方式和gRPC方式。區別:
Restful方式
端口:8501
部署流程:
①根據生成文件目錄,將模型替換爲自己的模型,運行啓動命令
②服務啓動
③Rest api調用,模型預測

gRPC方式
端口:8500
部署流程:
①根據生成文件目錄,將模型替換爲自己的模型,運行啓動命令
②服務啓動
③編寫測試py
④運行測試命令,模型預測。如:
python tensorflow_serving/example/mnist_client.py --num_tests=1000 --server=127.0.0.1:8500

下面以restful api爲例:
根據生成文件目錄,將模型替換爲自己的模型,運行啓動命令:
docker run -p 8501:8501 -v /tmp/tfserving/serving/models/demo_model:/models/demo_model: -e MODEL_NAME=demo_model -t tensorflow/serving &

服務啓動:
在這裏插入圖片描述
注意,這裏的模型所在路徑是剛纔"demo_model"目錄的路徑,而不是"demo_model/版本號"目錄的路徑,因爲TensorFlow Serving認爲用戶的模型所在路徑中包含了多個版本的模型。預測時,默認加載路徑下版本號最大的模型(認爲其最新),進行預測。

4.Rest api調用,模型預測

單樣本預測,運行命令:
curl -d ‘{“instances”: [[2]]}’ -X POST http://localhost:8501/v1/models/demo_model:predict
結果:
在這裏插入圖片描述

多樣本預測,運行命令:
curl -d ‘{“instances”: [[2], [3], [5]]}’ -X POST http://localhost:8501/v1/models/demo_model:predict
結果:
在這裏插入圖片描述

注意,instances是一個list,list中每個元素是一個待預測實例,每個實例裏面是所有參數的值, 所以參數按照這種方式構造就可以了。

5.Rest api調用,查看指定模型信息

運行命令:
curl http://localhost:8501/v1/models/demo_model
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章