特征获取器

class dgl.graphbolt.FeatureFetcher(datapipe, feature_store, node_feature_keys=None, edge_feature_keys=None, overlap_fetch=True, cooperative=False)[source]

基类:MiniBatchTransformer

一个用于在 graphbolt 中获取节点/边特征的特征获取器。

函数名称:fetch_feature

参数:
  • datapipe (DataPipe) – 数据管道。

  • feature_store (FeatureStore) – 一个特征存储,支持读写。

  • node_feature_keys (List[str] 或 Dict[str, List[str]]) – 节点特征键,指示需要读取的节点特征。 - 如果 node_features 是列表:表示图是同构图,其中的 ‘str’ 是特征名称。 - 如果 node_features 是字典:键应为节点类型,值是特征名称列表。

  • edge_feature_keys (List[str] 或 Dict[str, List[str]]) – 边特征名称,指示需要读取的边特征。 - 如果 edge_features 是列表:表示图是同构图,其中的 ‘str’ 是特征名称。 - 如果 edge_features 是字典:键是边类型,遵循 ‘str:str:str’ 格式,值是特征名称列表。

  • overlap_fetch (bool, 可选) – 如果为 True,特征获取器将通过使用备用 CUDA 流或利用异步操作,使 UVA 特征获取操作与其余操作重叠进行。默认为 True。

  • cooperative (bool, 可选) – 布尔值,指示是否启用 Cooperative Minibatching,该功能最初在 `Deep Graph Library PR#4337<https://github.com/dmlc/dgl/pull/4337>`__ 中提出,随后在 Cooperative Minibatching in Graph Neural Networks 中首次完整描述。GPU 之间的协作消除了由于采样种子节点的 k 跳邻居重叠而导致的 GPU 之间执行的重复工作,这发生在执行 GNN minibatching 时。