MiniBatch

class dgl.graphbolt.MiniBatch(labels: Tensor | Dict[str, Tensor] | None = None, seeds: Tensor | Dict[str, Tensor] | None = None, indexes: Tensor | Dict[str, Tensor] | None = None, sampled_subgraphs: List[SampledSubgraph] | None = None, input_nodes: Tensor | Dict[str, Tensor] | None = None, node_features: Dict[str, Tensor] | Dict[Tuple[str, str], Tensor] | None = None, edge_features: List[Dict[str, Tensor] | Dict[Tuple[str, str], Tensor]] | None = None, compacted_seeds: Tensor | Dict[str, Tensor] | None = None, _blocks: list | None = None)[source]

基类: object

用于 GraphBolt 中数据结构的复合数据类。

它旨在促进不同数据处理组件之间的数据交换。此类的目的是统一不同阶段输入和输出数据的表示,确保在整个加载过程中的一致性和易用性。

compute_blocks() list[source]

MiniBatch 中提取 DGL block,用于构建图结构和 ID 映射。

edge_ids(layer_id: int) Dict[str, Tensor] | Tensor[source]

获取层的边 ID。

is_pinned() bool[source]

使用反射检查 SampledSubgraph 是否已被固定(pinned)。

node_ids() Tensor | Dict[str, Tensor][source]

外层输入节点的表示。包含 sampled_subgraphs 中的所有节点。- 如果 input_nodes 是一个 tensor:表示图是同构的。- 如果 input_nodes 是一个 dictionary:键应为节点类型,值应为相应的异构节点 ID。

值应该是对应的异构节点 ID。

num_layers() int[source]

返回层数。

pin_memory()[source]

使用反射将 MiniBatch 复制到固定内存(pinned memory)。

set_edge_features(edge_features: List[Dict[str, Tensor] | Dict[Tuple[str, str], Tensor]]) None[source]

设置边特征。

set_node_features(node_features: Dict[str, Tensor] | Dict[Tuple[str, str], Tensor]) None[source]

设置节点特征。

to(device: device, non_blocking=False)[source]

使用反射将 MiniBatch 复制到指定设备。

to_pyg_data()[source]

MiniBatch 构建一个 PyG Data。此函数仅支持同构图上的节点分类任务,且特征数量不能超过一个。

property blocks: list

MiniBatch 中提取的 DGL block,包含图结构和 ID 映射。

compacted_seeds: Tensor | Dict[str, Tensor] = None

与 ‘seeds’ 对应的压缩种子表示,其中所有的节点 ID 都被压缩。

edge_features: List[Dict[str, Tensor] | Dict[Tuple[str, str], Tensor]] = None

与 ‘sampled_subgraphs’ 相关的边特征。- 如果键是单个字符串:表示图是同构的,键是特征名称。- 如果键是元组:表示图是异构的,键是 ‘(edge_type, feature_name)’ 形式的元组。注意,边类型是 ‘str:str:str’ 格式的单个字符串。

indexes: Tensor | Dict[str, Tensor] = None

与图中的种子相关的索引,指示每个种子属于哪个查询。- 如果 indexes 是一个 tensor:表示图是同构的。值应为给定 ‘seeds’ 对应的查询。如果 indexes 是一个 dictionary:表示图是异构的。键应为节点或边类型,值应为给定 ‘seeds’ 对应的查询。对于每个键,索引是从零开始的连续整数。

值应该是对给定“种子”的对应查询。

  • 如果 indexes 是一个字典:这表明图是异构的。键应该是节点或边类型,值应该是对给定“种子”的对应查询。对于每个键,索引是从零开始的连续整数。

input_nodes: Tensor | Dict[str, Tensor] = None
外层输入节点的表示。包含 ‘sampled_subgraphs’ 中的所有节点。如果 input_nodes 是一个 tensor:表示图是同构的。如果 input_nodes 是一个 dictionary:键应为节点类型,值应为相应的异构节点 ID。

在‘sampled_subgraphs’中。

  • 如果 input_nodes 是一个张量:这表明图是同构的。

  • 如果 input_nodes 是一个字典:键应该是节点类型,值应该是对应的异构节点 ID。

labels: Tensor | Dict[str, Tensor] = None

与图中的种子相关的标签。- 如果 labels 是一个 tensor:表示图是同构的。值应为给定 ‘seeds’ 对应的标签。如果 labels 是一个 dictionary:键应为节点或边类型,值应为给定 ‘seeds’ 对应的标签。

应该是给定“种子”的对应标签。

  • 如果 labels 是一个字典:键应该是节点或边类型,值应该是给定“种子”的对应标签。

node_features: Dict[str, Tensor] | Dict[Tuple[str, str], Tensor] = None

节点特征的表示。- 如果键是单个字符串:表示图是同构的,键是特征名称。- 如果键是元组:表示图是异构的,键是 ‘(node_type, feature_name)’ 形式的元组。

sampled_subgraphs: List[SampledSubgraph] = None

‘SampledSubgraph’ 的列表,每个对应一层,表示一个更大图结构的子集。

seeds: Tensor | Dict[str, Tensor] = None

用于节点分类任务、链接预测任务和超链接任务的种子项表示。- 如果 seeds 是一个 tensor:表示种子源自同构图。它可以是 1 维或 2 维 tensor。1 维 tensor:每个元素直接表示图中的一个种子节点。2 维 tensor:每行表示一个种子项,根据特定上下文,可以包含各种实体,如边、超链接或其他图组件。如果 seeds 是一个 dictionary:表示种子源自异构图。键应为边或节点类型,值应为一个 tensor,可以是 1 维或 2 维 tensor。1 维 tensor:每个元素直接表示图中断定类型的种子节点。- 2 维 tensor:每行表示给定类型的种子项,根据特定上下文,可以包含各种实体,如边、超链接或其他图组件。

同构图。它可以是 1 维或 2 维张量

  • 1 维张量:每个元素直接表示图中的一个种子节点。

  • 2 维张量:每行指定一个种子项,根据具体上下文,该种子项可以包含各种实体,例如边、超链接或其他图组件。

  • 如果 seeds 是一个字典:这表明种子来自异构图。键应该是边或节点类型,值应该是一个张量,它可以是 1 维或 2 维张量

    • 1 维张量:每个元素直接表示一个种子节点

    图中给定类型的。 - 2 维张量:每行指定给定类型的

    类型,根据具体上下文,该种子项可以包含各种实体,例如边、超链接或其他图组件。