2017-02-14 13 views
14
SavedModel Docsから

TensorFlowユーザーはCheckedpointまたはGraphDefよりSavedModelを優先しますか?

SavedModel、TensorFlowモデル用ユニバーサルシリアル化形式。

SavedModelはTensorFlowセーバーをラップします。 Saverは、主に可変チェックポイントの生成に使用されます。

私が理解しているように、誰かがTensorFlow Servingを使いたい場合は、SavedModelが必要です。しかし、SavedModelを使わずにTensorflow Modelを展開することができます:フリーズグラフをGraphDefとしてエクスポートし、ReadBinaryProtoCreate(C++)またはImport(Go)を使ってセッションにグラフを読み込みます。

SavedModelの目的は何ですか?モデルに関連するより多くのデータを集計するためにCheckpointやGraphDefよりもSavedModelを好むべきですか?

+0

ほとんどの人がチェックポイントを使用していると私は思います。 'tf.saved_model'は我々が導入した新機能です。それは使用する方が良いでしょう。 ddoc [here](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/saved_model/README.md)があります。 – drpng

+1

@drpng私は、節約モデルを扱うための "ベストプラクティス"が何であるか知りたいと思います。 –

答えて

18

チェックポイントには、TensorFlowモデルの(一部の)変数の値が含まれています。これはSaverによって作成され、保存するには特定のVariableを指定するか、デフォルトではすべての(ローカル以外の)変数を保存します。

チェックポイントを使用するには、互換性のあるTensorFlow Graphが必要です。Variableの名前は、チェックポイントのVariableと同じです。 (あなたは互換性のGraphを持っていない場合、あなたはまだのcontribにinit_from_checkpointユーティリティを使用して、選択Variable S内にチェックポイントに格納された値を読み込むことができます。)

SavedModelがはるかに包括的である:それはGraph Sのセットが含まれています(MetaGraph、実際には、コレクションなどを保存する)、これらのGraphと互換性のあるチェックポイント、およびモデルを実行するために必要なアセットファイル(語彙ファイルなど)が含まれます。各MetaGraphには、シグネチャのセットも格納されます。シグネチャは、入力および出力のテンソルを定義(名前付け)します。これだけSavedModelを与えられたことを意味

、あなたの解釈(まもなくtools/に表示されますようtensorflow/serving、または新しいsaved_modelコマンドラインユーティリティ)ツールを書いたり、内部のグラフを実行することができます。あなたが提供しなければならないのはデータだけです。

疑問がある場合は、チェックポイントだけでなく、SavedModelを書く側で私はいつも誤りがあります。これにより、テンソルフロー/サービング(および他のきれいなユーティリティの数が増えます)を使用できるだけでなく、モデルを実行するために必要なすべての情報が確実に得られます。モデルを変更してチェックポイントファイルと互換性がなくなったため、もう使用できないチェックポイントよりも不快なものはありません。比較のためにいくつかの予測を実行するだけです。

+1

トレーニングに 'SavedModel'を使うことについて、いくつかの情報を使って答えを更新するようお願いします。チェックポイントは、複数のモデルバージョンを保持できるため、優れています。彼らは訓練を中止することができるからです。 'SavedModel'は1つのチェックポイントを1回だけ(' add_meta_graph_and_variables'を呼び出すとき)保存して、もう一度保存しないようです。チェックポイントを定期的に書く方法はありますか? –

+2

通常、チェックポイントは定期的に書き出し、そのうち1つ(通常は最高のもの)をSavedModelにラップします。同様に、各チェックポイントをSavedModelにするだけで、1つしか作成できない理由はありません。 – wicke

+0

SavedModelの読み込みに時間がかかるようです(https://stackoverflow.com/questions/44238347/loading-savedmodel-is-a-lot-slower-than-loading-a-tf-train-saver-チェックポイント – bw4sz

関連する問題