SamplerWithoutReplacement¶
- class torchrl.data.replay_buffers.SamplerWithoutReplacement(drop_last: bool = False, shuffle: bool = True)[源代码]¶
一种数据消耗型采样器,可确保同一样本不会连续出现在批次中。
- 参数:
drop_last (bool, 可选) – 如果
True
,则将删除最后一个不完整的样本(如果有)。如果False
,则将保留最后一个样本,并且(与 torch 数据加载器不同)将使用来自新的索引排列的其他样本完成该样本。默认为False
。shuffle (bool, 可选) – 如果
False
,则项目不会被随机置换。这使得可以按数据收集的顺序迭代回放缓冲区。默认为True
。
注意:如果存储的大小在两次调用之间发生变化,则样本将被重新洗牌(因为我们通常无法跟踪哪些样本之前已被采样,哪些样本尚未被采样)。
同样,预计存储内容在两次调用之间保持不变,但这并非强制执行。
当采样器到达可用索引列表的末尾时,将生成新的样本顺序,并且生成的索引将通过此新绘制完成,这可能会导致索引重复,除非
drop_last
参数设置为True
。