TensorFlow : Deploy : TensorFlow Serving: インストール (翻訳)
翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 09/01/2017
* 本ページは、TensorFlow 本家サイトの Deploy : TensorFlow Serving – Installation を翻訳した上で
適宜、補足説明したものです:
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。
TensorFlow Serving をコンパイルして使用するためには、幾つかの要件をセットアップする必要があります。
Bazel (ソースコードをコンパイルする場合のみ)
TensorFlow Serving は Bazel 0.45 またはそれ以上を要求します。Bazel インストレーション手順は ここ で見つかります。
Bazel のための要件を満たす場合、それらの手順は次のステップから成ります :
- 関連したバイナリを ここ からダウンロードします。bazel-0.4.5-installer-linux-x86_64.sh をダウンロードしたとします。貴方は次を実行するでしょう :
cd ~/Downloads chmod +x bazel-0.4.5-installer-linux-x86_64.sh ./bazel-0.4.5-installer-linux-x86_64.sh --user
- 環境をセットアップします。これを ~/.bashrc に置きます。
export PATH="$PATH:$HOME/bin"
gRPC
チュートリアルは RPC フレームワークとして gRPC (1.0.0 またはそれ以上) を使用します。インストール手順は ここ で見つかります。
パッケージ
TensorFlow Serving 依存をインストールするためには、次を実行します :
sudo apt-get update && sudo apt-get install -y \ build-essential \ curl \ libcurl3-dev \ git \ libfreetype6-dev \ libpng12-dev \ libzmq3-dev \ pkg-config \ python-dev \ python-numpy \ python-pip \ software-properties-common \ swig \ zip \ zlib1g-dev
TensorFlow Serving Python API PIP パッケージ
Bazel をインストールする必要なく Python クライアントコードを実行するためには、以下を利用して tensorflow-serving-api PIP パッケージをインストールすることができます :
pip install tensorflow-serving-api
apt-get を使用してインストールする
利用可能なバイナリ
TensorFlow Serving ModelServer バイナリは2つの変形 (= variant) で利用可能です :
tensorflow-model-server: 完全に最適化されたサーバで、SSE4 と AVX 命令のような幾つかのプラットフォームに特化されたコンパイラ最適化を使用しています。これは多くのユーザに好まれるオプションでしょう、しかしある(種の)より古いマシンでは動作しないかもしれません。
tensorflow-model-server-universal: 基本的な最適化でコンパイルされていますが、プラットフォームに特化された命令セットは含みませんので、世の中のすべてのマシンでないにしても殆どの上で動作するはずです。貴方のために tensorflow-model-server が動作しないのであればこれを使用してください。バイナリ名が両方のパッケージについて同じですので、既に tensorflow-model-server をインストールしているならば、次を使用して最初にそれをアンインストールするべきです。
sudo apt-get remove tensorflow-model-server
ModelServer をインストールする
- パッケージ・ソースとして 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 をインストールして更新する
sudo apt-get update && sudo apt-get install tensorflow-model-server
一度インストールされれば、バイナリはコマンド tensorflow_model_server を使用して起動されます。
tensorflow-model-server のより新しいバージョンへは次でアップグレードできます :
sudo apt-get upgrade tensorflow-model-server
Note: 上のコマンドにおいて、もし貴方のプロセッサが AVX 命令をサポートしてないのであれば、tensorflow-model-server を tensorflow-model-server-universal で置き換えてください。
ソースからインストールする
TensorFlow Serving レポジトリを clone する
git clone --recurse-submodules https://github.com/tensorflow/serving cd serving
–recurse-submodules は TensorFlow, gRPC, そして TensorFlow Serving が依存する他のライブラリを取得するために必要です。これらの手順は TensorFlow Serving の最新の master ブランチをインストールすることに注意してください。(release ブランチのような) 特定のブランチをインストールすることを望む場合には、git clone コマンドに -b
要件をインストールする
全ての依存をインストールするためには上述の要件セクションに追随してください。TensorFlow を configure するためには、以下を実行します
cd tensorflow ./configure cd ..
TensorFlow のセットアップやその依存の問題にぶつかったならば TensorFlow インストール手順 を調べてください。
ビルド
TensorFlow Serving はビルドに Bazel を使用します。個々のターゲットや全体のソースツリーをビルドするためには Bazel コマンドを使用します。
全体のツリーをビルドするためには、以下を実行します :
bazel build -c opt tensorflow_serving/...
バイナリは bazel-bin ディレクトリに置かれ、次のようなコマンドを使用して実行できます :
bazel-bin/tensorflow_serving/model_servers/tensorflow_model_server
インストールをテストするためには、以下を実行します :
bazel test -c opt tensorflow_serving/...
TensorFlow Serving を実行するより掘り下げたサンプルについては basic tutorial と advanced tutorial を見てください。
最適化されたビルド
幾つかのプラットフォームに特化した命令セット (e.g. AVX) を使用してコンパイルすることができます、これは本質的にパフォーマンスを改善できます。このドキュメントで ‘bazel build’ を見る場所ではどこでも、フラグ -c opt –copt=-msse4.1 –copt=-msse4.2 –copt=-mavx –copt=-mavx2 –copt=-mfma –copt=-O3 (あるいはこれらのフラグの幾つかのサブセット) を追加することができます。例えば :
bazel build -c opt --copt=-msse4.1 --copt=-msse4.2 --copt=-mavx --copt=-mavx2 --copt=-mfma --copt=-O3 tensorflow_serving/...
Note: これらの命令セットはすべてのマシン上で利用可能ではありません、特により古いプロセッサでは。そのためすべてのフラグでは動作しないかもしれません。それらのあるサブセットを試すか、基本的な ‘-c opt’ だけに戻すこともできます。
継続的インテグレーション・ビルド
TensorFlow ci_build インフラを使用した継続的インテグレーション・ビルドは docker を利用した単純化された開発を貴方に提供します。貴方の必要なものすべては git と docker です。すべての他の依存を手動でインストールする必要はありません。
git clone --recursive https://github.com/tensorflow/serving cd serving CI_TENSORFLOW_SUBMODULE_PATH=tensorflow tensorflow/tensorflow/tools/ci_build/ci_build.sh CPU bazel test //tensorflow_serving/...
Note: serving ディレクトリはコンテナ内にマップされます。貴方は docker コンテナの外側で (貴方のお気に入りのエディタで) 開発が可能でそしてこのビルドを実行する時、それは貴方の変更と一緒にビルドするでしょう。
以上