Hi,
In my shallow view, the problem do not exist in nn.MuduleList().
It occurs when you use .clone(), I think it creates a tensor with requires_grad=False so that gradients do not flow in backward.
So you can remove x22=x.clone() and feed viewed x to the classifier.
S2 = x.view(x.size(0), 512)