dgl.DGLGraph.inc

DGLGraph.inc(typestr, ctx=device(type='cpu'), etype=None)[source]

返回给定边类型的边的关联矩阵表示。

关联矩阵是一个 n 行 m 列的稀疏矩阵,其中 n 是节点数,m 是边数。每个非零值指示边是否与节点关联。

关联矩阵 \(I\) 有三种类型

  • in (入):

    • \(I[v, e] = 1\)\(e\)\(v\) 的入边时(或 \(v\)\(e\) 的目标节点时);

    • \(I[v, e] = 0\) 否则。

  • out (出):

    • \(I[v, e] = 1\)\(e\)\(v\) 的出边时(或 \(v\)\(e\) 的源节点时);

    • \(I[v, e] = 0\) 否则。

  • both (仅当源节点和目标节点类型相同时)

    • \(I[v, e] = 1\)\(e\)\(v\) 的入边时;

    • \(I[v, e] = -1\)\(e\)\(v\) 的出边时;

    • \(I[v, e] = 0\) 否则(包括自环)。

参数:
  • typestr (str) – 可以是 in, outboth

  • ctx (context, 可选的) – 返回的关联矩阵的上下文。(默认:cpu)

  • etype (str or (str, str, str), 可选的) –

    边的类型名称。允许的类型名称格式为

    • (str, str, str) 表示源节点类型、边类型和目标节点类型。

    • 或一个 str 边类型名称,如果该名称可以在图中唯一标识一个三元组格式。

    如果图只有一种边类型,则可以省略。

返回:

关联矩阵。

返回类型:

框架稀疏张量

示例

以下示例使用 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)