Path: blob/master/site/ja/tfx/tutorials/serving/rest_simple.ipynb
25118 views
Copyright 2020 The TensorFlow Authors.
TensorFlow Serving を使用して TensorFlow モデルをトレーニングしてサービングする
注意: このノートブックは、Google Colab でのみ実行するように設計されています。これは root アクセスのあるシステムにパッケージをインストールします。ローカルの Jupyter ノートブックで実行する場合は、注意して続行してください。
注:この例は、Jupyter スタイルのノートブックで今すぐ実行できます。セットアップは必要ありません。「Google Colabで実行」をクリックするだけです
このガイドでは、ニューラルネットワークモデルをトレーニングし、スニーカーやシャツなどの衣類の画像を分類し、トレーニングしたモデルを保存してから、TensorFlow Serving でサービングします。ここでは TensorFlow でのモデリングとトレーニングではなく、TensorFlow Serving に焦点が当てられているため、モデリングとトレーニングに焦点を当てた完全な例については、基本的な分類の例を参照してください。
このガイドでは、高レベル API である tf.keras を使用して、TensorFlow でモデルを構築およびトレーニングします。
モデルの作成
Fashion-MNIST データセットをインポートする
このガイドでは、Fashion MNIST データセットを使用します。このデータセットには、10 カテゴリの 70,000 のグレースケール画像が含まれています。次のように、画像は低解像度(28 x 28ピクセル)で個々の衣料品を示しています。
![]() |
Figure 1. Fashion-MNIST サンプル (作成者: Zalando、MIT ライセンス). |
Fashion MNIST は、画像処理のための機械学習での "Hello, World" としてしばしば登場する MNIST データセットの代替として開発されたデータセットです。データをインポートして読み込むだけで、TensorFlow から直接 Fashion MNIST にアクセスできます。
注意:これらは実際には画像ですが、バイナリ画像オブジェクトではなく、NumPy 配列として読み込まれます。
モデルをトレーニングして評価する
ここではモデリングには焦点を当てていないので、可能な限り単純な CNN を使用します。
モデルを保存する
トレーニング済みモデルを TensorFlow Serving に読み込むには、最初にモデルを SavedModel 形式で保存する必要があります。これにより、明確に定義されたディレクトリ階層に protobuf ファイルが作成され、バージョン番号が含まれます。TensorFlow Serving を使用すると、推論リクエストを行うときに使用するモデルのバージョン、つまり「サービング可能」を選択できます。各バージョンは、指定されたパスの下の異なるサブディレクトリにエクスポートされます。
保存したモデルを調べる
コマンドラインユーティリティsaved_model_cli
を使用して、SavedModel の MetaGraphDefs(モデル)と SignatureDefs(呼び出すことができるメソッド)を確認します。TensorFlow ガイドの SavedModel CLI に関するディスカッションをご覧ください。
これはモデルについて多く情報を与えてくれます。ここでは、モデルをトレーニングしたばかりなので、入力と出力はすでにわかっていますが、知らない場合は、これは重要な情報になります。たとえば、これがグレースケール画像データであることなど、完全な情報は提供されませんが、有用な情報を提供してくれます。
TensorFlow Serving を使用してモデルをサービングする
**注意: これを Google Colab で実行していない場合は、**以下のセルは root アクセスのあるシステムにパッケージをインストールします。ローカルの Jupyter ノートブックで実行する場合は、注意して続行してください。
TensorFlow Serving ディストリビューション URI をパッケージソースとして追加する
この Colab は Debian 環境で実行されるため、Aptitude を使用して TensorFlow Serving をインストールする準備をします。tensorflow-model-server
パッケージを Aptitude が認識しているパッケージのリストに追加します。root として実行していることに注意してください。
注意:この例では TensorFlow Serving をネイティブで実行していますが、Docker コンテナで実行することもできます。これは TensorFlow Serving を使い始めるのに最も簡単な方法の 1 つです。
TensorFlow Serving のインストール
必要なのは以下のコマンドライン 1 行だけです。
TensorFlow Serving の実行をはじめる
これから TensorFlow Serving の実行を開始し、モデルを読み込み始めます。読み込み後、REST を使用して推論リクエストの作成を開始できます。以下の重要なパラメータがあります。
rest_api_port
: REST リクエストで使用するポート。model_name
: これを REST リクエストの URL で使用します。任意の名前を使用します。model_base_path
: これは、モデルを保存したディレクトリへのパスです。
TensorFlow Serving でモデルにリクエストを出す
まず、テストデータからランダムな例を見てみましょう。
興味深いことに気が付きましたか?次に、3 つの推論リクエストのバッチ用の JSON オブジェクトを作成し、モデルがどの程度認識しているかを確認しましょう。
REST リクエストを行う
サーバブルの最新バージョン
予測リクエストを POST としてサーバーの REST エンドポイントに送信し、3 つの例を渡します。特定のバージョンを指定せずに、サーバーにサーバブルの最新バージョンを提供するように依頼します。
特定バージョンのサーバブル
次に、特定のバージョンのサーバブルのを指定します。1 つしかないので、バージョン 1 を選択しましょう。また、3 つの結果すべてを確認します。