2017-10-20 8 views
6

が含まれていない私はestimator.predictでカスタム入力機能付き予測を取得しようとしているが、それは私にこれを与える:TensorFlowのestimator.predict()は警告を与える:tensorflow:入力グラフはQueueRunner

WARNING:tensorflow:Input graph does not contain a QueueRunner. That means predict yields forever. This is probably a mistake.

それは私にエラーを与えませんが、predictは、その復元パラメータと実際の予測を返していないと言います。ここに私のコードは次のとおりです。

test_data = [0.03, 0.91, 0.95, 0.10, 0.56, 0.93] 
test_data_in = { k: test_data[index] for index, k in enumerate(FEATURES) } 
print(test_data_in) 

def predict_input_fn(data_set): 
    feature_cols = { k: tf.reshape(tf.constant(data_set[k], dtype=tf.float32), [-1]) for k in FEATURES } 
    return feature_cols 

predictions = estimator.predict(input_fn=lambda: predict_input_fn(test_data_in)) 
print(list(predictions)) 

私はthis問題を見てきましたが、私は私の問題に関連した解決策を見つけることができませんでした。なぜTensorFlowはこの警告を表示し、どのように取り除くのですか?

+1

です。これはちょうどこれを見つけました(同じ問題に当たっています)。 – contractorwolf

+0

多分役に立たないかもしれません(私のためではありませんでした):https://github.com/tensorflow/tensorflow/issues/11621 – antonimmo

答えて

2

私は私はあなたのプログラムが完全に正しいであり、それは間違っている:)だ警告だと思うスレッドhttps://github.com/tensorflow/tensorflow/issues/11621

を読んで、これもヒット。データセットAPIが存在するよりずっと前に追加され、うまくいきました。 (AFAICT)predict()APIは、tf.errors.OutOfRangeErrorで終了する入力に依存し、データセットが存在する前にQueueRunnerベースのパイプラインのみが終了するため、キューランナーが存在しない場合はおそらくエラーになります) @xiejw私たちはこの警告を削除するか、エラー状態を検出するためのより狡猾な方法がありますか?

うまくいけば、エラーが発生した場合は削除してください。

0

同じエラーが発生しました。しかし、予測(行単位)の値を見るには、__next__()演算子を使用しました。 したがって、次の即時の行を表示するコードはprint(predictions.__next__)

関連する問題