Has anyone know this operation in Pytorch ?
What is your use case?
Maybe you could use tensor.unfold?
For example, I want to make one tensor (n,c,w,h) into tensor (n,c,w,h, k*k) where k is the kernel size
use img2col (like caffe) operation to do this.
If you would like to use a sliding window of kernel size
k, you could try the following code (originally created by @fmassa) :
n, c, w, h = 1, 3, 24, 24 k = 3 stride = 1 x = torch.randn(n, c, w, h) input_windows = x.unfold(2, k, stride).unfold(3, k, stride) print(input_windows.shape) > torch.Size([1, 3, 22, 22, 3, 3]) input_windows = input_windows.contiguous().view(*input_windows.size()[:-2], -1) print(input_windows.shape) > torch.Size([1, 3, 22, 22, 9])
Your width and height will be smaller as in a vanilla convolution without padding.
Thank you very much !!!