快捷方式

混洗器

class torchdata.datapipes.map.Shuffler(datapipe: MapDataPipe[T_co], *, indices: Optional[List] = None)

通过其索引对输入 MapDataPipe 进行混洗(函数名称:shuffle)。

当它与 DataLoader 一起使用时,设置随机种子方法根据 num_workers 不同。

对于单进程模式(num_workers == 0),随机种子在主进程中的 DataLoader 之前设置。对于多进程模式(num_worker > 0),worker_init_fn 用于为每个工作进程设置随机种子。

参数:
  • datapipe – 被混洗的 MapDataPipe

  • indices – MapDataPipe 的索引列表。如果未提供,我们假设它使用基于 0 的索引

示例

>>> # xdoctest: +SKIP
>>> from torchdata.datapipes.map import SequenceWrapper
>>> dp = SequenceWrapper(range(10))
>>> shuffle_dp = dp.shuffle().set_seed(0)
>>> list(shuffle_dp)
[7, 8, 1, 5, 3, 4, 2, 0, 9, 6]
>>> list(shuffle_dp)
[6, 1, 9, 5, 2, 4, 7, 3, 8, 0]
>>> # Reset seed for Shuffler
>>> shuffle_dp = shuffle_dp.set_seed(0)
>>> list(shuffle_dp)
[7, 8, 1, 5, 3, 4, 2, 0, 9, 6]

注意

即使此 shuffle 操作将 MapDataPipe 作为输入,它也会返回 IterDataPipe 而不是 MapDataPipe,因为为了随机读取,MapDataPipe 应该对数据顺序不敏感,但 IterDataPipe 在数据处理期间依赖于数据的顺序。

文档

访问 PyTorch 的全面开发者文档

查看文档

教程

获取针对初学者和高级开发人员的深入教程

查看教程

资源

查找开发资源并获得问题的解答

查看资源