當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python PyTorch Shuffler用法及代碼示例


本文簡要介紹python語言中 torchdata.datapipes.iter.Shuffler 的用法。

用法:

class torchdata.datapipes.iter.Shuffler(datapipe: IterDataPipe[T_co], *, default: bool = True, buffer_size: int = 10000, unbatch_level: int = 0)

參數

  • datapipe-正在洗牌的IterDataPipe

  • buffer_size-洗牌的緩衝區大小(默認為 10000 )

  • unbatch_level-指定在應用 shuffle 之前是否需要取消批處理源數據

使用緩衝區對輸入 DataPipe 進行混洗(函數名稱:shuffle )。 buffer_size 的緩衝區首先填充來自數據管道的元素。然後,每個項目將通過迭代器通過容器采樣從緩衝區中產生。

buffer_size 必須大於 0 。對於 buffer_size == 1 ,數據管道不會被洗牌。為了完全打亂數據管道中的所有元素,buffer_size 必須大於或等於數據管道的大小。

當它與 torch.utils.data.DataLoader 一起使用時,設置隨機種子的方法根據 num_workers 不同。

對於single-process模式(num_workers == 0),隨機種子設置在主進程中的DataLoader之前。對於multi-process 模式(num_worker > 0),worker_init_fn 用於為每個工作進程設置隨機種子。

示例

>>> from torchdata.datapipes.iter import IterableWrapper
>>> dp = IterableWrapper(range(10))
>>> shuffle_dp = dp.shuffle()
[0, 4, 1, 6, 3, 2, 9, 5, 7, 8]
>>> list(shuffle_dp)

相關用法


注:本文由純淨天空篩選整理自pytorch.org大神的英文原創作品 torchdata.datapipes.iter.Shuffler。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。