快捷方式

MapKeyZipper

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

将来自源 IterDataPipe 的项目与来自 MapDataPipe 的项目连接(函数名称:zip_with_map)。匹配是通过提供的 key_fn 完成的,该函数将 source_iterdatapipe 中的项目映射到 map_datapipe 中应该存在的键。返回值由 merge_fn 创建,默认情况下它返回两个项目的元组。

参数:
  • source_iterdatapipe – 来自 IterDataPipe 的项目,将与 map_datapipe 中的项目组合

  • map_datapipe – MapDataPipe,它接收来自 key_fn 的键,并返回一个项目

  • key_fn – 将 source_iterdatapipe 中的每个项目映射到 map_datapipe 中存在的键的函数

  • keep_key – 选项,用于在元组中与项目一起生成匹配的键,从而导致 (key, merge_fn(item1, item2))

  • merge_fn – 用于组合来自 source_iterdatapipe 的项目和来自 map_datapipe 的匹配项目的函数,默认情况下会创建一个元组

示例

from torchdata.datapipes.iter import IterableWrapper
from torchdata.datapipes.map import SequenceWrapper


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)

print(list(res_dp))

输出

[('a', 101), ('b', 202), ('c', 303)]

文档

访问 PyTorch 的全面开发者文档

查看文档

教程

获取适合初学者和高级开发人员的深入教程

查看教程

资源

查找开发资源并获得问题的解答

查看资源