- docker pull tensorflow serving官方镜像
- 生成tensorflow serving可直接读取的模型格式
- 编写配置文件
- 启动tensorflow serving镜像
1、docker下载
- CPU版本
docker pull tensorflow/serving:latest
- GPU版本
docker pull tensorflow/serving:latest-gpu2、模型格式转换
tensorflow serving支持pb模型,部署多模型所需的相关模型结构目录如下:
我用的是kashgari框架,其提供直接保存pb模型的方法kashgari.utils.convert_to_saved_model
-----model.save:保存在reberate_classification_13文件夹下的h5模型
-----convert_to_saved_model:
----(args1)model:训练好的模型
----(args2):存放pb模型的文件夹目录及名称
----(agrs3)version:训练模型的版本,最终体现在存放pb模型的文件夹目录及名称
3、编写配置文件:在multiModel文件夹下新建一个配置文件models.config,文件内容为:
model_config_list:{
config:{
name:"model1", #模型名称
base_path:"/models/multiModel/model1", #模型存放的相对路径,其中要以/models/开头,
#启动docker时会将本机路径挂载至tensorflow serving镜像中/models/位置
model_platform:"tensorflow"
},
config:{
name:"model2",
base_path:"/models/multiModel/model2",
model_platform:"tensorflow"
},
config:{
name:"model3",
base_path:"/models/multiModel/model3",
model_platform:"tensorflow"
}
}
目录结构详情如下:
4、启动方式
CPU版:
docker run -p 8501:8501 -v "/data/wyn/project_code/sentiment/multiModel:/models/multiModel" -t tensorflow/serving:latest --model_config_file=/models/multiModel/models.config
GPU版:
docker run --runtime=nvidia -e NVIDIA_VISIBLE_DEVICES="0" -p 8501:8501 -v "/data/wyn/project_code/sentiment/multiModel:/models/multiModel" -t tensorflow/serving:latest-gpu --model_config_file=/models/multiModel/models.config
-p:docker端口映射到本机
-v:本机文件路径映射到docker
-t:启动的镜像名称
--model_config_file:多模型部署的配置文件
gpu部署的部分指标:
--runtime=nvidia
-e 设定使用的GPU片数



