Retreive values of 2D tensor

So I basically have a image torch.cuda.ByteTensor, and I have another indices torch.cuda.LongTensor, of size 2x3. It is given like so:

indices = torch.ByteTensor([[0,3,6 ], [0, 5, 9]]).cuda()

So here is what I want to do: I want to basically “loop” through each column of indices, and index into image. If the value is 1, I want to keep the index of indices. If the value is 0, I want to discard it.

Concretely: Let us suppose that image[indices[0,0], indices[1,0]] = 0, image[indices[0,1], indices[1,1]] = 1, and image[indices[0,2], indices[1,2]] = 1. Then in this case, I want to have the result to be [1, 2], since only columns 1 and 2 of indices are “valid”.

How do I do that?

Thanks!