當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。