目录

地图样式数据管道

一个地图式数据管道是实现 __getitem__()__len__() 协议的,它表示一个从(可能不是整数)索引/键到数据样本的映射。

例如,当访问 mapdatapipe[idx] 时,可以读取磁盘上文件夹中的第 idx 张图像及其对应标签。

class torchdata.datapipes.map.MapDataPipe(*args, **kwds)

地图风格的数据管道。

所有表示从键到数据样本映射的数据集都应该继承自这个类。 子类应该重写 __getitem__(),支持根据给定的、唯一的键获取一个数据样本。子类也可以选择性地重写 __len__(),这通常由许多实现预期返回数据集的大小,并且默认选项为 SamplerDataLoader

这些DataPipes可以通过两种方式调用,使用类构造函数或将其功能形式应用到现有的MapDataPipe(推荐,适用于大多数但并非所有DataPipes)。

注意

DataLoader 默认情况下构建一个索引采样器,该采样器返回整数索引。要使其与具有非整数索引/键的映射式DataPipe一起工作,必须提供自定义采样器。

示例

>>> 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]]

以下是可用的Map风格DataPipes列表:

DataPipes

Batcher

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

Concater

将多个Map DataPipes进行连接(功能名称:concat)。

IterToMapConverter

IterDataPipe处懒加载数据以构建一个MapDataPipe,其中包含由key_value_fn(功能名称:to_map_datapipe)生成的键值对。

Mapper

在源DataPipe中应用输入函数(功能名称:map)。

SequenceWrapper

将序列对象包装成MapDataPipe。

Shuffler

随机打乱输入的数据管道通过其索引(功能名称:shuffle)。

Zipper

聚合每个输入DataPipes中的元素,形成一个元组(函数名:zip)。

文档

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

查看文档

教程

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

查看教程

资源

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

查看资源