序列E的生成器端的TensorFlow数据集API

2024-10-04 07:31:18 发布

您现在位置:Python中文网/ 问答频道 /正文

这是一个玩具代码,它复制了我在使用生成器动态生成/馈送训练数据时遇到的一个问题。在

def makeRand():
    yield np.random.rand(1)

dataset = tf.data.Dataset.from_generator(makeRand, (tf.float32))

iterator = tf.contrib.data.Iterator.from_structure(tf.float32, tf.TensorShape([]))

next_x = iterator.get_next()

init_op = iterator.make_initializer(dataset)

with tf.Session() as sess:
    sess.run(init_op)
    a = sess.run(next_x)
    print(a)
    a = sess.run(next_x)
    print(a)

痕迹看起来像:

^{pr2}$

Tags: run代码fromdatainittfdatasetnext
1条回答
网友
1楼 · 发布于 2024-10-04 07:31:18

这是由生成器的错误实例化引起的。在

错误是由于makeRand()用完了要生成的元素而导致的。通过将其更改为:

def makeRand():
   while True:
      yield np.random.rand(1)

相关问题 更多 >