目录

注意力

2024 年 6 月状态更新:删除 DataPipes 和 DataLoader V2

我们将 torchdata 存储库重新调整为torch.utils.data.DataLoader的迭代增强。我们不打算 继续开发或维护 [DataPipes] 和 [DataLoaderV2] 解决方案,它们将从 torchdata 存储库。我们还将重新访问 pytorch/pytorch 中的 DataPipes 引用。在 torchdata==0.8.0(2024 年 7 月)版本中,它们将被标记为已弃用,而在 0.9.0(2024 年 10 月)中,它们将被删除。现存 建议用户固定到 torchdata==0.8.0 或更旧版本,直到他们能够迁移出去。随后的 版本将不包含 DataPipes 或 DataLoaderV2。 如果您有建议或评论,请联系我们(请使用此问题进行反馈)

地图样式的 DataPipes

Map 风格的 DataPipe 是实现 and 协议的 DataPipe,它表示一个 map from (可能是非整数的) indices/keys to data samples.这与 PyTorch 中的等效 core 库。__getitem__()__len__()Dataset

例如,当使用 进行访问时,可以读取第 --个图像及其 磁盘上文件夹中的相应标签。mapdatapipe[idx]idx

torchdata.datapipes.map。MapDataPipe

Map-style DataPipe 的 DataPipe 方法。

表示从键到数据样本的映射的所有数据集都应该子类化 this。 子类应该覆盖 ,支持获取 给定唯一键的数据示例。子类还可以选择覆盖 ,预计许多实现和默认选项会返回数据集的大小 之。__getitem__()__len__()SamplerDataLoader

可以通过两种方式调用这些 DataPipe,使用类构造函数或应用它们的 功能形式添加到现有的 MapDataPipe 上(推荐,适用于大多数但不是所有 DataPipe)。

注意

DataLoader默认情况下,构造一个索引 sampler 生成整数索引。使其使用地图样式 DataPipe 替换为非整型索引/键,则必须提供自定义采样器。

>>> # xdoctest: +SKIP
>>> from torchdata.datapipes.map import SequenceWrapper, Mapper
>>> dp = SequenceWrapper(range(10))
>>> map_dp_1 = dp.map(lambda x: x + 1)  # Using functional form (recommended)
>>> list(map_dp_1)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> map_dp_2 = Mapper(dp, lambda x: x + 1)  # Using class constructor
>>> list(map_dp_2)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> batch_dp = map_dp_1.batch(batch_size=2)
>>> list(batch_dp)
[[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]]

根据设计,存在较少的 以避免相同的重复实现 功能作为 .我们鼓励用户使用内置功能、 ,然后根据需要使用 或 将其转换为 。 如果您对使用方法或使用时的最佳实践有任何疑问,请随时在 PyTorch 上提问 论坛的 'data' 类别下。MapDataPipeIterDataPipeMapDataPipeIterDataPipeMapDataPipe.to_map_datapipe()MapDataPipe

我们愿意添加额外的操作,这些操作可以延迟执行,并且可以 提前知道。欢迎在此 Github 问题中提出建议并描述您的用例。关于我们设计选择的反馈也是 在那个 Github 问题中受到欢迎。MapDataPipe__len__

以下是可用的 Map 样式 DataPipe 的列表:

MapDataPipes 列表

Batcher (批处理器)

创建小批量数据(函数名称:)。batch

连接

连接多个 Map DataPipes(函数名称:)。concat

InMemoryCacheHolder 中

将源 DataPipe 中的元素存储在内存中(功能名称:)。in_memory_cache

IterToMap转换器

延迟加载数据以构造 a 和 (function name: ) 生成的键值对。IterDataPipeMapDataPipekey_value_fnto_map_datapipe

映射

将输入函数应用于源 DataPipe 中的每个项目(函数名称:)。map

序列包装器

将序列对象包装到 MapDataPipe 中。

洗牌机

通过索引(函数名称:)对输入 MapDataPipe 进行随机排序。shuffle

解开拉链

接收序列的 DataPipe,解包每个序列,并根据元素在 Sequence 中的位置(函数名称:)在单独的 DataPipes 中返回元素。unzip

拉链

将每个输入 DataPipes 的元素聚合到一个元组中(函数名称:)。zip

文档

访问 PyTorch 的全面开发人员文档

查看文档

教程

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

查看教程

资源

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

查看资源