Python offers no elegant solutions for this, in addition your snippet would create a second X parameter (because nn.Module.__setattr__ intercepts nn.Parameter assignments)
I use state object pattern (argument to forward()) for this, this has two pros: 1)works with JIT 2)tensors and parameters are interchangeable. Downsides: 1)state argument must be added to submodules 2)some boilerplate to initialize the state object.
For simpler scripts, I’d consider global variables:
X = None
class BigModule(nn.Module):
     def __init__(self):
           global X
           super(BigModule, self).__init__()
           self.X = X = nn.Parameter(torch.ones(10,10))