TensorFlow Serving-GPU版Docker环境部署流程

TensorFlow Serving最简单的安装方法之一就是使用Docker,我们也将使用Docker完成接下来的操作。

安装TensorFlow Serving

step 1 安装Docker

我们将在Ubuntu 16.04的机器上安装Docker,各版本docker的安装可以参考ubuntu16.04安装最新版docker、docker-compose、docker-machine.

step 2 安装nvidia-docker

下面给出在Ubuntu上的安装方法:

# If you have nvidia-docker 1.0 installed: we need to remove it and all existing GPU containers
docker volume ls -q -f driver=nvidia-docker | xargs -r -I{} -n1 docker ps -q -a -f volume={} | xargs -r docker rm -f
sudo apt-get purge -y nvidia-docker

# Add the package repositories
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \
 sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \
 sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update

# Install nvidia-docker2 and reload the Docker daemon configuration
sudo apt-get install -y nvidia-docker2
sudo pkill -SIGHUP dockerd

# Test nvidia-smi with the latest official CUDA image
docker run --runtime=nvidia --rm nvidia/cuda:9.0-base nvidia-smi

更多详细信息以及其他版本的安装可以参考:nvidia-docker

step 3 pull一个tfserver镜像

docker pull tensorflow/serving:latest-gpu

除了上面这个版本,你还可以点击这里查看更多支持的版本。
至此,需要安装的软件都已经完成,下面介绍如何使用TensorFlow Serving。

TensorFlow Serving的使用

加载单模型方法

如果要使用gRPC服务,则需要开放8500端口。下面这种情况仅仅开放了8501.

docker run -p 8501:8501 \
  --mount type=bind,source=/path/to/my_model/,target=/models/my_model \
  -e MODEL_NAME=my_model -t tensorflow/serving

加载多模型方法

此种模型是同时开放了8500(支持gRPC服务)和8501端口。多模型下有一点务必要注意的是,models.conf文件中modelbase_path应该是与target的路径保持一致,否则会报错找不到模型。

docker run --runtime=nvidia -p 8500:8500 -p 8501:8501 \
--mount type=bind,source=/path/to/my_model/,target=/models/my_model \
--mount type=bind,source=/path/to/my/models.config,target=/models/models.config \
-t tensorflow/serving:latest-gpu --model_config_file=/models/models.config &

下面是一个models.conf文件示例,注意其中base_path的路径:

model_config_list: {
config: {
name: "my_model",
base_path: "/models/my_model",
model_platform: "tensorflow",
},
}

其他

如何生成tfserving可以加载的模型

参考深度学习Tensorflow生产环境部署(下·模型部署篇).除此之外,该博主还有更为详细的环境部署过程,具体可以参考这里.

创建自己的镜像文件

这种方法可以把自己的模型放到自己创建镜像里面。具体实现可以参考github文档。

使用docker开发

github文档

tutorial

  • basic
  • advanced

你可能感兴趣的:(深度学习,TensorFlow)