Solved by ptrblck in post #2 
              
              
                Yes, this should work. 
Here is a small (simplified) example: 

class A(nn.Module):
   def __init__(self):
       super(A, self).__init__()
       self.fc = nn.Linear(3, 1)

   def forward(self, x):
       x = self.fc(x)       
       return x

class B(nn.Module):
   def __init__(self, shared_re):
 …