安装

安装 ModelServer

使用 Docker 安装

使用 TensorFlow Serving 最简单、最直接的方法是使用 Docker 镜像。我们强烈建议您使用此方法,除非您有容器无法满足的特定需求。

提示:这也是让 TensorFlow Serving 与 GPU 支持 一起工作的最简单方法。

使用 APT 安装

可用二进制文件

TensorFlow Serving ModelServer 二进制文件有两种变体

tensorflow-model-server:完全优化的服务器,使用一些平台特定的编译器优化,例如 SSE4 和 AVX 指令。对于大多数用户来说,这应该是首选选项,但可能不适用于某些旧机器。

tensorflow-model-server-universal:使用基本优化编译,但不包含平台特定的指令集,因此应该适用于大多数机器,如果不是所有机器的话。如果 tensorflow-model-server 不适合您,请使用此方法。请注意,这两个软件包的二进制文件名称相同,因此如果您已经安装了 tensorflow-model-server,则应先使用以下命令卸载它

apt-get remove tensorflow-model-server

安装

  1. 将 TensorFlow Serving 分发 URI 添加为软件包源(一次性设置)

    echo "deb [arch=amd64] http://storage.googleapis.com/tensorflow-serving-apt stable tensorflow-model-server tensorflow-model-server-universal" | sudo tee /etc/apt/sources.list.d/tensorflow-serving.list && \
    curl https://storage.googleapis.com/tensorflow-serving-apt/tensorflow-serving.release.pub.gpg | sudo apt-key add -
    
  2. 安装和更新 TensorFlow ModelServer

    apt-get update && apt-get install tensorflow-model-server
    

安装后,可以使用命令 tensorflow_model_server 调用二进制文件。

您可以使用以下命令升级到更新版本的 tensorflow-model-server

apt-get upgrade tensorflow-model-server

从源代码构建

从源代码构建的推荐方法是使用 Docker。TensorFlow Serving Docker 开发镜像包含构建您自己的 TensorFlow Serving 版本所需的所有依赖项。

有关这些依赖项的列表,请参阅 TensorFlow Serving 开发 Dockerfile [CPUGPU]。

安装 Docker

一般安装说明在 Docker 网站 上。

克隆构建脚本

安装 Docker 后,我们需要获取要构建的源代码。我们将使用 Git 克隆 TensorFlow Serving 的主分支

git clone https://github.com/tensorflow/serving.git
cd serving

构建

为了在包含所有依赖项的密封环境中构建,我们将使用 run_in_docker.sh 脚本。该脚本将构建命令传递到 Docker 容器中。默认情况下,该脚本将使用最新的 nightly Docker 开发镜像进行构建。

TensorFlow Serving 使用 Bazel 作为其构建工具。您可以使用 Bazel 命令来构建单个目标或整个源代码树。

要构建整个树,请执行

tools/run_in_docker.sh bazel build -c opt tensorflow_serving/...

二进制文件放置在 bazel-bin 目录中,可以使用类似以下的命令运行

bazel-bin/tensorflow_serving/model_servers/tensorflow_model_server

要测试您的构建,请执行

tools/run_in_docker.sh bazel test -c opt tensorflow_serving/...

有关运行 TensorFlow Serving 的更深入示例,请参阅 基本教程高级教程

构建特定版本的 TensorFlow Serving

如果您想从特定分支(例如发布分支)构建,请将 -b <branchname> 传递给 git clone 命令。

我们还希望通过将 run_in_docker.sh 脚本传递我们想要使用的 Docker 开发镜像,来匹配该代码分支的构建环境。

例如,要构建 TensorFlow Serving 1.10 版本

$ git clone -b r1.10 https://github.com/tensorflow/serving.git
...
$ cd serving
$ tools/run_in_docker.sh -d tensorflow/serving:1.10-devel \
  bazel build tensorflow_serving/...
...
优化构建

如果您想应用普遍推荐的优化,包括利用针对您的处理器特定平台的指令集,您可以在构建 TensorFlow Serving 时将 --config=nativeopt 添加到 Bazel 构建命令。

例如

tools/run_in_docker.sh bazel build --config=nativeopt tensorflow_serving/...

也可以使用特定指令集(例如 AVX)进行编译。在文档中看到 bazel build 的地方,只需添加相应的标志

指令集 标志
AVX --copt=-mavx
AVX2 --copt=-mavx2
FMA --copt=-mfma
SSE 4.1 --copt=-msse4.1
SSE 4.2 --copt=-msse4.2
处理器支持的所有指令集 --copt=-march=native

例如

tools/run_in_docker.sh bazel build --copt=-mavx2 tensorflow_serving/...
使用 GPU 支持构建

为了构建具有 GPU 支持的自定义版本的 TensorFlow Serving,我们建议您使用 提供的 Docker 镜像 进行构建,或者按照 GPU Dockerfile 中的方法进行操作。

TensorFlow Serving Python API PIP 包

要运行 Python 客户端代码而无需构建 API,您可以使用以下命令安装 tensorflow-serving-api PIP 包

pip install tensorflow-serving-api