TorchData的简单使用方法、基本用法

TorchData的基本使用

1. Iterable-style DataPipes

可迭代样式的数据集是实现 __ iter __() 协议的IterableDataset的子类的实例,并表示可在数据样本上迭代。这种类型的数据集特别适合于随机读取昂贵甚至不可能的情况,以及批量大小取决于提取的数据的情况。

例子:

(一般用法)

from torchdata.datapipes.iter import IterableWrapper, Mapper
dp = IterableWrapper(range(10))
map_dp_1 = Mapper(dp, lambda x: x + 1)
map_dp_2 = dp.map(lambda x: x + 1)
print(list(map_dp_1))
print(list(map_dp_2))
filter_dp = map_dp_1.filter(lambda x: x % 2 == 0)
print(list(filter_dp))

输出:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[2, 4, 6, 8, 10]

(单迭代器约束示例)

from torchdata.datapipes.iter import IterableWrapper, Mapper
source_dp = IterableWrapper(range(10))
it1 = iter(source_dp)
print(list(it1))

输出:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
2. Map-style DataPipes

Map样式的DataPipe实现__ getitem __ ()和 __ len __ () 协议,并表示从(可能是非积分的)索引/键到数据样本的映射。这与PyTorch核心库中的数据集非常相似。

例子:

from torchdata.datapipes.map import SequenceWrapper, Mapper
dp = SequenceWrapper(range(10))
# 推荐   使用方法调用
map_dp_1 = dp.map(lambda x: x + 1)
print(list(map_dp_1))
map_dp_2 = Mapper(dp, lambda x: x + 1)
print(list(map_dp_2))
batch_dp = map_dp_1.batch(batch_size=2)
print(list(batch_dp))

输出:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]]

你可能感兴趣的:(pytorch,torchdata,数据预处理,python,ide,pycharm,深度学习)