I have a tensor with a size of `3 x 240 x 320`

and I want to use a window (window size `ws=5`

) to slide over each pixel and crop out the sub-tensor centered at that pixel. The final output dimension should be `3 x ws x ws x 240 x 320`

. So I pad the original tensor with window size and use `for loop`

to do so.

```
import torch.nn.functional as F
image = torch.randn(1, 3, 240, 320)
image = F.pad(image, (ws // 2, ws // 2, ws // 2, ws // 2), mode='reflect')
patches = torch.zeros(1, 3, ws, ws, 240, 320)
for i in range(height):
for j in range(width):
patches[:, :, :, :, i, j] = image[:, :, i:i+ws, j:j+ws]
```

Are there any ways to do the cropping of each pixel at the sample time? Like without using the `for loop`

over each pixel? I feel like it’s pretty similar to `convolution`

operation but I can’t think of wats to crop efficiently. Thanks in advance!