数据加载器2¶
一种新的、轻量级的DataLoader2用于将重载的数据作功能从 to作中分离出来。此外,某些功能只能通过torch.utils.data.DataLoaderDataPipeDataLoader2例如快照和切换后端服务以执行高性能作。
数据加载器2¶
- 类 torchdata.dataloader2.DataLoader2(datapipe: 可选[Union[IterDataPipe, MapDataPipe]], datapipe_adapter_fn: 可选[Union[Iterable[Adapter], Adapter]] = None, reading_service: 可选 [ReadingServiceInterface] = 无)¶
DataLoader2用于优化和执行给定的图形 基于 和 函数,支持DataPipeReadingServiceAdapter用于多进程和分布式数据加载的动态分片
多个后端
ReadingServicesDataPipe图形就地修改,如 shuffle control、memory pinning 等。快照数据预处理管道 (WIP) 的状态
- 参数
datapipe ( or ) – 从中加载数据。此 DataPipe 将在初始化期间进行,从而允许在不同的状态中重复使用 Input,而无需共享 state。只有在调用 在 DataLoader 创建之后。
IterDataPipeMapDataPipeDataPipeDataLoader2Noneload_state_dictdatapipe_adapter_fn ( 或 , 可选) – 函数 将应用于 DataPipe (default: )。
Iterable[Adapter]AdapterAdapterNonereading_service (ReadingServiceInterface,可选) – 定义应如何执行作 的 ,例如 multiprocessing/Distributed (默认: )。此 Deep Copy 将是 在初始化期间创建,允许 ReadingService 在不同的状态中重用,而无需共享 state。
DataLoader2DataPipeNoneDataLoader2
注意
当 a 传入 时,为了遍历 数据将尝试通过 创建迭代器 。 如果对象具有非零索引索引,则可能会失败。 考虑使用 (转换为 ) 或。
MapDataPipeDataLoader2DataLoader2iter(datapipe).shuffle()MapDataPipeIterDataPipedatapipe.to_iter_datapipe(custom_indices)- __iter__() DataLoader2Iterator[T_co]¶
从适应的图形中返回一个单例迭代器 。 如果为 construct 提供了序列化状态,则将恢复 。而且,并且将会是 在迭代的开头和结尾相应地调用。
DataPipeReadingServiceDataPipeDataLoader2initialize_iterationfinalize_iterator
- 类方法 from_state(state: Dict[str, Any], reading_service: CheckpointableReadingServiceInterface) DataLoader2[T_co]¶
使用图形新建并恢复 从 serialized 状态。
DataLoader2DataPipeReadingService
- load_state_dict(state_dict: dict[str, any]) 无¶
对于现有的 , load serialized state to restore 图 并重置 的内部状态。
DataLoader2DataPipeReadingService
- seed(seed: int) 无¶
为 DataLoader2 设置随机种子以控制确定性。
- 参数
seed – 随机 uint64 种子
- shutdown() 无¶
关闭并清理 iterator。
ReadingService
- state_dict() Dict[str, Any]¶
返回一个字典来表示带有键的数据处理管道的状态:
serialized_datapipe:改编前连载。DataPipeReadingServicereading_service_state: 状态和适应 .ReadingServiceDataPipe
注意:DataLoader2不支持或 .请用相应的以下内容包裹它们中的每一个:torch.utils.data.Datasettorch.utils.data.IterableDatasetDataPipe
torchdata.datapipes.map.SequenceWrapper:torch.utils.data.Datasettorchdata.datapipes.iter.IterableWrapper:torch.utils.data.IterableDataset
阅读服务¶
ReadingService指定数据处理图的执行后端。TorchData 中提供了三种类型:ReadingServices
|
|
默认 ReadingService 在主进程中提供 DataPipe 图,并将确定性控制等图设置应用于图。 |
|
生成多个工作进程以从图形加载数据。 |
|
每个 API 都会获取图形并重写它以实现一些功能,例如动态分片、共享随机种子和多/分布式进程的快照。有关这些功能的更多详细信息,请参阅文档。ReadingServicesDataPipe
适配器¶
Adapter用于配置、修改和扩展DataPipeDataLoader2.它允许就地
修改或替换 PyTorch 域提供的预组装图。例如,可以是
提供给DataPipeShuffle(False)DataLoader2,这将禁用图表中的任何作。shuffleDataPipes
- 类 torchdata.dataloader2.adapter 中。适配器¶
遵循 python Callable 协议的 Adapter 基类。
- 摘要 __call__(datapipe: Union[IterDataPipe, MapDataPipe]) Union[IterDataPipe, MapDataPipe]¶
可调用函数,该函数运行 该图表,或返回一个新图表。
DataPipeDataPipe- 参数
datapipe – 这需要进行调整。
DataPipe- 结果
改编的或新的 .
DataPipeDataPipe
以下是Adapter由 TorchData 提供:torchdata.dataloader2.adapter
Shuffle DataPipes 适配器允许控制图形中所有现有的 Shuffler () DataPipe。 |
|
CacheTimeout DataPipes 适配器允许控制图形中所有现有 EndOnDiskCacheHolder () 的超时。 |
此外,我们还将提供更多内容来涵盖数据处理选项:Adapters
PinMemory:在数据处理图的末尾附加 一个,该图将输出数据转换为固定内存。DataPipetorch.TensorFullSync:附加 以确保数据处理图在分布式进程之间同步,以防止挂起。DataPipeShardingPolicy:如果图表中显示分片策略,请修改分片策略。sharding_filterDataPipePrefetchPolicy等。InvalidateCache
如果您对希望提供的功能有要求,请打开 GitHub 问题。对于特定
needs,也接受任何自定义,只要它继承自类即可。AdaptersDataLoader2AdapterAdapter