dgl.line_graph
- dgl.line_graph(g, backtracking=True, shared=False)[源代码]
返回该图的线图。
给定图
G
的线图L(G)
被定义为另一个图,其中L(G)
中的节点对应于G
中的边。对于G
中的任意一对边(u, v)
和(v, w)
,边(u, v)
在L(G)
中对应的节点将与边(v, w)
在L(G)
中对应的节点连接一条边。- 参数:
- 返回:
G – 该图的线图。
- 返回类型:
注释
如果
shared
为 True,则结果图的节点特征与输入图的边特征共享相同的存储空间。因此,用户应尽量避免原地操作,这会同时影响两个图。该函数支持 GPU 上的输入图,但在计算过程中会将其复制到 CPU。
此函数会丢弃批处理信息。请在转换后的图上使用
dgl.DGLGraph.set_batch_num_nodes()
和dgl.DGLGraph.set_batch_num_edges()
以保留信息。
示例
假设图具有以下邻接矩阵
A = [[0, 0, 1], [1, 0, 1], [1, 1, 0]]
>>> g = dgl.graph(([0, 1, 1, 2, 2],[2, 0, 2, 0, 1]), 'user', 'follows') >>> lg = g.line_graph() >>> lg Graph(num_nodes=5, num_edges=8, ndata_schemes={} edata_schemes={}) >>> lg.edges() (tensor([0, 0, 1, 2, 2, 3, 4, 4]), tensor([3, 4, 0, 3, 4, 0, 1, 2])) >>> lg = g.line_graph(backtracking=False) >>> lg Graph(num_nodes=5, num_edges=4, ndata_schemes={} edata_schemes={}) >>> lg.edges() (tensor([0, 1, 2, 4]), tensor([4, 0, 3, 1]))