LazyFeature

class dgl.dataloading.base.LazyFeature(name=None, id_=None)[source]

基类: object

特征预取的占位符。

可以将此对象赋给各种采样器的 sample 方法返回的图的 ndataedata。当 DGL 的数据加载器接收到采样器返回的子图时,它会自动查找所有数据为 LazyFeature 的 ndataedata,并将其替换为原始图中相应节点/边的实际数据。特别地,如果采样器返回的子图中 subgraph.ndata[key] 的数据是一个名为 k 的 LazyFeature,则

subgraph.ndata[key] = LazyFeature(k)

假设 graph 是原始图,DGL 的数据加载器将执行:

subgraph.ndata[key] = graph.ndata[k][subgraph.ndata[dgl.NID]]

DGL 数据加载器对 edata 执行类似的替换。对于异构图,替换操作为:

subgraph.nodes[ntype].data[key] = graph.nodes[ntype].data[k][
    subgraph.nodes[ntype].data[dgl.NID]]

对于 MFG 的 srcdata(以及类似的 dstdata),替换操作为:

mfg.srcdata[key] = graph.ndata[k][mfg.srcdata[dgl.NID]]
参数:
  • name (str) – 原始图中数据的名称。

  • id (Tensor, 可选) – ID 张量。