Solved by isalirezag in post #2 
              
              
                now sure how the index_select should work, but I think for your question you can do it like this: 
b,c,w,h = x.shape
new_ind = (indices.view(-1) +  (torch.arange(0,b)*c).view(-1) ).tolist()
out = x.view(b*c,w,h)[new_ind]
out.unsqueeze_(1)
print((out[0,0]==x[0,1]).all(),(out[1,0]==x[1,1]).all(),(out[…