tensorflowモデル導入シリーズ--TensorFlow Services導入(コード付)
5486 ワード
サマリ
この文書では、汎用モデルのTensorFlowサービス導入を実現するためのシリーズブログtensorflowモデル導入シリーズの一部です.この文書では、tensorFlowサービングを使用してtensorflowモデル推論サーバを導入することを主に実現します.tensorflowモデルのサーバ側での計算スキームを実現し、関連するサンプルソースコードを提供します.関連ソースはリンクを参照
引用する
本稿では、汎用モデルの独立したシンプルなサーバ導入を実現するために、シリーズブログtensorflowモデルの導入シリーズの一部です.この文書では、tensorFlowサービングを使用してtensorflowモデル推論サーバを導入することを主に実現します.サーバ側でtensorflowモデルを計算する簡単なスキームを実現し、このスキームはBSとCSアーキテクチャに適用され、導入とメンテナンスが容易である.前のブログではflaskを利用して簡単なモデルサービスを構築することを説明したが、モデルはオブジェクトをインスタンス化しただけで、同時アクセスの場合、臨界領域の問題がある.TensorFlow Servicesはこの問題をうまく解決した.
テーマ
前述の博文tensorflowモデル導入シリーズ--独立した単純サーバ導入はtensorflowをサーバ上で簡単に導入する方法について説明したが、モデルは1つのオブジェクトのみをインスタンス化し、同時アクセスの場合、臨界領域の問題がある.本明細書で説明するTensorFlowサービングモデルの導入は、この問題をうまく解決しています.もちろん、TensorFlow Servicesは強力なツールであり、モデルの導入には小さな機能しか使用されていません.本稿のトピックはモデルの導入にあるため、他の面ではあまり紹介されていません.
TensorFlow Servicesの紹介
TensorFlow Servicesはgoogleが公式に発表した生産用の機械学習コンポーネントの一つです.彼はモデルバージョン制御(ロールバックオプションを含むモデル更新を実現するために使用される)と複数のモデル(A/Bテストによる実験を実現するために使用される)をサポートするとともに、同時モデルがハードウェアアクセラレータ(GPUとTPU)上でより低い遅延でより高いスループットを実現できることを確保することができる.
インストール
サービス側のインストールには、次の3つの方法があります.
ソースの追加
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 -
apt-get update
取付
apt-get install tensorflow-model-server
https://github.com/tensorflow/serving.git
モデル配置
モデル変換
model = keras.models.load_model('../model/saved_keras/save.h5')
tf.saved_model.simple_save(
keras.backend.get_session(),
export_path,
inputs={'input_image': model.input},
outputs={t.name:t for t in model.outputs})
saved_model_cli show --dir ./export/1 --all
では、入出力署名が予想されるモデル配置
モデルの準備ができたら、次のコマンドを使用してサービスを導入できます.
tensorflow_model_server \
--rest_api_port=8501 \
--model_name=saved_model \
--model_base_path=/..../model_deployment/tensorflow_serving/export/
クライアントテスト
サービス側が正常に起動すると、クライアントを使用してテストできます.TensorFlow Serviceのリクエストと返信はjson形式で、リクエストアドレスは
http://host:port/v1/models/${MODEL_NAME}
です.予測インタフェースの要求フォーマットは
{
// (Optional) Serving signature to use.
// If unspecifed default serving signature is used.
"signature_name": <string>,
// Input Tensors in row ("instances") or columnar ("inputs") format.
// A request can have either of them but NOT both.
"instances": <value>|<(nested)list>|<list-of-objects>
"inputs": <value>|<(nested)list>|<object>
}
返信形式は次のとおりです.
{
"predictions": <value>|<(nested)list>|<list-of-objects>
}