Пример #1
0
def nodeFeatures(g, types):
    #g = dgl.add_self_loop(g)
    #graph = dgl.DGLGraph.to_networkx(g)
    if (types == "simple"):
        return g.in_degrees()
    elif (types == "weight"):
        return dgl.khop_adj(g, 1) #g.ndata['w']
    elif (types == "multifractal"):
        return multifractal.multifractal(g)
Пример #2
0
def test_khop_adj():
    N = 20
    feat = F.randn((N, 5))
    g = dgl.DGLGraph(nx.erdos_renyi_graph(N, 0.3))
    for k in range(3):
        adj = F.tensor(dgl.khop_adj(g, k))
        # use original graph to do message passing for k times.
        g.ndata['h'] = feat
        for _ in range(k):
            g.update_all(fn.copy_u('h', 'm'), fn.sum('m', 'h'))
        h_0 = g.ndata.pop('h')
        # use k-hop adj to do message passing for one time.
        h_1 = F.matmul(adj, feat)
        assert F.allclose(h_0, h_1, rtol=1e-3, atol=1e-3)