3

Stack Overflow コミュニティの助けを借りて、TensorFlow の「高レベル」API の複雑さを理解し始めましたEstimator。私は、おそらくばかげて、TensorFlow と TensorFlow JS がうまくいくとしたら、おそらく API を介するだろうと考えてそうしましたEstimator...

したがって、このColabでは、単純に配線された単純なカスタムEstimatorを使用して、「トレーニング」のようなメソッドが.train_and_evaluate動作し、「トレーニング」後にEstimatorを介してエクスポートされexport_savedmodelます。

ここで、TensorFlow js を介してブラウザでこのトレーニング済みモデルを使用したいとします。

幸運なことに、TensorFlow JSに変換する方法に関するガイドがあります。saved_model

tensorflowjs_converter \
    --input_format=tf_saved_model \
    --output_node_names='MobilenetV1/Predictions/Reshape_1' \
    --saved_model_tags=serve \
    /mobilenet/saved_model \
    /mobilenet/web_model

引数には説明がありますが...

  • --output_node_namesコンマで区切られた出力ノードの名前。
  • --saved_model_tags SavedModel 変換、ロードする MetaGraphDef のタグ (コンマ区切り形式) にのみ適用されます。デフォルトで提供されます。
  • --signature_name TensorFlow Hub モジュール変換、署名から読み込みにのみ適用されます。デフォルトはデフォルトです。https://www.tensorflow.org/hub/common_signatures/を参照してください。

Colabにある demo estimator で、これらを何に置き換えればよいかわかりません。

なんで?まずbest_model第一に、を使用するエクスポーターは、をserving_input_receiver_fn介してロードされたときに異なる出力を持ちます

from tensorflow.contrib import predictor
predict_fn = predictor.from_saved_model('<exported_location>')

からより

estimator.predict(lambda: predict_input_fn(pred_features), yield_single_examples=False)

つまり、前者で出力される予測特徴量のキーは、後者の「出力」と「ラベル」です。

Estimator私のちょっとした暴言を許してください、エクスポートされたモデルをロードする方法がないのはなぜですか?

それで:

  1. 私の「output_node_names」は何ですか?

  2. これは SavedModel であるため、何tagsが必要ですか?

ご指導いただければ幸いです。

4

0 に答える 0