小编cbo*_*nho的帖子

Tensorflow,如何连接具有不同批次大小的多个数据集

想象一下我有:

  • 数据集 1 的数据 [5, 5, 5, 5, 5]
  • 包含数据 [4, 4] 的数据集 2

我想从两个数据集中提取批次并将它们连接起来,以便获得大小为 3 的批次,其中:

  • 我读取了批大小为 2 的数据集 1
  • 我读取了批大小为 1 的数据集 2。

如果某些数据集首先被清空,我还想读取最后一批。在这种情况下,我会得到 [5, 5, 4], [5, 5, 4], [5] 作为我的最终结果。

我怎样才能做到这一点?我在这里看到了答案:Tensorflow 如何生成不平衡的组合数据集

这是一个很好的尝试,但如果其中一个数据集在其他数据集之前被清空,则它不起作用(因为tf.errors.OutOfRangeError当您尝试从首先被清空的数据集中获取元素时,然后被抢先输出,而我没有得到最后一批)。因此我只得到 [5, 5, 4], [5, 5, 4]

我想过使用tf.contrib.data.choose_from_datasets

ds1 = tf.data.Dataset.from_tensor_slices([5, 5, 5, 5, 5]).batch(2)
ds2 = tf.data.Dataset.from_tensor_slices([4, 4, 4, 4]).batch(1)
choice_dataset = [1, 2, 1, 2, 1]
ds = tf.contrib.data.choose_from_datasets([ds1, ds2], choice_dataset)
ds = ds.apply(tf.contrib.data.unbatch())
ds = ds.batch(3, …
Run Code Online (Sandbox Code Playgroud)

python tensorflow tensorflow-datasets

5
推荐指数
1
解决办法
4606
查看次数

标签 统计

python ×1

tensorflow ×1

tensorflow-datasets ×1