我正在尝试使用 tf.data 输入管道来允许在运行时选择数据集,同时对数据进行批处理。以下应该允许我运行 InitTrain/InitTest 来选择要使用的数据集:
TrainData = tf.data.Dataset.from_generator(TrainGenerator,tf.float32)
TestData = tf.data.Dataset.from_generator(TestGenerator,tf.float32)
DataIterator = tf.data.Iterator.from_structure(tf.float32)
DataNext = DataIterator.get_next()
InitTrain = DataIterator.make_initializer(TrainData)
InitTest = DataIterator.make_initializer(TestData)
如果不使用迭代器,我可以使用以下内容获取填充批次:
TrainData.padded_batch(1000,someshape)
如何在保留选择输入数据源的能力的同时批量处理我的数据?
一种可能的解决方法是创建一个新的 from_generator 数据集并创建一个在 DataNext 上调用 sess.run 的生成器,以创建一个可以批处理的数据集,但这会导致分配运行调用,所以我怀疑这是它的本意使用。