特征存储

class dgl.graphbolt.FeatureStore[source]

基类:object

一个用于管理多个特征以便访问的存储。

count(domain: str, type_name: str, feature_name: str)[source]

获取特征存储中指定特征的数量。

参数:
  • domain (str) – 特征的领域,例如“node”(节点)、“edge”(边)或“graph”(图)。

  • type_name (str) – 节点或边的类型名称。

  • feature_name (str) – 特征名称。

返回值:

特征存储中指定特征的数量。

返回类型:

int

keys()[source]

获取特征的键。

返回值:

特征的键。元组格式为 (domain, type_name, feat_name)

返回类型:

List[tuple]

metadata(domain: str, type_name: str, feature_name: str)[source]

获取特征存储中指定特征的元数据。

参数:
  • domain (str) – 特征的领域,例如“node”(节点)、“edge”(边)或“graph”(图)。

  • type_name (str) – 节点或边的类型名称。

  • feature_name (str) – 特征名称。

返回值:

特征的元数据。

返回类型:

Dict

read(domain: str, type_name: str, feature_name: str, ids: Tensor | None = None)[source]

从特征存储中读取。

参数:
  • domain (str) – 特征的领域,例如“node”(节点)、“edge”(边)或“graph”(图)。

  • type_name (str) – 节点或边的类型名称。

  • feature_name (str) – 特征名称。

  • ids (torch.Tensor, optional) – 特征的索引。如果指定,仅读取特征的指定索引。如果为 None,则返回整个特征。

返回值:

读取到的特征。

返回类型:

torch.Tensor

size(domain: str, type_name: str, feature_name: str)[source]

获取特征存储中指定特征的大小。

参数:
  • domain (str) – 特征的领域,例如“node”(节点)、“edge”(边)或“graph”(图)。

  • type_name (str) – 节点或边的类型名称。

  • feature_name (str) – 特征名称。

返回值:

特征存储中指定特征的大小。

返回类型:

torch.Size

update(domain: str, type_name: str, feature_name: str, value: Tensor, ids: Tensor | None = None)[source]

更新特征存储。

参数:
  • domain (str) – 特征的领域,例如“node”(节点)、“edge”(边)或“graph”(图)。

  • type_name (str) – 节点或边的类型名称。

  • feature_name (str) – 特征名称。

  • value (torch.Tensor) – 特征的更新值。

  • ids (torch.Tensor, optional) – 要更新的特征索引。如果指定,将只更新特征的指定索引。对于特征,ids[i] 行将更新为 value[i]。因此索引和值必须长度相同。如果为 None,则将更新整个特征。