使用docker和tf serving搭建模型预测服务
本篇主要介绍使用docker
和tensorflow serving
搭建一个模型预测服务,通过RESTful API和gRPC请求预测(python)。在下一篇将介绍使用Python web框架Django + tfserving,搭建一个图像分类预测web服务。
一、准备工作
1.安装Docker CE
Docker CE的安装可以参考docker官方参考文档:install Docker CE
安装完成后,可以运行 $sudo docker run hello-world
测试是否安装成功,成功安装的情况下应该看到如下输出:
docker安装完成后,在使用docker命令的时候需要使用sudo,这是因为docker守护进程绑定的是Unix socket,默认情况下Unix socket为root用户所有,其他用户想要访问需要使用sudo。如果希望不使用sudo,可以新建一个名为docker的用户组,并将当前用户添加到该用户组,这样docker守护进程启动的时候,会自动为docker用户组用户获取Unix socket的读写权限。
sudo groupadd docker # 创建docker用户组
sudo usermod -aG docker ${USER} # 将当前用户添加到docker组
sudo systemctl restart docker # 重启docker
su root
su ${USER} # 切换或退出当前用户再登入生效
完成后可以运行$docker ps -a 查看效果。
2.保存模型
保存模型是将训练得到的tensorflow模型保存为可以用于tensorflow serving的模型文件,主要是通过GraphDef对象保存模型文件。相关详细说明和完整示例代码可以参考tensorflow模型保存与恢复(2) 使用SavedModel,可以直接使用simple_save方法保存,更简洁方便。保存模型的时候注意设置好input和output,使用tfserving预测的输入即是从input tensor输入到网络,一次前向传播完成后,得到output tensor,返回预测结果。
二、运行容器
1.获取tfserving 镜像
这一步是从docker仓库获取tensorf