有没有办法堆叠两个tensorflow数据集?

Ken*_*930 4 python numpy python-3.x tensorflow tensorflow-datasets

我想在Tensorflow中堆叠两个数据集对象(R中的rbind函数).我从tfRecord文件创建了一个数据集A,从numpy数组创建了一个数据集B. 两者都有相同的变量.你知道是否有办法堆叠这两个数据集来创建一个更大的数据集?或者创建一个随机读取这两个来源数据的iterrator?

谢谢

mrr*_*rry 7

当使用数据集时,该tf.data.Dataset.concatenate()方法是最接近的模拟方法tf.stack().如果您有两个具有相同结构的数据集(即每个组件的类型相同,但可能有不同的形状):

dataset_1 = tf.data.Dataset.range(10, 20)
dataset_2 = tf.data.Dataset.range(60, 70)
Run Code Online (Sandbox Code Playgroud)

...你可以将它们连接如下:

combined_dataset = dataset_1.concatenate(dataset_2)
Run Code Online (Sandbox Code Playgroud)

  • 除了mrry的答案之外,还有https://www.tensorflow.org/api_docs/python/tf/data/Dataset#interleave,您可以合并数据集而不是连接数据集。然后,您可以使用“ Dataset.shuffle()”将一批交错记录随机化。 (2认同)