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
。