code: def forward(self, x):
          '''Channel shuffle: [N,C,H,W] -> [N,g,C/g,H,W] -> [N,C/g,g,H,w] -> [N,C,H,W]'''
          N,C,H,W = x.size()
          g = self.groups
          return x.view(N,g,C/g,H,W).permute(0,2,1,3,4).contiguous().view(N,C,H,Wf forward(self, x):
          '''Channel shuffle: [N,C,H,W] -> [N,g,C/g,H,W] -> [N,C/g,g,H,w] -> [N,C,H,W]'''
          N,C,H,W = x.size()
          g = self.groups
          return x.view(N,g,C/g,H,W).permute(0,2,1,3,4).contiguous().view(N,C,H,W)
docs: Channel shuffle: [N,C,H,W] -> [N,g,C/g,H,W] -> [N,C/g,g,H,w] -> [N,C,H,W]