calculate the shape of in_features using the shape formula for conv layers etc.

Yes, I suppose I am talking about a way to do that, not specific to nn.Linear.
The motivation for my question is I have seen several implementations of experimental network architectures with frustrating (anti)patterns such as

magic numbers (e.g. a layer initialized with 1152 neurons as a result of unexplained calculations)
user-settable parameters with unnecessary coupling (e.g. a command line parameter --unit-size=1152 which cannot be freely changed in reality, because it is determined by the input image size and other hyperparameters)

As a new Pytorch user, I am wondering if there is a “best practices” way to avoid such patterns in my own code, especially when writing custom subclasses of nn.Module.
BTW, I see my “helper method” idea is really the same as Carson McNeil’s idea here 5.