2017-10-22 39 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

在Windows上運行時,這是TensorFlow 1.4.0 rc0的已知問題。該bug已被固定在TensorFlow和cherry-picked的每日構建成TensorFlow 1.4.0,這是now available下一個候選發佈版。

在此期間,有幾個選項:

  1. 安裝每日構建,用pip install tf-nightly。請注意,這會包含一些在1.4分支沒有的功能,並沒有受到儘可能多的測試,發佈分支。

  2. 從源代碼的1.4分支。

  3. 等待1.4.0rc1候選版發佈。 編輯:使用pip install tensorflow==1.4.0rc1這個版本現在可以從PyPI中。