I can see nothing wrong with the general approach, and only the slightest of errors in the coding of MLPa… there is a trailing comma after the closing bracket of nn.Sequential meaning that self.model is a tuple containing an instance of nn.Sequential, not an instance of nn.Sequential directly. This difference means that the instance of nn.Sequential isn’t registered with the model so the parameters of its submodules aren’t listed by model.parameters()