当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python PyTorch Demultiplexer用法及代码示例


本文简要介绍python语言中 torchdata.datapipes.iter.Demultiplexer 的用法。

用法:

class torchdata.datapipes.iter.Demultiplexer(datapipe: IterDataPipe, num_instances: int, classifier_fn: Callable[[T_co], Optional[int]], drop_none: bool = False, buffer_size: int = 1000)

参数

  • datapipe-可迭代 DataPipe 被过滤

  • num_instances-要创建的 DataPipe 的实例数

  • classifier_fn-将值映射到 [0, num_instances - 1]None 范围内的整数的函数

  • drop_none-默认为 False ,如果 True ,该函数将跳过分类为 None 的元素

  • buffer_size-这定义了在等待生成值时缓冲区可以在所有子项 DataPipes 中保存的最大输入数。默认为 1000 。使用-1作为无限缓冲区。

使用给定的分类函数(函数名称:demux)将输入 DataPipe 拆分为多个子 DataPipe。此操作返回子项 DataPipes 的列表。

例子

>>> from torchdata.datapipes.iter import IterableWrapper
>>> def odd_or_even(n):
...     return n % 2
>>> source_dp = IterableWrapper(range(5))
>>> dp1, dp2 = source_dp.demux(num_instances=2, classifier_fn=odd_or_even)
>>> list(dp1)
[0, 2, 4]
>>> list(dp2)
[1, 3]
>>> # It can also filter out any element that gets `None` from the `classifier_fn`
>>> def odd_or_even_no_zero(n):
...     return n % 2 if n != 0 else None
>>> dp1, dp2 = source_dp.demux(num_instances=2, classifier_fn=odd_or_even_no_zero, drop_none=True)
>>> list(dp1)
[2, 4]
>>> list(dp2)
[1, 3]

相关用法


注:本文由纯净天空筛选整理自pytorch.org大神的英文原创作品 torchdata.datapipes.iter.Demultiplexer。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。