从这里我了解了 shuffle、batch 和 repeat 的作用。我正在研究医学图像数据,其中每个小批量都有来自一个患者记录的切片。我正在寻找一种在训练时在小批量中随机播放的方法。我无法增加缓冲区大小,因为我不希望来自不同记录的切片混淆。有人可以解释一下如何做到这一点吗?
dataset = tf.data.Dataset.from_tensor_slices(tf.range(1, 20))
data = dataset.batch(5).shuffle(5).repeat(1)
for element in data.as_numpy_iterator():
print(element)
Current Output :
[ 6 7 8 9 10]
[1 2 3 4 5]
[11 12 13 14 15]
[16 17 18 19]
Expected Output :
[ 6 8 9 7 10]
[3 4 1 5 2]
[15 12 11 14 13]
[16 17 19 20 17]