repeat
dataset1 = tf.data.Dataset.range(5).shuffle(5).repeat(3).make_one_shot_iterator().get_next()
dataset2 = tf.data.Dataset.range(5).shuffle(5, reshuffle_each_iteration=False).repeat(3).make_one_shot_iterator().get_next()
sess = tf.Session()
for i in range(15):
d1, d2 = sess.run([dataset1, dataset2])
print("Dataset1: {}, Dataset2:, {}".format(d1, d2))
结果:
Dataset1: 0, Dataset2:, 3
Dataset1: 3, Dataset2:, 0
Dataset1: 4, Dataset2:, 1
Dataset1: 1, Dataset2:, 2
Dataset1: 2, Dataset2:, 4
Dataset1: 1, Dataset2:, 3
Dataset1: 2, Dataset2:, 0
Dataset1: 3, Dataset2:, 1
Dataset1: 4, Dataset2:, 2
Dataset1: 0, Dataset2:, 4
Dataset1: 3, Dataset2:, 3
Dataset1: 0, Dataset2:, 0
Dataset1: 4, Dataset2:, 1
Dataset1: 1, Dataset2:, 2
Dataset1: 2, Dataset2:, 4
如您所见,第二个数据集正在重复它洗牌一次的元素,而第一个数据集在每次遍历数据集时都洗牌数据。