这是因为BatchDataset对象不是一个迭代器,它是一个包含多个批次数据的数据集对象。如果需要迭代器,可以使用BatchDataset对象的make_one_shot_iterator()方法创建一个迭代器。例如:

import tensorflow as tf

# 创建BatchDataset对象
dataset = tf.data.Dataset.range(10).batch(3)

# 创建迭代器
iterator = dataset.make_one_shot_iterator()

# 使用迭代器遍历数据集
next_element = iterator.get_next()
with tf.Session() as sess:
    for i in range(4):
        print(sess.run(next_element))

输出结果为:

[0 1 2]
[3 4 5]
[6 7 8]
[9]
BatchDataset object is not an iterator为什么

原文地址: http://www.cveoy.top/t/topic/gSUt 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录