调用TensorFlow的Dataset.from_generator方法

时间:2017-10-22 02:55:42

标签: python tensorflow

TensorFlow 1.4文档提供了演示Dataset.from_generator用法的代码。当我运行代码时,我得到一个InvalidArgumentError:0-th value returned by pyfunc_0 is int32, but expects int64

我正在使用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 个答案:

答案 0 :(得分:1)

在Windows上运行时,这是TensorFlow 1.4.0 rc0 的已知问题。该错误已在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获取。