LazyFeature๏
- class dgl.dataloading.base.LazyFeature(name=None, id_=None)[source]๏
Bases:
objectPlaceholder for feature prefetching.
One can assign this object to
ndataoredataof the graphs returned by various samplersโsamplemethod. When DGLโs dataloader receives the subgraphs returned by the sampler, it will automatically look up all thendataandedatawhose data is a LazyFeature, replacing them with the actual data of the corresponding nodes/edges from the original graph instead. In particular, for a subgraph returned by the sampler has a LazyFeature with namekinsubgraph.ndata[key]:subgraph.ndata[key] = LazyFeature(k)
Assuming that
graphis the original graph, DGLโs dataloader will performsubgraph.ndata[key] = graph.ndata[k][subgraph.ndata[dgl.NID]]
DGL dataloader performs similar replacement for
edata. For heterogeneous graphs, the replacement is:subgraph.nodes[ntype].data[key] = graph.nodes[ntype].data[k][ subgraph.nodes[ntype].data[dgl.NID]]
For MFGsโ
srcdata(and similarlydstdata), the replacement ismfg.srcdata[key] = graph.ndata[k][mfg.srcdata[dgl.NID]]
- Parameters:
name (str) โ The name of the data in the original graph.
id (Tensor, optional) โ The ID tensor.