小批量

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)[source]

Bases: object

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

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

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

获取图层的边ID。

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

表示最外层的输入节点。包含sampled_subgraphs中的所有节点。 - 如果input_nodes是一个张量:表示图是同质的。 - 如果input_nodes是一个字典:键应该是节点类型,并且

值应对应于异构节点ID。

num_layers() int[source]

返回层数。

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)[source]

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

to_pyg_data()[source]

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

property blocks

MiniBatch中提取DGL块以构建图形结构和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是一个张量:表示图是同质的。

值应与给定的‘seeds’对应的查询。

  • 如果indexes是一个字典:它表示图是异质的。 键应该是节点或边的类型,值应该是 对应给定‘seeds’的查询。对于每个键,索引是 从零开始的连续整数。

input_nodes: Tensor | Dict[str, Tensor] = None
A representation of input nodes in the outermost layer. Conatins all nodes

在‘sampled_subgraphs’中。

  • 如果 input_nodes 是一个张量:它表示图是同质的。

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

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

与图中种子相关联的标签。 - 如果 labels 是一个张量:它表示图是同质的。该值

应该与给定的‘seeds’对应的标签。

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

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是一个张量:表示种子来源于一个

同构图。它可以是一维或二维的张量:

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

  • 二维张量:每一行指定一个种子项,它可以包含各种实体,如边、超链接或其他图组件,具体取决于特定的上下文。

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

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

    图中给定类型的。 - 二维张量:每行指定给定类型的种子项

    类型,可以包含各种实体,如边、超链接或其他图形组件,具体取决于特定的上下文。