TensorFlow Serving
文章目录
一、Quick Start
0x00 变量
服务部署及调用时需要用到的变量有:
变量名 | 适用流程 | 说明 |
---|---|---|
$MODEL_PATH | 部署 | 本地模型目录 |
$MODEL_NAME | 部署、调用 | 模型名称,部署时指定;调用时根据模型名进行调用 |
$MODEL_VERSION |
0x01 使用docker安装TensorFlow Serving
docker pull tensorflow/serving
0x02 准备模型,并按版本布置目录
将包含saved_model.pb
, assets
, variables
的模型目录以数字版本号命名,服务会自动调用目录内版本号最高的模型文件,模型目录示例如下:
e.g.
# 此时模型目录 $MODEL_PATH = "/Users/eric/work/wheel/tmp/tensorflow_serving/fm_models"
➜ tree /Users/eric/work/wheel/tmp/tensorflow_serving/fm_models
/Users/eric/work/wheel/tmp/tensorflow_serving/fm_models
├── 001
│ ├── assets
│ ├── saved_model.pb
│ └── variables
│ ├── variables.data-00000-of-00001
│ └── variables.index
└── 002
├── assets
├── saved_model.pb
└── variables
├── variables.data-00000-of-00001
└── variables.index
6 directories, 6 files
0x03 以docker run的方式简单部署TensorFlow Serving
运行方式模板为:
docker run -p 8501:8501 \
--mount type=bind,\
source=$MODEL_PATH,\
target=/models/$MODEL_NAME \
-e MODEL_NAME=$MODEL_NAME -t tensorflow/serving &
按照上述部署,可以得到$MODEL_PATH = "/Users/eric/work/wheel/tmp/tensorflow_serving/fm_models"
;
同时令 $MODEL_NAME="fm_model"
,可以得到完整运行指令:
docker run -p 8501:8501 \
--mount type=bind,\
source=/Users/eric/work/wheel/tmp/tensorflow_serving/fm_models,\
target=/models/fm_model \
-e MODEL_NAME=fm_model -t tensorflow/serving &
0x04 curl简单调用
调用 :
# /v1/models/<model name>/versions/<version number>
curl -d '{"instances": [[1.0, 0.0, 22.0, 48.0, 1.0, 5.0, 1.0, 0.0, 1.0, 2.0, 2.0, 9.0, 9.0, 9.0, 9.0, 9.0, 4.0, 6.0, 6.0, 5.