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