コード例 #1
0
def get_1_hot_deg_feats(adj, max_deg, num_nodes):
    #For now it'll just return a 2-hot vector
    new_vals = torch.ones(adj['idx'].size(0))
    new_adj = {'idx': adj['idx'], 'vals': new_vals}
    degs_out, _ = get_degree_vects(new_adj, num_nodes)

    degs_out = {
        'idx':
        torch.cat([torch.arange(num_nodes).view(-1, 1),
                   degs_out.view(-1, 1)],
                  dim=1),
        'vals':
        torch.ones(num_nodes)
    }

    # print ('XXX degs_out',degs_out['idx'].size(),degs_out['vals'].size())
    degs_out = u.make_sparse_tensor(degs_out, 'long', [num_nodes, max_deg])

    hot_1 = {'idx': degs_out._indices().t(), 'vals': degs_out._values()}
    return hot_1
コード例 #2
0
def get_degree_vects(adj, num_nodes):
    adj = u.make_sparse_tensor(adj, 'long', [num_nodes])
    degs_out = adj.matmul(torch.ones(num_nodes, 1, dtype=torch.long))
    degs_in = adj.t().matmul(torch.ones(num_nodes, 1, dtype=torch.long))
    return degs_out, degs_in