Thanks for comprehensive explanation.
I want do the same task in batch mode; suppose I have a tensor like this:
a = torch.tensor([[[[ 1,  2,  3,  4,  5,  6],
                   [ 7,  8,  9, 10, 11, 12],
                   [13, 14, 15, 16, 17, 18],
                   [19, 20, 21, 22, 23, 24]]],
                  
                 [[[25,  26,  27, 28, 29, 30],
                   [31,  32,  33, 34, 35, 36],
                   [37, 38, 39, 37, 38, 39],
                   [40, 41, 42, 43, 44, 45]]]])

I want to have sth like this as a result:
tensor([[[[ 1,  2],
          [ 3,  4]],

         [[ 5,  6],
          [ 7,  8]],

         [[ 9, 10],
          [11, 12]],

         [[13, 14],
          [15, 16]],

         [[17, 18],
          [19, 20]],

         [[21, 22],
          [23, 24]]],
------------------------------
         [[[25, 26],
          [27, 28]],

         [[29, 30],
          [31, 32]],

         [[33, 34],
          [35, 36]],

         [[37, 38],
          [39, 37]],

         [[38, 39],
          [40, 41]],

         [[42, 43],
          [44, 45]]]])

when I use this code:
z= a.unfold(2, 2, 2)[0].unfold(2, 2, 2).contiguous().view(1, 6, 2, 2)

Just the first matrix of tensor would be affected. Would you please guide me about it, too?
Thanks