dgl.node_type_subgraph
- dgl.node_type_subgraph(graph, ntypes, output_device=None)[source]
返回由给定节点类型诱导的子图。
节点类型诱导子图包含图中给定节点类型的子集中的所有节点,以及所有其端点都在该子集中的边。除了抽取子图外,DGL 还会将抽取出的节点和边的特征复制到结果图中。复制是惰性的,只在需要时才会发生数据移动。
- 参数:
- 返回值:
G – 子图。
- 返回类型:
注意事项
此函数会丢弃批处理信息。请在变换后的图上使用
dgl.DGLGraph.set_batch_num_nodes()
和dgl.DGLGraph.set_batch_num_edges()
来维护这些信息。示例
以下示例使用 PyTorch 后端。
>>> import dgl >>> import torch
实例化一个异构图。
>>> g = dgl.heterograph({ >>> ('user', 'plays', 'game'): ([0, 1, 1, 2], [0, 0, 2, 1]), >>> ('user', 'follows', 'user'): ([0, 1, 1], [1, 2, 2]) >>> }) >>> # Set node features >>> g.nodes['user'].data['h'] = torch.tensor([[0.], [1.], [2.]])
获取子图。
>>> sub_g = g.node_type_subgraph(['user']) >>> print(sub_g) Graph(num_nodes=3, num_edges=3, ndata_schemes={'h': Scheme(shape=(1,), dtype=torch.float32)} edata_schemes={})
获取抽取出的节点特征。
>>> sub_g.nodes['user'].data['h'] tensor([[0.], [1.], [2.]])
另请参阅