安装 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
安装
将 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 -
安装和更新 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 [CPU,GPU]。
安装 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