Hey guys, I want to sum every k consecutive channels of a variable together. Assume that the input before summing is with the shape like NxCxWxH, and the output after the summation should be Nx(C/k)xWxH. I implemented the method using the code below. the function sum_up is called in the network’s forward function, but it seems to be extremely inefficient. Is there any better way to implement this in pytorch?
def sum_up(input, bottle_neck=2): output=  for ch in xrange(0, input.data.shape, bottle_neck): output.append(torch.sum(input[:, ch:ch+bottle_neck, :, :], 1)) return torch.stack(output).permute(1, 0, 2, 3).cuda()