安裝

安裝 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 的 master 分支

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

建構

為了在包含所有依附元件的密封環境中建構,我們將使用 run_in_docker.sh 指令碼。此指令碼會將建構指令傳遞至 Docker 容器。依預設,指令碼會使用最新的每晚 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 指令。

我們也會想要比對該程式碼分支的建構環境,方法是將我們想要使用的 Docker 開發映像檔傳遞至 run_in_docker.sh 指令碼。

例如,若要建構 1.10 版的 TensorFlow Serving

$ 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