// Convolution via sparse row sum. Converts [|E| x M_out] feature matrix to
// [n x M_out] feature matrix.
size = torch.Size([adj.size(0), adj.size(1), output.size(1)])
adj = torch.sparse.FloatTensor(indices, output, size)
output = sum(adj, dim=1)
// TODO: root node and weight mean
// root_weight = weight[torch.arange(kernel_size[-1])]
After Change
zero = torch.zeros(adj.size(1), output.size(1))
zero = zero.cuda() if output.is_cuda else zero
zero = Variable(zero) if not torch.is_tensor(output) else zero
row = row.view(-1, 1).expand(row.size(0), output.size(1))
output = zero.scatter_add_(0, row, output)
// Weighten root node features by multiplying with the meaned weights at the