2017-10-22 3 views
0

TensorFlow 1.4のドキュメントには、Dataset.from_generatorの使用方法を示すコードが用意されています。コードを実行すると、InvalidArgumentError:0-th value returned by pyfunc_0 is int32, but expects int64が表示されます。TensorFlowのDataset.from_generatorメソッドを呼び出す

私はPython 3.6.1を使用しています。コードは次のとおりです。

def gen(): 
    for i in itertools.count(1): 
    yield (i, [1] * i) 

ds = tf.data.Dataset.from_generator(gen, (tf.int64, tf.int64), 
    (tf.TensorShape([]), tf.TensorShape([None]))) 
value = ds.make_one_shot_iterator().get_next() 

with tf.Session() as sess: 
    sess.run(value) # (1, array([1])) 
    sess.run(value) # (2, array([1, 1])) 

アイデアはありますか?

答えて

1

これは、TensorFlow 1.4.0 rc0の既知の問題です(Windowsで実行している場合)。 TensorFlowの夜間ビルドとcherry-pickedで、TensorFlow 1.4.0の次のリリース候補のnow availableにバグが修正されました。一方

は、いくつかのオプションがあります。

  1. pip install tf-nightlyを使用し、夜間ビルドをインストールします。これには、1.4ブランチでは利用できない機能がいくつか含まれており、リリースブランチと同じくらい多くのテストが行​​われていないことに注意してください。

  2. ソースから1.4ブランチを構築します。

  3. 1.4.0rc1リリース候補が公開されるまで待ちます。 EDIT:このリリースは、pip install tensorflow==1.4.0rc1を使用してPyPIから入手できるようになりました。

関連する問題