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


Python PyTorch Mapper用法及代碼示例


本文簡要介紹python語言中 torchdata.datapipes.iter.Mapper 的用法。

用法:

class torchdata.datapipes.iter.Mapper(datapipe: IterDataPipe, fn: Callable, input_col=None, output_col=None)

參數

  • datapipe-源可迭代DataPipe

  • fn-應用於每個項目的函數

  • input_col-

    應用fn的數據的索引或索引,例如:

    • None 默認將fn 直接應用於數據。

    • 整數用於列表/元組。

    • 鍵用於字典。

  • output_col-

    放置fn 結果的數據索引。僅當input_col 不是None 時才能指定output_col

    • None默認替換input_col指定的索引;對於有多個索引的input_col,使用最左邊的索引,其他索引將被刪除。

    • 整數用於列表/元組。 -1 表示在最後追加結果。

    • key 用於字典。新 key 是可以接受的。

對源 DataPipe 中的每個項目應用函數(函數名稱:map )。該函數可以是任何常規 Python 函數或部分對象。不推薦使用 Lambda 函數,因為 pickle 不支持它。

示例

>>> from torchdata.datapipes.iter import IterableWrapper, Mapper
>>> def add_one(x):
...     return x + 1
>>> dp = IterableWrapper(range(10))
>>> map_dp_1 = dp.map(add_one)  # Invocation via functional form is preferred
>>> list(map_dp_1)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> # We discourage the usage of `lambda` functions as they are not serializable with `pickle`
>>> # Use `functools.partial` or explicitly define the function instead
>>> map_dp_2 = Mapper(dp, lambda x: x + 1)
>>> list(map_dp_2)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

相關用法


注:本文由純淨天空篩選整理自pytorch.org大神的英文原創作品 torchdata.datapipes.iter.Mapper。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。