【发布时间】:2020-02-04 17:06:21
【问题描述】:
我有两个 TFRecords A 和 B,大小不同,包含不同的数据元素。
我需要从A 和B 中获取所有可能的记录对。因此,在训练或测试期间,我希望 epoch 的信号只有在所有组合都用尽后才结束,之后该过程应该在下一个 epoch 恢复。
在这样做时,当然,我想指定一个batchsize。
我浏览了tf.data.Dataset 的文档,但没有发现任何类似的东西。
当然,如果我要写一个python生成器,这是可以实现的。但不幸的是,这没有用,因为根据文档,python 生成器将受到GIL 的限制,即global interpreter lock。
因此,假设,
A 包含{image1, image2, image3},而B 包含{im1, im2, im3, im4, im5, im6}。我已经指定了2 的批量大小。然后我希望输出如下所示:
(image1, im1) and (image2, im4)
(image3, im2) and (image1, im2)
(image2, im1) and (image2, im3)
..............
15 more combinations
然后下一个纪元开始。
在 TensorFlow 中如何实现?
【问题讨论】:
标签: python tensorflow tensorflow2.0