dgl.DGLGraph.incidence_matrix
- DGLGraph.incidence_matrix(typestr, ctx=device(type='cpu'), etype=None)
返回给定边类型的关联矩阵表示。
关联矩阵是一个 n-by-m 的稀疏矩阵,其中 n 是节点数,m 是边数。每个非零值表示该边是否与该节点关联。
关联矩阵 \(I\) 有三种类型:
in (入边)
:如果 \(e\) 是 \(v\) 的入边(或 \(v\) 是 \(e\) 的目标节点),则 \(I[v, e] = 1\);
否则 \(I[v, e] = 0\)。
out (出边)
:如果 \(e\) 是 \(v\) 的出边(或 \(v\) 是 \(e\) 的源节点),则 \(I[v, e] = 1\);
否则 \(I[v, e] = 0\)。
both
(仅当源节点和目标节点类型相同时)如果 \(e\) 是 \(v\) 的入边,则 \(I[v, e] = 1\);
如果 \(e\) 是 \(v\) 的出边,则 \(I[v, e] = -1\);
否则(包括自环) \(I[v, e] = 0\)。
- 参数:
- 返回值:
关联矩阵。
- 返回值类型:
框架 SparseTensor
示例
以下示例使用 PyTorch 后端。
>>> import dgl
>>> g = dgl.graph(([0, 1], [0, 2])) >>> g.inc('in') tensor(indices=tensor([[0, 2], [0, 1]]), values=tensor([1., 1.]), size=(3, 2), nnz=2, layout=torch.sparse_coo) >>> g.inc('out') tensor(indices=tensor([[0, 1], [0, 1]]), values=tensor([1., 1.]), size=(3, 2), nnz=2, layout=torch.sparse_coo) >>> g.inc('both') tensor(indices=tensor([[1, 2], [1, 1]]), values=tensor([-1., 1.]), size=(3, 2), nnz=2, layout=torch.sparse_coo)