docstr: Perform constant folding conversion, from original mod to split constant
  folding module with two split subgraphs, where there are two attrs to
  fold into a single output.
  
  attr1  attr2                attr1  attr2
      \ /                         \ /
  x   add                         add       (becomes attr add_1)
   \ /            ==>       -------+------- (const/base subgraph split)
   sub                         x   |        (input from previous subgraph is attr)
    |                           \ /
  output                        sub
                                 |
                               output
docstr_tok: ["Perform","constant","folding","conversion",",","from","original","mod","to","split","constant","folding","module","with","two","split","subgraphs",",","where","there","are","two","attrs","to","fold","into","a","single","output",".","attr1","attr2","attr1","attr2","\\","\/","\\","\/","x","add","add","(","becomes","attr","add_1",")","\\","\/","==",">","--","--","--","-+","--","--","--","-","(","const\/base","subgraph","split",")","sub","x","|","(","input","from","previous","subgraph","is","attr",")","|","\\","\/","output","sub","|","output"]
code: def test_const_fold_basic_two_attr(self):
      r"""
      Perform constant folding conversion, from original mod to split constant
      folding module with two split subgraphs, where there are two attrs to
      fold into a single output.
  
      attr1  attr2                attr1  attr2
          \ /                         \ /
      x   add                         add       (becomes attr add_1)
       \ /            ==>       -------+------- (const/base subgraph split)
       sub                         x   |        (input from previous subgraph is attr)
        |                           \ /
      output                        sub
                                     |
                                   output
      """
  
      class ConstFoldTestModule(torch.nn.Module):
          def __init__(self):
              super().__init__()
              self.attr1 = torch.nn.Parameter(torch.randn(2, 3))
              self.attr2 = torch.nn.Parameter(torch.randn(2, 3))
  
          def forward(self, x):
              y = self.attr1 + self.attr2
              return x + y
  
      mod = ConstFoldTestModule()
      mod_folded: const_fold.FoldedGraphModule = (
          const_fold.split_const_subgraphs(mod)
      )
      self._verify_const_fold_mod(mod_folded)
  
      # Now run both folded and non-folded to check results equal.
      in_x = torch.randn(2, 3)
      fold_result = mod_folded(in_x)
      base_result = mod(in_x)
      self.assertTrue(torch.equal(fold_result, base_result))
  
imports: import operator
  import torch
  import torch.fx
  from torch.fx.experimental import const_fold
  from torch.fx.passes.shape_prop import _extract_tensor_metadata, ShapeProp
  from torch.testing._internal.common_utils import TestCase
label_desc: Use image node_id 8 for calling the TestConstFold obj's underlying member method code with example usage: obj.test_const_fold_basic_two_attr() and returns: unknown