Thanks for the answers!
As for your first suggestion, is it possibly extend to 2D with shape (N,C,H,W)?
If its possible, should x be reshape  to x.view(N,C,H//2,W//2,2,2) or x.view(N,C,H//2,2,W//2,2)?
(I’m not sure but the correct one might be x.view(N,C,H//2,2,W//2,2).permute(0,1,2,4,3,5)?)