tensorflow_serving通过model_config_file进行模型部署以及更新部署
TF Serving
TF Serving架构具体包括:servables、loaders、sources、managers和core,具体内容参照tensorflow serving官方教程。
模型部署
本文主要讲如何通过docker进行模型的部署,官方教程看这里。
docker方式
- 首先从docker hub拉取tensorflow serving的docker镜像,本文用的是1.13.0版本。
docker pull tensorflow/serving:1.13.0
- 查看拉取的tensorflow/serving镜像
docker image ls | grep tensorflow
输出内容大致如下(我有两个tensorflow/serving的镜像)
tensorflow/serving 1.13.0 38bee21b2ca0 3 months ago 229MB
tensorflow/serving latest 38bee21b2ca0 3 months ago 229MB
第一种方式
假设我有一个模型test1
,放在host目录/tmp/models/test1,映射到docker的container环境里的/models/test1,文件树:
test1
└── 1
├── saved_model.pb
└── variables
├── variables.data-00000-of-00001
└── variables.index
直接加载最新的模型(不推荐,只能加载版本最大的模型)
docker run -t --rm -p 8500:8500 -p 8501:8501 \
-v /tmp/models/test1:/models/test1 -e MODEL_NAME=test1 tensorflow/serving &
或者
docker run -t --rm -p 8500:8500 -p 8501:8501 \
--mount type=bind,source=/tmp/models/test1,target=/models/test1 \
-e MODEL_NAME=test1 tensorflow/serving &
其中端口8500
是用于通过gRPC通信,端口 8501
通过REST方式通信,参数MODEL_NAEM
是通过上述两种方式进行通信时模型的名字。
第二种方式,通过model_config_file进行部署(推荐)
假设我有一个模型test1
,放在host目录/tmp/models/test1,映射到