SequentialReadingService¶
- class torchdata.dataloader2.SequentialReadingService(*reading_services)¶
- checkpoint() bytes ¶
ReadingService
序列化内部状态。在DataLoader2.state_dict
中调用。
- finalize() None ¶
ReadingService
清理内部状态并完全关闭服务。在DataLoader2
的shutdown
和__del__
中调用。
- finalize_iteration() None ¶
ReadingService
在一个 epoch 结束后结束服务。当DataLoader2
的迭代器耗尽时调用。
- initialize(datapipe: Union[IterDataPipe, MapDataPipe]) Union[IterDataPipe, MapDataPipe] ¶
ReadingService
获取一个DataPipe
图,根据自定义需求将其适配成一个新的DataPipe
图。在第一次创建DataLoader2
迭代器时调用一次。在调用此方法之前,ReadingService
对象必须是可 pickle 的。- 参数:
datapipe – 原始的
DataPipe
图。- 返回值:
一个适配的或新的
DataPipe
图。
- initialize_iteration(seed_generator: SeedGenerator, iter_reset_fn: Optional[Callable[[Union[IterDataPipe, MapDataPipe]], Union[IterDataPipe, MapDataPipe]]] = None) Optional[Callable[[Union[IterDataPipe, MapDataPipe]], Union[IterDataPipe, MapDataPipe]]] ¶
ReadingService
启动一个 epoch 的服务。在每次获取DataLoader2
迭代器开始时调用。- 参数:
seed_generator – 由 DataLoader2 创建和管理的 SeedGenerator 对象。作为随机性的唯一来源,它将控制 DataPipes 图中所有随机操作的确定性。
iter_reset_fn – 当
SequentialReadingService
将多个ReadingServices
连接起来时,来自先前ReadingServcie
的可选重置函数
- 返回值:
一个新的
iter_reset_fn
,供后续的ReadingService
使用
示例
MultiProcessingReadingService 开始为每个进程设置工作进程种子并从图中预取项目。
- restore(datapipe, serialized_state: bytes) Union[IterDataPipe, MapDataPipe] ¶
ReadingService
根据序列化状态调整DataPipe
图。在第一次创建DataLoader2
迭代器时调用一次。对应于initialize
,后者从头开始调整DataPipe
图。- 参数:
datapipe – 由
ReadingService
调整之前的原始DataPipe
图serialized_state – 用于恢复已调整
DataPipe
图的状态的内部状态的序列化状态。
- 返回值:
从序列化状态生成的已调整
DataPipe
。