安裝 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 的 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