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


Python PyTorch MapKeyZipper用法及代碼示例


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

用法:

class torchdata.datapipes.iter.MapKeyZipper(source_iterdatapipe: IterDataPipe, map_datapipe: MapDataPipe, key_fn: Callable, merge_fn: Optional[Callable] = None)

參數

  • source_iterdatapipe-IterDataPipe 中的項目是收益並將與 map_datapipe 中的項目合並

  • map_datapipe-MapDataPipe 從 key_fn 獲取 key 並返回一個項目

  • key_fn-source_iterdatapipe中的每個項目映射到map_datapipe中存在的鍵的函數

  • merge_fn-source_iterdatapipe 中的項目和 map_datapipe 中的匹配項目組合在一起的函數,默認情況下會創建一個元組

將源 IterDataPipe 中的項目與 MapDataPipe 中的項目連接起來(函數名稱: zip_with_map )。匹配是通過提供的 key_fn 完成的,它將 source_iterdatapipe 中的項映射到 map_datapipe 中應存在的鍵。返回值由 merge_fn 創建,默認返回兩個項目的元組。

示例

>>> from torchdata.datapipes.iter import IterableWrapper
>>> from torchdata.datapipes.map import SequenceWrapper
>>> from operator import itemgetter
>>> def merge_fn(tuple_from_iter, value_from_map):
>>>     return tuple_from_iter[0], tuple_from_iter[1] + value_from_map
>>> dp1 = IterableWrapper([('a', 1), ('b', 2), ('c', 3)])
>>> mapdp = SequenceWrapper({'a': 100, 'b': 200, 'c': 300, 'd': 400})
>>> res_dp = dp1.zip_with_map(map_datapipe=mapdp, key_fn=itemgetter(0), merge_fn=merge_fn)
>>> list(res_dp)
[('a', 101), ('b', 202), ('c', 303)]

相關用法


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