2017-08-11 5 views
2

私は、2つの疎と2つの実数値のフィーチャを持つシンプルなLinearModelを持っています。私はそれを訓練し、export_savedmodelでエクスポートしたいと思います。Tensorflowのexport_savedmodelのinput_alignedエラー

feature_spec = create_feature_spec_for_parsing(
    [ 
     real_valued_column_1, real_valued_column_2, 
     sparse_column_1, sparce_column_2 
    ] 
) 
input_receiver_fn = tf.estimator.export.build_parsing_serving_input_receiver_fn(feature_spec) 
my_estimator.export_savedmodel('my_model/', serving_input_fn=input_receiver_fn) 

real_valued_column_1 = tf.contrib.layers.real_valued_column(
    'avg_consumption_h') 
sparse_column_1 = tf.contrib.layers.sparse_column_with_integerized_feature("sparse_1", bucket_size=24) 

は、残念ながら私は export_savedmodelValueError: A default input_alternative must be provided.を取得し、いくつかのソースを参照する私はの線に沿って何かを思い付きました。私はテンソルフローのコードベースを少し掘り下げました。は常に ServingInputReceiverを返しますが、 serving_input_fnがpassed_savedmodelに渡された場合、input_alternativesを抽出するメソッドは常に InputFnOpsではないものを空にします。

build_parsing_serving_input_receiver_fn何とか非難されていますが、input_alternativeの抽出プロセスに何か間違っているのでしょうか、あるいは私がプロセスを誤解して何か間違っているのでしょうか?

テンソル1.2のPython 3.6を使用していますが、私のモデルは単純tf.contrib.learn.LinearRegressorです。

+0

[export_savedmodel機能の例](https://stackoverflow.com/a/48329456/4268517に) –

答えて

3

あなたは、次の

from tensorflow.contrib.learn.python.learn.utils.input_fn_utils import build_parsing_serving_input_fn 
input_receiver_fn = build_parsing_serving_input_fn(feature_spec) 
+0

感謝を試すことができ、それが動作します! [現在のドキュメント](https://www.tensorflow.org/programmers_guide/saved_model#using_savedmodel_with_estimators)でも、cl0udburstが使用していたバージョンを指していますが、それが何をしているのか、そしてなぜそれが違うのでしょうか? – stpk

関連する問題