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
,否則這可能會導致重複的索引。