in your example the elements of *args are already modules. How does one convert a (trainable) variable to a module? this failed to me:
    self.W = Variable(w_init, requires_grad=True)
    self.mod_list = torch.nn.ModuleList([self.W])