我创建了一个tensorflow数据集,使其可重复,将其改组,分为若干批,并构造了一个迭代器以获取下一批。但是,当我这样做时,有时元素是重复的(在批内和批间),尤其是对于小型数据集。为什么?
最佳答案
与您自己的答案中所说的不同,否,改组然后重复执行不会解决您的问题。
问题的主要来源是您先批处理,然后随机播放/重复。这样,批次中的项目将始终从输入数据集中的连续样本中获取。
批处理应该是您在输入管道中执行的最后一项操作。
稍微扩大问题。
现在,和的顺序分别是洗牌,重复和批处理,但这并不是您的想法。引用input pipeline performance guide:
翻盖
无论您选择哪个,在批处理之前都要这样做。
关于tensorflow - 更改batch(),shuffle()和repeat()的顺序时输出差异,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49915925/