FeatureStore

class dgl.graphbolt.FeatureStore[source]

Bases: object

A store to manage multiple features for access.

keys()[source]

Get the keys of the features.

Returns:

The keys of the features. The tuples are in (domain, type_name, feat_name) format.

Return type:

List[tuple]

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

Get the metadata of the specified feature in the feature store.

Parameters:
  • domain (str) – The domain of the feature such as β€œnode”, β€œedge” or β€œgraph”.

  • type_name (str) – The node or edge type name.

  • feature_name (str) – The feature name.

Returns:

The metadata of the feature.

Return type:

Dict

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

Read from the feature store.

Parameters:
  • domain (str) – The domain of the feature such as β€œnode”, β€œedge” or β€œgraph”.

  • type_name (str) – The node or edge type name.

  • feature_name (str) – The feature name.

  • ids (torch.Tensor, optional) – The index of the feature. If specified, only the specified indices of the feature are read. If None, the entire feature is returned.

Returns:

The read feature.

Return type:

torch.Tensor

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

Get the size of the specified feature in the feature store.

Parameters:
  • domain (str) – The domain of the feature such as β€œnode”, β€œedge” or β€œgraph”.

  • type_name (str) – The node or edge type name.

  • feature_name (str) – The feature name.

Returns:

The size of the specified feature in the feature store.

Return type:

torch.Size

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

Update the feature store.

Parameters:
  • domain (str) – The domain of the feature such as β€œnode”, β€œedge” or β€œgraph”.

  • type_name (str) – The node or edge type name.

  • feature_name (str) – The feature name.

  • value (torch.Tensor) – The updated value of the feature.

  • ids (torch.Tensor, optional) – The indices of the feature to update. If specified, only the specified indices of the feature will be updated. For the feature, the ids[i] row is updated to value[i]. So the indices and value must have the same length. If None, the entire feature will be updated.