假设我有
sequence = np.array([[1],[2],[3],[4],[5]])
我定义了一个生成器
def generator():
for el in sequence:
yield el
现在,我希望使用 Tensorflow 中定义的 from_generator() 来从生成器中检索数据。
dataset = tf.data.Dataset().from_generator(generator,
output_types= tf.int64,
output_shapes=(tf.TensorShape([1])))
iterator = dataset.make_initializable_iterator()
el = iterator.get_next()
为了检索我用过的,
with tf.Session() as sess:
sess.run(iterator.initializer)
print(sess.run(el))
print(sess.run(el))
print(sess.run(el))
print(sess.run(el))
print(sess.run(el))
有没有办法使用循环获取“el”,而不是每次都执行 sess.run(el)?
请您参考如下方法:
这应该能达到你想要的效果:
with tf.Session() as sess:
sess.run(iterator.initializer)
try:
while True:
print(sess.run(el))
except tf.errors.OutOfRangeError:
print("Iterating finished")
pass
