Makes sense, thanks!
@James_Reed I do have a follow up question on this that is a little less trivial. Since its the same subject as the original thread title, I figured I’d post it here:
How can I generate a graph for forward() of a GraphModule that has access to self? For example:
In [1]: import torch

In [2]: from torch import fx

In [3]: class M(fx.GraphModule):
   ...:     def __init__(self):
   ...:         super().__init__(self, fx.Graph())
   ...:         graph = fx.symbolic_trace(M.fake_forward)
   ...:         self.graph = graph
   ...:         self.recompile()
   ...:         self.register_buffer("w1", torch.ones(3))
   ...:     def fake_forward(self, x):
   ...:         return self.w1 * x
   ...: 

In [4]: m = M()

Gives:
  File "<eval_with_key_1>", line 2
    def forward(self, self, x):
    ^
SyntaxError: duplicate argument 'self' in function definition

Is this possible?