数据加载器2¶
轻量级DataLoader2
用于将重载的数据作功能从 to作中分离出来。此外,某些功能只能通过torch.utils.data.DataLoader
DataPipe
DataLoader2
例如快照和切换后端服务以执行高性能作。
数据加载器2¶
- 类 torchdata.dataloader2.DataLoader2(datapipe: Union[IterDataPipe, MapDataPipe], datapipe_adapter_fn: Optional[Union[Iterable[Adapter], Adapter]] = None, reading_service: 可选[ReadingServiceInterface] = 无)¶
DataLoader2
用于优化和执行给定的图形 基于 和 函数,支持DataPipe
ReadingService
Adapter
动态分片,支持多进程和分布式数据加载
多个后端
ReadingServices
DataPipe
图形就地修改,如 shuffle control、memory pinning 等。快照数据预处理管道 (WIP) 的状态
- 参数
datapipe ( or ) – 从中加载数据。在此期间将对此进行深层复制 初始化,允许 Input 在不同的环境中重用,而无需共享 state。
IterDataPipe
MapDataPipe
DataPipe
DataLoader2
datapipe_adapter_fn ( 或 , 可选) – 将应用的函数 添加到 DataPipe (默认: )。
Iterable[Adapter]
Adapter
Adapter
None
reading_service (ReadingServiceInterface,可选) – 定义应如何执行作 的 ,例如 multiprocessing/Distributed (默认: )。在此期间将对此进行深层复制 初始化,允许 Input 在不同的环境中重用,而无需共享 state。
DataLoader2
DataPipe
None
DataLoader2
- __iter__() DataLoader2Iterator[T_co] ¶
从适应的图形中返回一个单例迭代器 。 如果为 construct 提供了序列化状态,则将恢复 。而且,并且将会是 在迭代的开头和结尾相应地调用。
DataPipe
ReadingService
DataPipe
DataLoader2
initialize_iteration
finalize_iterator
- 类方法 from_state(state: Dict[str, Any], reading_service: CheckpointableReadingServiceInterface) DataLoader2[T_co] ¶
使用图形新建并恢复 从 serialized 状态。
DataLoader2
DataPipe
ReadingService
- load_state_dict(state: Dict[str, Any]) 无 ¶
对于现有的 , load serialized state to restore 图 并重置 的内部状态。
DataLoader2
DataPipe
ReadingService
- shutdown() 无 ¶
关闭并清理 iterator。
ReadingService
- state_dict() Dict[str, Any] ¶
返回一个字典来表示带有键的数据处理管道的状态:
serialized_datapipe
:改编前连载。DataPipe
ReadingService
reading_service_state
: 状态和适应 .ReadingService
DataPipe
注意:DataLoader2
不支持或 .请用相应的以下内容包裹它们中的每一个:torch.utils.data.Dataset
torch.utils.data.IterableDataset
DataPipe
torchdata.datapipes.map.SequenceWrapper
:torch.utils.data.Dataset
torchdata.datapipes.iter.IterableWrapper
:torch.utils.data.IterableDataset
阅读服务¶
ReadingService
指定数据处理图的执行后端。TorchData 中有三种类型:ReadingServices
|
|
|
|
|
每个 S 都会获取图形并对其进行修改,以实现一些功能,例如动态分片、共享随机种子和多/分布式进程的快照。ReadingServices
DataPipe
这也允许数据预处理管道更轻松地从研究过渡到生产。创建图形并使用 验证图形后,配置并连接到生产服务/基础设施的不同工具,例如可以提供给DataPipe
ReadingServices
ReadingService
AIStore
DataLoader2
作为直接替代品。这可能会搜索图形,并找到可以委托给生产服务/基础设施的作,然后相应地修改图形以实现更高性能的执行。ReadingService
DataPipe
以下是自定义的接口。ReadingService
- 类 torchdata.dataloader2.ReadingServiceInterface¶
的接口。请基于此接口类扩展自定义。
ReadingService
ReadingService
- finalize() 无 ¶
ReadingService
清理内部状态并完全关闭服务。 在 的 和 中调用 。DataLoader2
shutdown
__del__
- finalize_iteration() 无 ¶
ReadingService
在 epoch 完成后结束服务。调用时间 的迭代器已耗尽。DataLoader2
- 抽象 initialize(datapipe: Union[IterDataPipe, MapDataPipe]) Union[IterDataPipe]、 MapDataPipe] ¶
ReadingService
获取一个图形,根据自定义需求将其调整为新图形。 首次创建 iterator 时调用一次。DataPipe
DataPipe
DataLoader2
- 参数
datapipe – 原始图形。
DataPipe
- 结果
改编的图表或新图表。
DataPipe
- initialize_iteration() 无 ¶
ReadingService
为一个 epoch 启动 service。开始时被调用 每次获取 iterator 的DataLoader2
检查点/快照功能正在开发中。下面是初步界面(可能会有小的更改):
- 类 torchdata.dataloader2.CheckpointableReadingServiceInterface¶
使用两种附加方法进行扩展,以保存/恢复数据处理图的状态。
ReadingServiceInterface
- 抽象 checkpoint()字节 ¶
ReadingService
序列化内部状态。已调用 。DataLoader2.state_dict
- 抽象还原(datapipe: Union[IterDataPipe, MapDataPipe], serialized_state: bytes) Union[IterDataPipe, MapDataPipe] ¶
ReadingService
根据序列化状态调整 Graph。 首次创建 iterator 时调用一次。 的对应项 ,它从头开始调整 graph。DataPipe
DataLoader2
initialize
DataPipe
- 参数
DataPipe – 改编者
DataPipe
ReadingService
serialized_state – 用于恢复状态的内部状态的序列化状态 适应的图形。
DataPipe
- 结果
改编自 serialized 状态。
DataPipe
并且,中提供了图形实用程序函数来帮助用户定义自己的图形和修改图形:torchdata.dataloader.graph
ReadingService
遍历 DataPipes 及其属性以提取 DataPipe 图形。 |
|
给定 function 生成的 DataPipe 图,返回提供的 DataPipe 类型的 DataPipe 实例。 |
|
给定 function 生成的 DataPipe 图和需要替换的 DataPipe 以及新的 DataPipe,返回新的 DataPipe 图。 |
|
给定 function 生成的 DataPipe 图和需要移除的 DataPipe,返回新的 DataPipe 图。 |
适配器¶
Adapter
用于配置、修改和扩展 中的图形。它允许就地
修改或替换 PyTorch 域提供的预组装图。例如,可以是
提供给 ,这将禁用图形中的任何作。DataPipe
DataLoader2
DataPipe
Shuffle(False)
DataLoader2
shuffle
DataPipes
- 类 torchdata.dataloader2.adapter 中。适配器¶
遵循 python Callable 协议的 Adapter 基类。
- 摘要 __call__(datapipe: Union[IterDataPipe, MapDataPipe]) Union[IterDataPipe, MapDataPipe] ¶
可调用函数,该函数运行 该图表,或返回一个新图表。
DataPipe
DataPipe
- 参数
datapipe – 这需要进行调整。
DataPipe
- 结果
改编的或新的 .
DataPipe
DataPipe
以下是Adapter
由 TorchData 提供:torchdata.dataloader2.adapter
Shuffle DataPipes 适配器允许控制图形中所有现有的 Shuffler () DataPipe。 |
|
CacheTimeout DataPipes 适配器允许控制图形中所有现有 EndOnDiskCacheHolder () 的超时。 |
此外,我们还将提供更多内容来涵盖数据处理选项:Adapters
PinMemory
:在数据处理图的末尾附加 一个,该图将输出数据转换为固定内存。DataPipe
torch.Tensor
FullSync
:附加 以确保数据处理图在分布式进程之间同步,以防止挂起。DataPipe
ShardingPolicy
:如果图表中显示分片策略,请修改分片策略。sharding_filter
DataPipe
PrefetchPolicy
等。InvalidateCache
如果您对希望提供的功能有要求,请打开 GitHub 问题。对于特定
needs,也接受任何自定义,只要它继承自类即可。Adapters
DataLoader2
Adapter
Adapter