翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
TensorFlow サービス
TensorFlow サービング
tensorflow-serving-api
には、Conda を使用した Deep Learning AMIがプリインストールされています。MNIST モデルをトレーニング、エクスポート、提供するスクリプトの例は、 にあります~/examples/tensorflow-serving/
。
これらの例を実行するには、まず Deep Learning AMI with Conda に接続し、 TensorFlow 環境をアクティブ化します。
$
source activate tensorflow2_p310
ここで、処理するサンプルスクリプトのフォルダにディレクトリを変更します。
$
cd ~/examples/tensorflow-serving/
事前トレーニング済み Inception モデルを提供する
以下に示しているのは、Inception のような異なるモデルを提供するために試すことができる例です。原則として、 に既にダウンロードされている使用可能なモデルとクライアントスクリプトが必要ですDLAMI。
インセプションモデルによる推論の提供とテスト
-
モデルをダウンロードします。
$
curl -O https://s3-us-west-2.amazonaws.com/tf-test-models/INCEPTION.zip -
モデルを展開します。
$
unzip INCEPTION.zip -
ハスキーの画像をダウンロードします。
$
curl -O https://upload.wikimedia.org/wikipedia/commons/b/b5/Siberian_Husky_bi-eyed_Flickr.jpg -
サーバーを起動します。Amazon Linux の場合、
model_base_path
に使用されるディレクトリを/home/ubuntu
から/home/ec2-user
に変更する必要があります。$
tensorflow_model_server --model_name=INCEPTION --model_base_path=/home/ubuntu/examples/tensorflow-serving/INCEPTION/INCEPTION --port=9000 -
サーバーをフォアグラウンドで実行している場合、続行するには別のターミナルセッションを開始する必要があります。新しいターミナルを開き、 TensorFlow でアクティブ化します
source activate tensorflow2_p310
。次に、任意のテキストエディタを使用して、以下の内容のスクリプトを作成します。このスクリプトにinception_client.py
という名前を付けます。このスクリプトは画像のファイル名をパラメータとして受け取り、事前トレーニング済みモデルから予測結果を取得します。from __future__ import print_function import grpc import tensorflow as tf import argparse from tensorflow_serving.apis import predict_pb2 from tensorflow_serving.apis import prediction_service_pb2_grpc parser = argparse.ArgumentParser( description='TF Serving Test', formatter_class=argparse.ArgumentDefaultsHelpFormatter ) parser.add_argument('--server_address', default='localhost:9000', help='Tenforflow Model Server Address') parser.add_argument('--image', default='Siberian_Husky_bi-eyed_Flickr.jpg', help='Path to the image') args = parser.parse_args() def main(): channel = grpc.insecure_channel(args.server_address) stub = prediction_service_pb2_grpc.PredictionServiceStub(channel) # Send request with open(args.image, 'rb') as f: # See prediction_service.proto for gRPC request/response details. request = predict_pb2.PredictRequest() request.model_spec.name = 'INCEPTION' request.model_spec.signature_name = 'predict_images' input_name = 'images' input_shape = [1] input_data = f.read() request.inputs[input_name].CopyFrom( tf.make_tensor_proto(input_data, shape=input_shape)) result = stub.Predict(request, 10.0) # 10 secs timeout print(result) print("Inception Client Passed") if __name__ == '__main__': main()
-
サーバーの場所、ポート、ハスキーの写真のファイル名をパラメータとして渡してスクリプトを実行します。
$
python3 inception_client.py --server=localhost:9000 --image Siberian_Husky_bi-eyed_Flickr.jpg
MNIST モデルのトレーニングと提供
このチュートリアルでは、モデルをエクスポートして、tensorflow_model_server
アプリケーションで処理します。最終的に、サンプルのクライアントスクリプトを使用してモデルサーバーをテストできます。
MNIST モデルのトレーニングとエクスポートを行うスクリプトを実行します。スクリプトの唯一の引数として、モデルを保存するフォルダのロケーションを指定する必要があります。ここでは、mnist_model
に入力するだけです。スクリプトによってフォルダが作成されます。
$
python mnist_saved_model.py /tmp/mnist_model
このスクリプトは出力に時間がかかることがあるため、少し待ちます。トレーニングが完了して最後にモデルがエクスポートされると、次の内容が表示されます。
Done training! Exporting trained model to mnist_model/1 Done exporting!
次のステップでは、tensorflow_model_server
を実行してエクスポートされたモデルを処理します。
$
tensorflow_model_server --port=9000 --model_name=mnist --model_base_path=/tmp/mnist_model
サーバーをテストするクライアントスクリプトが用意されています。
これ テストするには、新しいターミナルウィンドウを開く必要があります。
$
python mnist_client.py --num_tests=1000 --server=localhost:9000
その他の機能と例
TensorFlow Serving の詳細については、TensorFlow ウェブサイト
Amazon Elastic Inference で TensorFlow Serving を使用することもできます。詳細については、 TensorFlow Serving で Elastic Inference を使用する方法に関するガイドを参照してください。