tensorflow serving多模型部署

基本流程

  • docker pull tensorflow serving官方镜像
  • 生成tensorflow serving可直接读取的模型格式
  • 编写配置文件
  • 启动tensorflow serving镜像

1、docker下载

  • CPU版本
docker pull tensorflow/serving:latest
  • GPU版本
docker pull tensorflow/serving:latest-gpu

2、模型格式转换

tensorflow serving支持pb模型,部署多模型所需的相关模型结构目录如下:

在这里插入图片描述

我用的是kashgari框架,其提供直接保存pb模型的方法kashgari.utils.convert_to_saved_model

tensorflow serving多模型部署_第1张图片


 -----model.save:保存在reberate_classification_13文件夹下的h5模型

 -----convert_to_saved_model:

        ----(args1)model:训练好的模型

        ----(args2):存放pb模型的文件夹目录及名称

        ----(agrs3)version:训练模型的版本,最终体现在存放pb模型的文件夹目录及名称

tensorflow serving多模型部署_第2张图片

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"
    } 
}

 目录结构详情如下:

tensorflow serving多模型部署_第3张图片       

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片数

你可能感兴趣的:(工作点滴,tensorflow,docker,深度学习)