Set specific channel to zero

Given a feature map x with size of ncw*h, For each sample n, I want to set some specific channels to zero.

I multiply X by a Mask, but the accuracy is not satisfactory.

Code:

   def forward(self, x):
        mask = Variable(torch.ones(x.size()))
        mask = mask.cuda()
        x = x * mask
        x = F.avg_pool2d(x, x.size()[2:])
        x = x.view(x.size(0), -1)
        x = self.classifier(x)
   return x

x = x * mask does not change the value of x, why I get a lower accuracy than I did not do this multiplication operation?

Is there anything wrong in the backward of training?

you are multiplying by the value 1. Because mask is torch.ones.
The value will not change in that case, as expected.