从这里我明白了随机播放、批处理和重复的作用。我正在处理医学图像数据,其中每个小批量都有来自一个患者记录的切片。我正在寻找一种在训练时在小批量内洗牌的方法。我无法增加缓冲区大小,因为我不希望来自不同记录的切片混淆。有人可以解释一下如何做到这一点吗?
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]
我刚刚意识到,没有必要在小批量中洗牌,因为在小批量内洗牌不会以任何方式帮助改善训练。如果有人对此有其他看法,请表示赞赏。