特性

class dgl.graphbolt.Feature[源码]

基类:object

用于访问特性数据的包装器。

count()[源码]

获取特性的数量。

返回值:

特性的数量。

返回类型:

int

metadata()[源码]

获取特性的元数据。

返回值:

特性的元数据。

返回类型:

Dict

read(ids: Tensor | None = None)[源码]

从特性中读取数据。

参数:

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

返回值:

读取的特性。

返回类型:

torch.Tensor

read_async(ids: Tensor)[源码]

异步按索引读取特性。

参数:

ids (torch.Tensor) – 特性的索引。仅读取特性的指定索引。

返回值:

  • 生成器对象。 – 返回的生成器对象在第 read_async_num_stages(ids.device) 次调用时返回一个 future。可以通过调用返回的 future 对象的 .wait() 来访问返回结果。多次调用 .wait() 是未定义的行为。

  • 示例用法

  • ——–

  • >>> import dgl.graphbolt as gb

  • >>> feature = gb.Feature(…)

  • >>> ids = torch.tensor([0, 2])

  • >>> for stage, future in enumerate(feature.read_async(ids))

  • … pass

  • >>> assert stage + 1 == feature.read_async_num_stages(ids.device)

  • >>> result = future.wait() # result 包含读取的值。

read_async_num_stages(ids_device: device)[源码]

read_async 操作的阶段数。有关其用法,请参阅 read_async 函数。当 read_async 与位于 ids_device 上的张量一起使用时,此函数需要返回 yield 操作的数量。

参数:

ids_device (torch.device) – 传递给 read_async 的 ids 参数的设备。

返回值:

read_async 操作的阶段数。

返回类型:

int

size()[源码]

获取特性的大小。

返回值:

特性的大小。

返回类型:

torch.Size

update(value: Tensor, ids: Tensor | None = None)[源码]

更新特性。

参数:
  • value (torch.Tensor) – 特性的更新值。

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