2016-12-21 17 views
0

tensorflow.orgで入力関数を生成するためにtutorialに従っています。予測出力が無限に繰り返されます

予測を印刷しようとするまではすべてうまく動作します(これはちょうど6つの予測に過ぎません)。

y = regressor.predict(input_fn=lambda: input_fn(prediction_set)) 
print ("Predictions: {}".format(str(y))) 

この出力は<generator object _as_iterable at 0x7fa66ec6cfa0>です。

発電機をlist(y)のリストに変換しようとするとします。プログラムがフリーズします。私は(唯一の6があるはずも)のみの最初の30の項目を取得しようとした場合

import itertools 
print(list(itertools.islice(y, 30))) 

を私は次の取得:あなたはそれが値を繰り返しています見ることができるように

[34.382435, 20.170452, 23.214834, 37.211243, 17.090082, 19.648254, 
34.382435, 20.170452, 23.214834, 37.211243, 17.090082, 19.648254, 
34.382435, 20.170452, 23.214834, 37.211243, 17.090082, 19.648254, 
34.382435, 20.170452, 23.214834, 37.211243, 17.090082, 19.648254, 
34.382435, 20.170452, 23.214834, 37.211243, 17.090082, 19.648254] 

広告無限。

何か不足していますか?

Tensorflowバージョン:0.12.0-rc1の

Pythonのバージョン:2.7.6

答えて

0

は、我々は最近、最新で最新の状態にするチュートリアル "tf.contrib.learnで構築する入力機能" を改訂しますエスティメータのpredict()のデフォルトの動作。ジェネレータを返します。

https://www.tensorflow.org/versions/master/tutorials/input_fn/

そして最新のコードはここにある::改訂チュートリアルテキストはここにある

https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/tutorials/input_fn/boston.py

ここitertools.isliceを使用して関連するセクションでは、あなたの最後の試みのように、です

y = regressor.predict(input_fn=lambda: input_fn(prediction_set)) 
# .predict() returns an iterator; convert to a list and print predictions              
predictions = list(itertools.islice(y, 6)) 
print("Predictions: {}".format(str(predictions))) 

islに2番目の引数があるときに予測値が繰り返されるような動作が表示されません氷は30に増えます。上のリンクのGitHubから最新のコードを引っ張ってみてください。あなたがまだそれに遭遇したら教えてください?

+0

[ここ](https://raw.githubusercontent.com/tensorflow/tensorflow/master/tensorflow/examples/tutorials/input_fn/boston.py)からコードをダウンロードしました。 isliceの引数。 10: '[33.596405、18.607161、21.850567、33.849072、16.530201、18.338963、33.596405、18.607161、21.850567、33.849072] –

関連する問題