LazyFeature

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

Bases: 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]]

对于MFGs的srcdata(以及类似的dstdata),替换为

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

  • id (Tensor, optional) – ID张量。