So I have a list of layers and I apply a mask to some of the weights in the layers, by doing the following:
 def forward(self, input, mask=None):
        if mask is not None:
            self.weight.data.t().mul_(mask)
        f = F.linear(input, self.weight, self.bias)
        return f

This works when I store the list of layers like self.hidden_layers = [], but when I change this to  self.hidden_layers = nn.ModuleList() the mask code above doesn’t work.
This is how I append to the list of layers:
        for i in np.arange(self.num_hidden_layers - 1):
            self.hidden_layers.append(LinearAutoMl(hidden_size, hidden_size).to(device))

Any reason why using ModuleList would do this?