print("INDS:", self.neuron_map[k])

results in:
INDS: [0, 1]

Then,
inds = torch.LongTensor(self.neuron_map[k])

runs into
RuntimeError: tried to construct a tensor from a int sequence, but found an item of type numpy.int64 at index (0)

I actually found a workaround:
inds = np.array(self.neuron_map[k], dtype=np.int64)
inds = torch.LongTensor(inds)
nn_list.append(self.linears[k](x[:, inds]))

I actually have an additional question. The reason, I am splitting the tensor is to apply linear units (like in last posted code line). For the result, i use:
x_out = torch.cat(nn_list, 1)

How efficient is this, as compared to manually implement an autograd.Function (forward and backward)?