UnZipper¶
- class torchdata.datapipes.iter.UnZipper(source_datapipe: IterDataPipe[Sequence[T]], sequence_length: int, buffer_size: int = 1000, columns_to_skip: Optional[Sequence[int]] = None)¶
接收一个包含序列的 DataPipe,解包每个序列,并根据它们在序列中的位置将元素返回到单独的 DataPipe 中(函数名:
unzip
)。生成的实例数量等于序列长度减去要跳过的列数。注意
DataPipe 中的每个序列都应该具有相同的长度,由输入参数 sequence_length 指定。
- 参数:
source_datapipe – 包含数据序列的可迭代 DataPipe
sequence_length – source_datapipe 中序列的长度。所有元素都应该具有相同的长度。
buffer_size – 这限制了领先子 DataPipe 相对于最慢子 DataPipe 的读取范围。使用 -1 表示无限缓冲区。
columns_to_skip – DataPipe 应该跳过的列的可选索引(每个索引都应该是一个从 0 到 sequence_length - 1 的整数)
示例
>>> from torchdata.datapipes.iter import IterableWrapper >>> source_dp = IterableWrapper([(i, i + 10, i + 20) for i in range(3)]) >>> dp1, dp2, dp3 = source_dp.unzip(sequence_length=3) >>> list(dp1) [0, 1, 2] >>> list(dp2) [10, 11, 12] >>> list(dp3) [20, 21, 22]