Tensorflow Serving 2.0多模型部署Centos

Tensorflow Serving 2.0多模型部署Centos

本章介绍如何在Centos上部署Tensorflow2.0 的 tf-serving,并且可以部署多模型的配置,具体就分为两步

1、保存模型配置

首先要了解tf serving是什么,是用来干什么的,在学过tf的小伙伴们都知道,在使用tf学习建立好模型后,想要在后台实时调用这个模型就需要让模型挂载到后台,才能够方便调用,所以,这里将使用Centos作为服务器,来挂载tf serving。开始实战

导出模型
model.save("models/1.0", save_format="tf")
# 1.0是我自己的标识的一个版本号

有的小伙伴喜欢直接保存为一个h5文件,这种方式是保存的整个模型,包括整个模型的结构、权值、配置等等,如果使用服务器挂载建议使用上面那种方式,将模型保存为SavedModel格式,这是对tensorflow对象标准的序列化格式,非常推荐使用,它将由几个文件组成

举例,我保存好的模型文件将分为以下部分:
tensorflow/
├── model1
│ └── 1
│ └── models
│    ├── saved_model.pb
│    └── variables
│      ├── variables.data-00000-of-00001
│      └── variables.index
├── model2
│   └── 1
│    └── models
│      ├── saved_model.pb
│      └── variables
│        ├── variables.data-00000-of-00001
│        └── variables.index
└── models.config

上面是我的多个模型保存的路径,每保存好一个模型后,可以查看一下保存后的模型配置,是否有误等等

查看模型配置信息
# 查看保存的模型文件
!ls {version}

我这里使用的是jupyter notebook,前面的!号表示使用系统命令

# 查看模型文件相关信息
!saved_model_cli show --dir {str(version)} --all

输入上述命令,你将能看到模型文件的一些重要信息,比如说模型的名称,模型的输入输出结构等等

接着,确保系统中存在docker,Centos中安装Docker具体过程将不再举例,具体可以看我的这篇文章:

Centos安装Docker

之后,使用docker下载镜像到本地

docker pull tensorflow/serving:latest-gpu 

2、Tf2.0 serving 多模型配置和启动

编写models.config, 多模型部署配置文件

model_config_list:{
    config:{
        name:"model1"
        base_path:"/tensorflow/model1/1/models"
        model_platform:"tensorflow"
        model_version_policy {
            specific {
            versions: 1
            }
        }
    },
       config:{
        name:"model2"
        base_path:"/tensorflow/model2/1/models"
        model_platform:"tensorflow"
        model_version_policy {
            specific {
            versions: 1
            }
        }
    }

}
## name为调用模型的名称

然后,使用docker启动刚刚保存好的模型文件

sudo docker run -p 8500:8500 -p 8501:8501 \
--mount type=bind,source=/home/yons/tensorflow,target=/tensorflow \
  -t  tensorflow/serving:latest-gpu \
  --per_process_gpu_memory_fraction=0.5 \
  --enable_batching=true \
--model_config_file=/tensorflow/model.config &

命令的参数说明如下:
-p: 开启两个端口,我开启了8500和8501,这两个端口分别是用来连接grpc和retful api 使用,端口填写方式为 (主机端口:8500),后面为tf serving端口,是固定的
–mount type :绑定主文件夹,我的完整路径文件夹为/home/yons/tensorflow, target: 我的模型文件夹在/tensorflow, 即为完整路径文件夹的最后一个目录
-t 使用的镜像
–per_process_gpu_memory_fracti 将使用百分之50的显存启动
–enable_batching: 允许模型进行批推理,提高GPU使用效率
–model_config_file 这里为我的多模型配置文件

保存好模型后,你的界面应该是这样,其他有什么我没表达清楚,欢迎私信我
Tensorflow Serving 2.0多模型部署Centos_第1张图片

祝好运

你可能感兴趣的:(python,tensorflow,神经网络)