ShardExpander¶
- class torchdata.datapipes.iter.ShardExpander(source_datapipe: IterDataPipe[str])¶
将传入的分片字符串扩展成分片。
分片数据文件使用类似 shell 的大括号表示法命名。例如,一个分成 1200 个分片并存储在 Web 服务器上的 ImageNet 数据集可能命名为 imagenet-{000000..001199}.tar。
请注意,分片名称可以在没有任何服务器事务的情况下扩展;这使得 shard_expand 可重现且独立于存储系统(与 :class .FileLister 等不同)。
- 参数:
source_datapipe – 生成一系列配对的 DataPipe
- 返回值:
生成一系列扩展路径名的 DataPipe。
示例
>>> from torchdata.datapipes.iter import IterableWrapper >>> source_dp = IterableWrapper(["ds-{00..05}.tar"]) >>> expand_dp = source_dp.shard_expand() >>> list(expand_dp) ['ds-00.tar', 'ds-01.tar', 'ds-02.tar', 'ds-03.tar', 'ds-04.tar', 'ds-05.tar'] >>> source_dp = IterableWrapper(["imgs_{00..05}.tar", "labels_{00..05}.tar"]) >>> expand_dp = source_dp.shard_expand() >>> list(expand_dp) ['imgs_00.tar', 'imgs_01.tar', 'imgs_02.tar', 'labels_00.tar', 'labels_01.tar', 'labels_02.tar']