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