How to slice multiple blocks efficiently from a torch tensor?

A dummy example would be :

Lets us say I have an input tensor of size [64,3,30,30] and I want to cut out slices of shape [3, 5, 5] . where 5 = ksize[0].
Indices are of the form :

indices = [
[0, 1, 2],
[1, 0, 5],
[60, 4, 1]
]

where each element is the index corresponding to N, w0, h0. Now I want to cut a slice of size [C, 5,5] from input using the indices. So I do it in the following way :

slice = input[N, :, w0:w0+5, h0:h0+5]

So, the indices correspond to the top left of the slice that I want to make