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
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