0

这里我了解了 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]
4

1 回答 1

0

我刚刚意识到,没有必要在小批量中进行洗牌,因为在小批量中洗牌不会以任何方式改善训练。欣赏是否有人对此有其他看法。

于 2020-02-01T16:43:00.327 回答